From d9e2c1bef8455cbf61c365622367b6aaa27ba986 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 27 Feb 2023 10:50:33 +0100 Subject: [PATCH 1/8] restrict pipeline run for MRs to non-main branches --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1f49285f3c..5e19999051 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ workflow: # see https://docs.gitlab.com/ee/ci/yaml/workflow.html#switch-between-branch-pipelines-and-merge-request-pipelines - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push" when: never - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Runs for merge requests + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # Runs for merge requests (to main only) - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main - if: $CI_PIPELINE_SOURCE == 'web' # for testing -- GitLab From 445b84f2fb5f0e5d83c9d4969f5574c05f4e36b3 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 27 Feb 2023 10:52:48 +0100 Subject: [PATCH 2/8] fix ci file --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5e19999051..1e2a0932b0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ workflow: # see https://docs.gitlab.com/ee/ci/yaml/workflow.html#switch-between-branch-pipelines-and-merge-request-pipelines - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push" when: never - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # Runs for merge requests (to main only) + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # Runs for merge requests (to main only) - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main - if: $CI_PIPELINE_SOURCE == 'web' # for testing -- GitLab From 4b68197f34342a7758cb6f29ec255a857c4b0893 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 27 Feb 2023 11:10:28 +0100 Subject: [PATCH 3/8] move rule into mr template --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1e2a0932b0..09d4b080bb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ workflow: # see https://docs.gitlab.com/ee/ci/yaml/workflow.html#switch-between-branch-pipelines-and-merge-request-pipelines - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push" when: never - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # Runs for merge requests (to main only) + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main - if: $CI_PIPELINE_SOURCE == 'web' # for testing @@ -130,7 +130,7 @@ stages: .rules-merge-request: extends: .rules-basis rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # Runs for merge requests (to main only) - if: $CI_PIPELINE_SOURCE == 'push' when: never -- GitLab From 6638e0251d7e2afd94e5fe899f5531f0def1519f Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 27 Feb 2023 11:21:16 +0100 Subject: [PATCH 4/8] move rule to basis template to also cover build jobs --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 09d4b080bb..31c6d318e5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -123,6 +123,8 @@ stages: rules: - if: $MIRROR_ACCESS_TOKEN # Don't run in the mirror update pipeline (only then MIRROR_ACCESS_TOKEN is defined) when: never + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "main" # needed here as well for build jobs + when: never - if: $CI_PIPELINE_SOURCE == 'schedule' # Don't run in any scheduled pipelines by default (use schedule templates below to enable again for certain conditions) when: never - when: on_success @@ -130,7 +132,7 @@ stages: .rules-merge-request: extends: .rules-basis rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # Runs for merge requests (to main only) + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'push' when: never -- GitLab From 9b03b464586968d4bc3f761db127455e0f2c8d73 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 27 Feb 2023 11:25:29 +0100 Subject: [PATCH 5/8] need to have the rule on both basis and MR template --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 31c6d318e5..97a1853a32 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -132,7 +132,7 @@ stages: .rules-merge-request: extends: .rules-basis rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" only have MR pipelines for MRs to main - if: $CI_PIPELINE_SOURCE == 'push' when: never -- GitLab From 75f737977378ba2ed91934743357abee7378c2f9 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 27 Feb 2023 11:26:37 +0100 Subject: [PATCH 6/8] fix comment --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 97a1853a32..7ff23e17e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -132,7 +132,7 @@ stages: .rules-merge-request: extends: .rules-basis rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" only have MR pipelines for MRs to main + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # only have MR pipelines for MRs to main - if: $CI_PIPELINE_SOURCE == 'push' when: never -- GitLab From f57f99527bc7c7364ba5398a5f62609dd8af9813 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 27 Feb 2023 11:32:04 +0100 Subject: [PATCH 7/8] make build jobs manual for MRs to non-main branches --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7ff23e17e9..40f42c12d1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -123,8 +123,9 @@ stages: rules: - if: $MIRROR_ACCESS_TOKEN # Don't run in the mirror update pipeline (only then MIRROR_ACCESS_TOKEN is defined) when: never - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "main" # needed here as well for build jobs - when: never + # this next rule is needed to make MRs to non-main work + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "main" + when: manual - if: $CI_PIPELINE_SOURCE == 'schedule' # Don't run in any scheduled pipelines by default (use schedule templates below to enable again for certain conditions) when: never - when: on_success -- GitLab From 4172d6100c4b154d78d2153dcae8fe02585346b5 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 27 Feb 2023 11:35:36 +0100 Subject: [PATCH 8/8] allow build jobs again, they are quick anyway --- .gitlab-ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 40f42c12d1..6d00b37f0a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -123,9 +123,6 @@ stages: rules: - if: $MIRROR_ACCESS_TOKEN # Don't run in the mirror update pipeline (only then MIRROR_ACCESS_TOKEN is defined) when: never - # this next rule is needed to make MRs to non-main work - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "main" - when: manual - if: $CI_PIPELINE_SOURCE == 'schedule' # Don't run in any scheduled pipelines by default (use schedule templates below to enable again for certain conditions) when: never - when: on_success -- GitLab