Skip to content

Debug

Debug #2977

Workflow file for this run

name: Check release label
on:
pull_request:
types:
- synchronize
- opened
- reopened
- edited
- labeled
- unlabeled
jobs:
label_check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Wait for bot to set label
run: sleep 10
- name: Check labels
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Get PR number and repo name from event payload
PR_NUMBER=$(jq -r .pull_request.number "$GITHUB_EVENT_PATH")
REPO_FULL_NAME=$(jq -r .repository.full_name "$GITHUB_EVENT_PATH")
# Fetch fresh PR data from GitHub API
PR_DATA=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO_FULL_NAME/issues/$PR_NUMBER")
NUMBER_OF_LABELS=$(echo "$PR_DATA" | jq '.labels | length')
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" "release::maintenance")
PR_LABELS=$(echo "$PR_DATA" | jq -r '.labels[].name')
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