]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3669] Prevent duplicate pipelines in CI
authorAndrei Pavel <andrei@isc.org>
Fri, 29 Nov 2024 09:21:56 +0000 (11:21 +0200)
committerWlodzimierz Wencel <wlodek@isc.org>
Fri, 6 Dec 2024 17:20:34 +0000 (17:20 +0000)
.gitlab-ci.yml

index bbe50d1504f8405a548454f8dbec036cf8953b49..6cb8fb0d2e26067a4270ef49b7a11c361c463afe 100644 (file)
@@ -25,13 +25,16 @@ stages:
   - test
   - fuzz
 
-# Do not run the test stage on pipeline schedule trigger.
 .base_rules_for_test_jobs: &rules_for_test_stage
   rules:
-    - if: $CI_PIPELINE_SOURCE != 'schedule'
-      when: always
+    # Do not run the test stage on pipeline schedule trigger.
     - if: $CI_PIPELINE_SOURCE == 'schedule'
       when: never
+    # Prevent duplicate pipelines.
+    - if: $CI_OPEN_MERGE_REQUESTS && $CI_COMMIT_BRANCH == null
+      when: never
+    # On any other event, including push to MR branch and push to master.
+    - when: always
 
 are-database-scripts-in-sync:
   stage: test
@@ -155,15 +158,17 @@ fuzz:
     matrix:
       - SANITIZER: [address, undefined]
   rules:
+    # Prevent duplicate pipelines.
+    - if: $CI_OPEN_MERGE_REQUESTS && $CI_COMMIT_BRANCH == null
+      when: never
     # On merge request.
-    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
       variables:
         MODE: "code-change"
       when: manual
       allow_failure: true
-    # And on push to master.
-    - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
-      when: always
+    # Run on any other event, including push to MR branch and push to master.
+    - when: always
   before_script:
     # Get GitLab's container id.
     - export CFL_CONTAINER_ID=`docker ps -q -f "label=com.gitlab.gitlab-runner.job.id=$CI_JOB_ID" -f "label=com.gitlab.gitlab-runner.type=build"`
@@ -313,6 +318,10 @@ flawfinder-sast:
       when: never
     - if: $SAST_EXCLUDED_ANALYZERS =~ /flawfinder/
       when: never
+    # Prevent duplicate pipelines.
+    - if: $CI_OPEN_MERGE_REQUESTS && $CI_COMMIT_BRANCH == null
+      when: never
+    # Run on any other event, including push to master.
     - when: always
 
 semgrep-sast:
@@ -322,6 +331,8 @@ semgrep-sast:
       when: never
     - if: $CI_PIPELINE_SOURCE == 'schedule'
       when: never
-    - if: $SAST_EXCLUDED_ANALYZERS =~ /semgrep/
+    # Prevent duplicate pipelines.
+    - if: $CI_OPEN_MERGE_REQUESTS && $CI_COMMIT_BRANCH == null
       when: never
+    # Run on any other event, including push to MR branch and push to master.
     - when: always