qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: qemu-devel@nongnu.org
Cc: "Willian Rampazzo" <willianr@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>
Subject: [PULL 16/19] gitlab: Run Avocado tests manually (except mainstream CI)
Date: Wed, 26 May 2021 23:18:35 +0200	[thread overview]
Message-ID: <20210526211838.421716-17-f4bug@amsat.org> (raw)
In-Reply-To: <20210526211838.421716-1-f4bug@amsat.org>

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>
---
 .gitlab-ci.d/buildtest-template.yml | 12 ++++++++++++
 .gitlab-ci.yml                      | 24 ++++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
index 180bf1aee7e..8e6321c2a38 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 7e4ffab4d11..6dc5385e697 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'
-- 
2.26.3



  parent reply	other threads:[~2021-05-26 21:43 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-26 21:18 [PULL 00/19] gitlab-ci patches for 2021-05-26 Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 01/19] gitlab: Replace YAML anchors by extends (acceptance_test_job) Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 02/19] gitlab: Rename ACCEL_CONFIGURE_OPTS to EXTRA_CONFIGURE_OPTS Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 03/19] gitlab: Enable cross-i386 builds of TCI Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 04/19] gitlab: Extract container job template to container-template.yml Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 05/19] gitlab: Extract crossbuild job templates to crossbuild-template.yml Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 06/19] gitlab: Extract DCO/style check jobs to static_checks.yml Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 07/19] gitlab: Extract build stages to stages.yml Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 08/19] gitlab: Extract default build/test jobs templates Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 09/19] gitlab: Extract core container jobs to container-core.yml Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 10/19] gitlab: Drop linux user build job for CentOS 7 Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 11/19] gitlab: Extract all default build/test jobs to buildtest.yml Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 12/19] gitlab: Move current job set to qemu-project.yml Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 13/19] gitlab: Document how forks can use different set of jobs Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 14/19] gitlab: Extract cross-container jobs to container-cross.yml Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 15/19] gitlab: Keep Avocado reports during 1 week Philippe Mathieu-Daudé
2021-05-26 21:18 ` Philippe Mathieu-Daudé [this message]
2021-05-26 21:18 ` [PULL 17/19] gitlab: Use $CI_DEFAULT_BRANCH instead of hardcoded 'master' Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 18/19] gitlab: Convert check-dco/check-patch jobs to the 'rules' syntax Philippe Mathieu-Daudé
2021-05-26 21:18 ` [PULL 19/19] gitlab: Split gprof-gcov job Philippe Mathieu-Daudé
2021-05-27  7:16   ` Philippe Mathieu-Daudé
2021-05-27 13:56 ` [PULL 00/19] gitlab-ci patches for 2021-05-26 Peter Maydell
2021-05-27 14:51   ` Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210526211838.421716-17-f4bug@amsat.org \
    --to=f4bug@amsat.org \
    --cc=alex.bennee@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    --cc=willianr@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).