From 5cc71ac75fd538119b64d8a6bafe750fd4c6c4d5 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Tue, 28 Jun 2022 10:43:34 -0700 Subject: [PATCH] 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 Acked-by: Eric Engestrom Part-of: --- .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