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>
This commit is contained in:
Thomas Huth 2020-07-30 10:35:48 +02:00
parent 699616db64
commit 5896c53954

View File

@ -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