[9.16] new: ci: Automate parts of MR workflow
Backport of MR !9244 Merge branch 'backport-pspacek/post-merge-ci-9.16' into 'bind-9.16' See merge request isc-projects/bind9!9403
This commit is contained in:
@@ -65,6 +65,7 @@ stages:
|
||||
- performance
|
||||
- docs
|
||||
- postcheck
|
||||
- postmerge
|
||||
- release
|
||||
|
||||
### Runner Tag Templates
|
||||
@@ -1530,3 +1531,37 @@ pairwise:
|
||||
variables:
|
||||
- $PAIRWISE_TESTING
|
||||
needs: []
|
||||
|
||||
.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"
|
||||
|
||||
@@ -181,15 +181,6 @@ for commit in danger.git.commits:
|
||||
f"```{line}``` ({len(line)} > 72 characters)."
|
||||
)
|
||||
|
||||
###############################################################################
|
||||
# MILESTONE
|
||||
###############################################################################
|
||||
#
|
||||
# FAIL if the merge request is not assigned to any milestone.
|
||||
|
||||
if not danger.gitlab.mr.milestone:
|
||||
fail("Please assign this merge request to a milestone.")
|
||||
|
||||
###############################################################################
|
||||
# BACKPORT & VERSION LABELS
|
||||
###############################################################################
|
||||
|
||||
Reference in New Issue
Block a user