Mesa (main): ci: Use "!references" to manage scheduled pipeline rules.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 30 19:10:34 UTC 2022


Module: Mesa
Branch: main
Commit: 5cc71ac75fd538119b64d8a6bafe750fd4c6c4d5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5cc71ac75fd538119b64d8a6bafe750fd4c6c4d5

Author: Emma Anholt <emma at anholt.net>
Date:   Tue Jun 28 10:43:34 2022 -0700

ci: Use "!references" to manage scheduled pipeline rules.

Because !references merging happens after yaml parsing, this lets us
remove a duplicated definition between .test-source-dep.yml and
.gitlab-ci.yml.

Reviewed-by: Guilherme Gallo <guilherme.gallo at collabora.com>
Acked-by: Eric Engestrom <eric at engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17287>

---

 .gitlab-ci.yml                 | 19 +++------
 .gitlab-ci/test-source-dep.yml | 94 ++++++++++++++++++++++--------------------
 2 files changed, 56 insertions(+), 57 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aba7c1fc106..6615151271b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -89,12 +89,6 @@ stages:
   - layered-backends
   - deploy
 
-# Generic rule to not run the job during scheduled pipelines
-# ----------------------------------------------------------
-.scheduled_pipelines-rules:
-  rules: &ignore_scheduled_pipelines
-    if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
-    when: never
 
 # YAML anchors for rule conditions
 # --------------------------------
@@ -141,7 +135,7 @@ pages:
     - public
   needs: []
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: *is-mesa-main
       changes: &docs-or-ci
       - docs/**/*
@@ -156,7 +150,7 @@ test-docs:
   stage: deploy
   needs: []
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: *is-forked-branch
       changes: *docs-or-ci
       when: manual
@@ -180,7 +174,7 @@ test-docs-mr:
 # When to automatically run the CI
 .ci-run-policy:
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     # If any files affecting the pipeline are changed, build/test jobs run
     # automatically once all dependency jobs have passed
     - changes: &all_paths
@@ -224,7 +218,7 @@ test-docs-mr:
   extends:
     - .ci-run-policy
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     # Run pipeline by default in the main project if any CI pipeline
     # configuration files were changed, to ensure docker images are up to date
     - if: *is-post-merge
@@ -259,8 +253,7 @@ make git archive:
     - .fdo.ci-fairy
   stage: git-archive
   rules:
-    - if: *is-scheduled-pipeline
-      when: on_success
+    - !reference [.scheduled_pipeline-rules, rules]
   # ensure we are running on packet
   tags:
     - packet.net
@@ -299,7 +292,7 @@ sanity:
 # pipelines.
 .test-manual-mr:
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: *is-forked-branch-or-pre-merge-not-for-marge
       changes:
         *all_paths
diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml
index a6cb3c38dc1..02a9fb1c451 100644
--- a/.gitlab-ci/test-source-dep.yml
+++ b/.gitlab-ci/test-source-dep.yml
@@ -1,18 +1,24 @@
 # This file list source dependencies to avoid creating/running jobs
 # those outcome cannot be changed by the modifications from a branch.
 
-# Generic rule to not run the job during scheduled pipelines
-# ----------------------------------------------------------
-.scheduled_pipelines-rules:
-  rules: &ignore_scheduled_pipelines
-    if: '$CI_PIPELINE_SOURCE == "schedule"'
-    when: never
+# Rule to filter for only scheduled pipelines.
+.scheduled_pipeline-rules:
+  rules:
+    - if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
+      when: on_success
+
+# Generic rule to not run the job during scheduled pipelines. Jobs that aren't
+# something like a nightly run should include this rule.
+.no_scheduled_pipelines-rules:
+  rules:
+    - if: *is-scheduled-pipeline
+      when: never
 
 # Mesa core source file dependencies
 # ----------------------------------
 .mesa-rules:
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes: &mesa_core_file_list
       - .gitlab-ci.yml
       - .gitlab-ci/**/*
@@ -46,7 +52,7 @@
 
 .vulkan-rules:
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes: &vulkan_file_list
       - src/vulkan/**/*
       when: on_success
