Files
pezkuwi-subxt/polkadot/scripts/gitlab/check_labels.sh
T
s3krit ebf7de90c2 [CI] Refactor publish_draft_release.sh (#1289)
* Refactor publish_draft_release.sh

* Switch to using arrays for storing labelled changes
* Combine changes for Polkadot and Substrate
* Change sanitised_git_logs in `lib.sh` to drop `*`s at the start
* Only look for priorities of medium or above (presence of one or more
  C1 label is enforeced by check-labels anyway, saves us some API calls)

* Ensure priorities >C1-low aren't labelled B0-silent
2020-06-22 19:24:12 +02:00

56 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
#shellcheck source=lib.sh
source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/lib.sh"
repo='paritytech/polkadot'
ensure_labels() {
for label in "$@"; do
if has_label "$repo" "$CI_COMMIT_BRANCH" "$label"; then
return 0
fi
done
return 1
}
# Must have one of the following labels
releasenotes_labels=(
'B0-silent'
'B1-releasenotes'
'B2-runtimenoteworthy'
)
priority_labels=(
'C1-low'
'C3-medium'
'C7-high'
'C9-critical'
)
echo "[+] Checking release notes (B) labels for $CI_COMMIT_BRANCH"
if ensure_labels "${releasenotes_labels[@]}"; then
echo "[+] Release notes label detected. All is well."
else
echo "[!] Release notes label not detected. Please add one of: ${releasenotes_labels[*]}"
exit 1
fi
echo "[+] Checking release priority (C) labels for $CI_COMMIT_BRANCH"
if ensure_labels "${priority_labels[@]}"; then
echo "[+] Release priority label detected. All is well."
else
echo "[!] Release priority label not detected. Please add one of: ${priority_labels[*]}"
exit 1
fi
# If the priority is anything other than C1-low, we *must not* have a B0-silent
# label
if has_label "$repo" "$CI_COMMIT_BRANCH" 'B0-silent' &&
! has_label "$repo" "$CI_COMMIT_BRANCH" 'C1-low' ; then
echo "[!] Changes with a priority higher than C1-low *MUST* have a B- label that is not B0-Silent"
exit 1
fi
exit 0