瀏覽代碼

gitlab-ci: Fix Avocado cache usage

In commit 6957fd98dc ("gitlab: add avocado asset caching") we
tried to save the Avocado cache (as in commit c1073e44b4 with
Travis-CI) however it doesn't work as expected. For some reason
Avocado uses /root/avocado_cache/ which we can not select later.

Manually generate a Avocado config to force the use of the
current job's directory.

This patch is based on an earlier version from Philippe Mathieu-Daudé.

Message-Id: <20200730141326.8260-5-thuth@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Thomas Huth 5 年之前
父節點
當前提交
5896c53954
共有 1 個文件被更改,包括 19 次插入6 次删除
  1. 19 6
      .gitlab-ci.yml

+ 19 - 6
.gitlab-ci.yml

@@ -47,11 +47,24 @@ include:
     - find . -type f -exec touch {} +
     - find . -type f -exec touch {} +
     - make $MAKE_CHECK_ARGS
     - make $MAKE_CHECK_ARGS
 
 
-.post_acceptance_template: &post_acceptance
+.acceptance_template: &acceptance_definition
+  cache:
+    key: "${CI_JOB_NAME}-cache"
+    paths:
+      - ${CI_PROJECT_DIR}/avocado-cache
+    policy: pull-push
+  before_script:
+    - mkdir -p ~/.config/avocado
+    - echo "[datadir.paths]" > ~/.config/avocado/avocado.conf
+    - echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']"
+           >> ~/.config/avocado/avocado.conf
+    - if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
+        du -chs ${CI_PROJECT_DIR}/avocado-cache ;
+      fi
   after_script:
   after_script:
     - cd build
     - cd build
     - python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat
     - python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat
-    - du -chs $HOME/avocado/data/cache
+    - du -chs ${CI_PROJECT_DIR}/avocado-cache
 
 
 build-system-ubuntu:
 build-system-ubuntu:
   <<: *native_build_job_definition
   <<: *native_build_job_definition
@@ -81,7 +94,7 @@ acceptance-system-ubuntu:
   variables:
   variables:
     IMAGE: ubuntu2004
     IMAGE: ubuntu2004
     MAKE_CHECK_ARGS: check-acceptance
     MAKE_CHECK_ARGS: check-acceptance
-  <<: *post_acceptance
+  <<: *acceptance_definition
 
 
 build-system-debian:
 build-system-debian:
   <<: *native_build_job_definition
   <<: *native_build_job_definition
@@ -111,7 +124,7 @@ acceptance-system-debian:
   variables:
   variables:
     IMAGE: debian-amd64
     IMAGE: debian-amd64
     MAKE_CHECK_ARGS: check-acceptance
     MAKE_CHECK_ARGS: check-acceptance
-  <<: *post_acceptance
+  <<: *acceptance_definition
 
 
 build-system-fedora:
 build-system-fedora:
   <<: *native_build_job_definition
   <<: *native_build_job_definition
@@ -141,7 +154,7 @@ acceptance-system-fedora:
   variables:
   variables:
     IMAGE: fedora
     IMAGE: fedora
     MAKE_CHECK_ARGS: check-acceptance
     MAKE_CHECK_ARGS: check-acceptance
-  <<: *post_acceptance
+  <<: *acceptance_definition
 
 
 build-system-centos:
 build-system-centos:
   <<: *native_build_job_definition
   <<: *native_build_job_definition
@@ -171,7 +184,7 @@ acceptance-system-centos:
   variables:
   variables:
     IMAGE: centos8
     IMAGE: centos8
     MAKE_CHECK_ARGS: check-acceptance
     MAKE_CHECK_ARGS: check-acceptance
-  <<: *post_acceptance
+  <<: *acceptance_definition
 
 
 build-disabled:
 build-disabled:
   <<: *native_build_job_definition
   <<: *native_build_job_definition