@@ -56,7 +62,7 @@
 # -------------------------------------
 .gallium-rules:
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes: &gallium_core_file_list
       - src/gallium/*
       - src/gallium/auxiliary/**/*
@@ -71,7 +77,7 @@
 .softpipe-rules:
   stage: software-renderer
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -87,7 +93,7 @@
 .llvmpipe-rules:
   stage: software-renderer
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -103,7 +109,7 @@
 .lavapipe-rules:
   stage: software-renderer
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -123,7 +129,7 @@
 .llvmpipe-cl-rules:
   stage: software-renderer
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
       - .gitlab-ci.yml
       - .gitlab-ci/**/*
@@ -152,7 +158,7 @@
       when: never
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -185,7 +191,7 @@
     - if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias)$/") &&
            ($GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH)'
       when: never
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -209,7 +215,7 @@
       when: never
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     # Run only on pre-merge pipelines from Marge
     - if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH'
       when: never
@@ -230,7 +236,7 @@
 .nouveau-rules:
   stage: nouveau
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -248,7 +254,7 @@
 .panfrost-midgard-rules:
   stage: arm
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     - changes:
@@ -276,7 +282,7 @@
 .panfrost-bifrost-rules:
   stage: arm
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     - changes:
@@ -305,7 +311,7 @@
 .vc4-rules:
   stage: broadcom
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -323,7 +329,7 @@
 .v3d-rules:
   stage: broadcom
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -341,7 +347,7 @@
 .v3dv-rules:
   stage: broadcom
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -356,7 +362,7 @@
 .lima-rules:
   stage: arm
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$LIMA_FARM == "offline"'
       when: never
     - changes:
@@ -375,7 +381,7 @@
 .radv-rules:
   stage: amd
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     - changes:
@@ -390,7 +396,7 @@
 .virgl-rules:
   stage: layered-backends
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -411,7 +417,7 @@
 .virgl-iris-rules-performance:
   stage: layered-backends
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     # Run only on pre-merge pipelines from Marge
@@ -434,7 +440,7 @@
 .radeonsi-rules:
   stage: amd
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     - changes:
@@ -458,7 +464,7 @@
 .radeonsi-vaapi-rules:
   stage: amd
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     - changes:
@@ -478,7 +484,7 @@
 .i915g-rules:
   stage: intel
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -495,7 +501,7 @@
 .crocus-rules:
   stage: intel
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -512,7 +518,7 @@
 .iris-rules:
   stage: intel
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     - changes:
@@ -533,7 +539,7 @@
 .iris-rules-performance:
   stage: intel
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     # Run only on pre-merge pipelines from Marge
@@ -553,7 +559,7 @@
 .anv-rules:
   stage: intel
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     - changes:
@@ -570,7 +576,7 @@
 .intel-rules:
   stage: intel
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
       when: never
     - changes:
@@ -592,7 +598,7 @@
 .zink-rules:
   stage: layered-backends
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -610,7 +616,7 @@
 .zink-anv-rules:
   stage: layered-backends
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -631,7 +637,7 @@
 .zink-turnip-rules:
   stage: layered-backends
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -655,7 +661,7 @@
   rules:
     - if: '$MICROSOFT_FARM == "offline"'
       when: never
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -693,7 +699,7 @@
   rules:
     - if: '$MICROSOFT_FARM == "offline"'
       when: never
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -710,7 +716,7 @@
   rules:
     - if: '$MICROSOFT_FARM == "offline"'
       when: never
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -725,7 +731,7 @@
   rules:
     - if: '$MICROSOFT_FARM == "offline"'
       when: never
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -743,7 +749,7 @@
 .etnaviv-rules:
   stage: etnaviv
   rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -763,7 +769,7 @@
 # Rules for unusual architectures that only build a subset of drivers
 .ppc64el-rules:
    rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success
@@ -799,7 +805,7 @@
 
 .s390x-rules:
    rules:
-    - *ignore_scheduled_pipelines
+    - !reference [.no_scheduled_pipelines-rules, rules]
     - changes:
         *mesa_core_file_list
       when: on_success



More information about the mesa-commit mailing list