From: Petr Špaček Date: Mon, 5 Aug 2024 08:21:46 +0000 (+0200) Subject: Automatically adjust MR metadata after merge X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad2c691be7b866d0e2ae5194d63a79d88121043d;p=thirdparty%2Fbind9.git Automatically adjust MR metadata after merge 1. Set milestone to 'Not released yet' after merge We will set milestone to actual version number when we actually tag a particular version. This will get rid of mass MR reassignment when we do last minute changes to a release plan etc. 2. Adjust No CHANGES and Release Notes MR labels to match gitchangelog workflow. (cherry picked from commit 3165261ecd7468c5f30eec0f50b4b43e556b7194) (cherry picked from commit d1c64d588b5d2b293d6b4a366372c61043caba30) (cherry picked from commit 1258078e8a111c9b61634bf3362b312c1a0ede3c) --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac59eda1578..8f2721c5d11 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -54,6 +54,7 @@ stages: - docs - push - postcheck + - postmerge - release ### Runner Tag Templates @@ -949,3 +950,37 @@ abi-check: only: - main@isc-projects/bind9 - /^v9_[1-9][0-9]$/@isc-projects/bind9 + +.post_merge_template: &post_merge + <<: *base_image + stage: postmerge + needs: [] + # post-merge processes should run even if another MR was merged while the job was running (or queued) + interruptible: false + 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 or a rebased force-push + GIT_DEPTH: 1000 + before_script: + # force-pushes should not trigger process automation (happens only in -sub branches) + - > + echo "previous branch tip: $CI_COMMIT_BEFORE_SHA" + - set +o pipefail; git log --format='%H' | grep --silent "$CI_COMMIT_BEFORE_SHA" && PREVIOUS_TIP_REACHABLE=1 + - test "$PREVIOUS_TIP_REACHABLE" != "1" && echo "force-push detected, stop" && exit 1 + # non-fast-forward merges are disabled so we have to have merge commit on top + - MERGE_REQUEST_ID="$(git log -1 --format='%b' | sed --silent -e 's/^See merge request [^!]\+!//p')" + - > + : stop if this is not a merge request + - test "$MERGE_REQUEST_ID" -ge 0 + - git clone --depth 1 https://gitlab.isc.org/isc-projects/bind9-qa.git + +merged-metadata: + <<: *post_merge + rules: + - if: '$CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_REF_NAME =~ /^bind-9.[0-9]+(-sub)?$/ || $CI_COMMIT_REF_NAME =~ /^bind-9.[0-9]+.[0-9]+-release$/ || $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH)' + script: + - bind9-qa/releng/after_merge.py "$CI_PROJECT_ID" "$MERGE_REQUEST_ID"