aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>2021-05-25 07:18:39 +0200
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>2021-05-27 16:39:23 +0200
commitf56bf4caf7179c82a50e3f7618f335526fba37d3 (patch)
tree90784e319a150237d4234743fe07fefa63d7f8c1
parentf230dba714e7777098ede5758d62b21922e7ec2f (diff)
gitlab: Run Avocado tests manually (except mainstream CI)
Due to a design problem and misunderstanding between the Avocado framework and QEMU, Avocado is fetching many asset artifacts it shouldn't be fetching, exhausting the jobs CI timeout. Since Avocado artifacts are cached, this is not an issue with old forks, which already have populated the cache and do not need to download new artifacts to run the tests. However this is very confusing to new contributors who start to fork the project and keep having failing CI pipelines. As a temporary kludge, add the QEMU_CI_AVOCADO_TESTING variable to allow old forks to keep running the Avocado tests, while still allowing new forks to use the mainstream set of CI tests. Keep the tests enabled by default on the mainstream namespace which is old enough to have a populated cache, hoping we will keep this cache long enough until the Avocado/QEMU design issue is fixed. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20210525082556.4011380-9-f4bug@amsat.org>
-rw-r--r--.gitlab-ci.d/buildtest-template.yml12
-rw-r--r--.gitlab-ci.yml24
2 files changed, 36 insertions, 0 deletions
diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
index aabd6c07d2..3e3e19d96b 100644
--- a/.gitlab-ci.d/buildtest-template.yml
+++ b/.gitlab-ci.d/buildtest-template.yml
@@ -67,3 +67,15 @@
after_script:
- cd build
- du -chs ${CI_PROJECT_DIR}/avocado-cache
+ rules:
+ # Only run these jobs if running on the mainstream namespace,
+ # or if the user set the QEMU_CI_AVOCADO_TESTING variable (either
+ # in its namespace setting or via git-push option, see documentation
+ # in /.gitlab-ci.yml of this repository).
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
+ when: always
+ - if: '$QEMU_CI_AVOCADO_TESTING'
+ when: always
+ # Otherwise, set to manual (the jobs are created but not run).
+ - when: manual
+ allow_failure: true
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7e4ffab4d1..6dc5385e69 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,5 +11,29 @@
# configuration path", on your GitLab CI namespace:
# https://docs.gitlab.com/ee/ci/pipelines/settings.html#custom-cicd-configuration-path
#
+# ----------------------------------------------------------------------
+#
+# QEMU CI jobs are based on templates. Some templates provide
+# user-configurable options, modifiable via configuration variables.
+#
+# These variables can be set globally in the user's CI namespace
+# setting:
+# https://docs.gitlab.com/ee/ci/variables/#create-a-custom-variable-in-the-ui
+# or set manually each time a branch/tag is pushed, as a git-push
+# command line argument:
+# https://docs.gitlab.com/ee/user/project/push_options.html#push-options-for-gitlab-cicd
+#
+# Example setting the QEMU_CI_EXAMPLE_VAR variable:
+#
+# git push -o ci.variable="QEMU_CI_EXAMPLE_VAR=value" myrepo mybranch
+#
+# ----------------------------------------------------------------------
+#
+# List of environment variables that can be use to modify the set
+# of jobs selected:
+#
+# - QEMU_CI_AVOCADO_TESTING
+# If set, tests using the Avocado framework will be run
+
include:
- local: '/.gitlab-ci.d/qemu-project.yml'