]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Attempt automatic MR backports after every merge
authorPetr Špaček <pspacek@isc.org>
Fri, 19 Apr 2024 12:29:10 +0000 (14:29 +0200)
committerPetr Špaček <pspacek@isc.org>
Fri, 19 Apr 2024 14:05:04 +0000 (14:05 +0000)
(cherry picked from commit 49f94875778178443f88486eccc5b041815abce4)

.gitlab-ci.yml

index f047e5edf2a27a24199a90908ec25103e6a51f4b..2937e893779468cf0251ce56e20bb992fc33d8c8 100644 (file)
@@ -71,6 +71,7 @@ stages:
   - performance
   - docs
   - postcheck
+  - postmerge
   - release
 
 ### Runner Tag Templates
@@ -1866,3 +1867,24 @@ pairwise:
   only:
     variables:
       - $PAIRWISE_TESTING
+
+backports:
+  <<: *base_image
+  stage: postmerge
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_REF_NAME =~ /^bind-9.[0-9]+$/ || $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH)'
+  variables:
+    # automated commits will inherit identification from the user who pressed Merge button
+    GIT_COMMITTER_NAME: $GITLAB_USER_NAME
+    GIT_COMMITTER_EMAIL: $GITLAB_USER_EMAIL
+    # avoid leftover branches from previous jobs
+    GIT_STRATEGY: clone
+    # assumed max depth of a MR for backport
+    GIT_DEPTH: 200
+  script:
+    # CI job token is not sufficient for push operations
+    - git remote get-url origin | sed -e "s/gitlab-ci-token:$CI_JOB_TOKEN/oauth2:$BACKPORT_GITLAB_API_TOKEN/" | xargs git remote set-url --push origin
+    # force-pushing is disabled so we have to have merge request on top
+    - MERGE_REQUEST_ID="$(git log -1 --format='%b' | sed --silent -e 's/^See merge request [^!]\+!//p')"
+    - git clone --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.isc.org/isc-private/bind-qa.git
+    - bind-qa/bind9/releng/backport_mr.py $CI_PROJECT_ID "$MERGE_REQUEST_ID"