citemplate: rework gitlab rules
authorJordan Petridis <jordan@centricular.com>
Wed, 26 Aug 2020 11:55:58 +0000 (14:55 +0300)
committerJordan Petridis <jordan@centricular.com>
Thu, 27 Aug 2020 12:39:35 +0000 (15:39 +0300)
Rework rules of jobs to prever duplicate pipelines.

https://docs.gitlab.com/ce/ci/yaml/README.html#prevent-duplicate-pipelines

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/331>

gitlab/ci_template.yml

index f9197a0..d36b4a4 100644 (file)
@@ -1,3 +1,6 @@
+include:
+  - template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'
+
 stages:
   - 'build docker'
   - 'preparation'
@@ -318,13 +321,23 @@ gst-indent amd64 docker:
 manifest:
   image: $MANIFEST_IMAGE
   rules:
-    - if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME && $GITLAB_USER_LOGIN == "gstreamer-merge-bot"'
-      when: 'always'
+    # Always have automatic pipeline for branchs in cerbero and docs
+    # cause they need to update artifacts, like the docs site or cerbero deps
     - if: '$CI_PROJECT_PATH == "gstreamer/cerbero"'
-      when: 'always'
     - if: '$CI_PROJECT_PATH == "gstreamer/gst-docs"'
-      when: 'always'
-    - when: 'manual'
+
+    # If the user that triggered the Pipeline is the Merge bot and the branch doesn't match
+    # the upstream branch set, run the pipeline
+    - if: '$GITLAB_USER_LOGIN == "gstreamer-merge-bot" && $CI_COMMIT_BRANCH != "$GST_UPS_BRANCH"'
+    # When the user isn't the merge bot, require an explicit action to trigger the pipeline
+    # to avoid wasting CI resources
+    - if: '$GITLAB_USER_LOGIN != "gstreamer-merge-bot"'
+      when: 'manual'
+    # If this matches, it means the pipeline is running against either the main
+    # or a stable branch, so make it manual
+    - if: '$CI_COMMIT_BRANCH == "$GST_UPS_BRANCH"'
+      when: 'manual'
+
   stage: 'preparation'
   script:
     - cd /gst-ci