[mutter] ci: Avoid duplicate pipelines vol 2
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] ci: Avoid duplicate pipelines vol 2
- Date: Wed, 17 Aug 2022 12:20:25 +0000 (UTC)
commit 5d81f6d89d1daff4a1b433c3f4270f32fe74b288
Author: Jordan Petridis <jordan centricular com>
Date: Tue Jul 26 22:36:22 2022 +0300
ci: Avoid duplicate pipelines vol 2
This is a followup to GNOME/mutter!1578
This commit does a couple of things to avoid creating multiple
pipelines per commit.
First, it avoid catch all `when: manual` rules, which might
end up matching custom variables set which might potentially
not be handled.
Secondly it reworks the `workflow:rules:` and the pipeline guard
rules to avoid duplicate pipelines as the gitlab documentation
suggests.
Last, it switches from yaml anchors to the new `reference` gitlab
keyword which is more flexible.
https://docs.gitlab.com/ee/ci/jobs/job_control.html#avoid-duplicate-pipelines
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2534>
.gitlab-ci.yml | 31 ++++++++++++++++++++++++-------
1 file changed, 24 insertions(+), 7 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 77eb14ee42..94c161cd40 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -146,17 +146,31 @@ default:
workflow:
rules:
- - if: '$CI_MERGE_REQUEST_IID'
- - if: '$CI_COMMIT_TAG'
+ # Allow to switch from branch pipelines to MR pipelines seamlessly
+ # https://docs.gitlab.com/ee/ci/jobs/job_control.html#avoid-duplicate-pipelines
+ - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
+ when: never
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+ # Don't trigger a branch pipeline if there is an open MR
+ - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
+ when: never
- if: '$CI_COMMIT_BRANCH'
+ - if: '$CI_COMMIT_TAG'
-.pipline-guard: &pipline-guard
+.pipeline-guard:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
- - when: 'manual'
+ # Avoid catchall `when: manual` rule which might
+ # cause duplicate pipelines to be triggered.
+ # https://docs.gitlab.com/ee/ci/jobs/job_control.html#avoid-duplicate-pipelines
+ #
+ # Also make it so pipelines without MR need to be started
+ # manually, since their state will most likely be WIP
+ - if: '$CI_COMMIT_BRANCH'
+ when: 'manual'
check-commit-log:
extends:
@@ -177,7 +191,8 @@ check-commit-log:
- commit-message-junit-report.xml
reports:
junit: commit-message-junit-report.xml
- <<: *pipline-guard
+ rules:
+ - !reference [.pipeline-guard, rules]
check-merge-request:
extends:
@@ -198,7 +213,8 @@ check-merge-request:
- check-merge-request-report.xml
reports:
junit: check-merge-request-report.xml
- <<: *pipline-guard
+ rules:
+ - !reference [.pipeline-guard, rules]
build-fedora-container@x86_64:
extends:
@@ -447,7 +463,8 @@ test-mutter-coverity:
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule" && $MUTTER_SCHEDULED_JOB == "coverity"'
when: always
- - when: manual
+ - if: '$CI_COMMIT_BRANCH'
+ when: 'manual'
extends:
- .fdo.distribution-image@fedora
- .mutter.fedora:35@x86_64
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]