-
Notifications
You must be signed in to change notification settings - Fork 359
43 lines (37 loc) · 1.24 KB
/
label_check.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
name: Check release label
on:
pull_request:
types:
- synchronize
- opened
- reopened
- labeled
- unlabeled
jobs:
label_check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Check labels
run: |
NUMBER_OF_LABELS=$(jq '.pull_request.labels | length' "$GITHUB_EVENT_PATH")
if [ $NUMBER_OF_LABELS -eq 0 ]; then
echo "PR has no labels. Please add at least one label of release type."
exit 1
fi
RELEASE_LABELS=("release::enhancements" "release::bug_fixes" "release::ci_docs")
PR_LABELS=$(jq -r '.pull_request.labels[].name' "$GITHUB_EVENT_PATH")
NB_RELEASE_LABELS=0
for LABEL in $PR_LABELS; do
if [[ " ${RELEASE_LABELS[@]} " =~ " ${LABEL} " ]]; then
NB_RELEASE_LABELS=$((NB_RELEASE_LABELS+1))
fi
done
if [ $NB_RELEASE_LABELS -eq 0 ]; then
echo "PR has no release labels. Please add a label of release type."
exit 1
elif [ $NB_RELEASE_LABELS -gt 1 ]; then
echo "PR has multiple release labels. Please remove all but one label."
exit 1
fi