Files
pezkuwi-subxt/.github/workflows/check-labels.yml
T
Alexander Samusev c3489aaf2f [ci] Don't run prdoc and lables GHA on master (#3257)
PR adds condition to ignore master branch for prdoc and labels GHA.

This option doesn't work because all PRs are for master thus the actions
won't start:
```yml
on:
  pull_request:
    branches-ignore:
      - master
```

This option doesn't work because actions don't see the PR number and
[break](https://github.com/paritytech/polkadot-sdk/actions/runs/7827272667/job/21354764953):
```yml
on:
  push:
    branches-ignore:
      - master
```

cc https://github.com/paritytech/ci_cd/issues/940
cc https://github.com/paritytech/polkadot-sdk/issues/3240
2024-02-12 10:30:46 +00:00

60 lines
2.1 KiB
YAML

name: Check labels
on:
pull_request:
types: [labeled, opened, synchronize, unlabeled]
merge_group:
jobs:
check-labels:
runs-on: ubuntu-latest
steps:
- name: Check labels
env:
IMAGE: paritytech/ruled_labels:0.4.0
MOUNT: /work
GITHUB_PR: ${{ github.event.pull_request.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
API_BASE: https://api.github.com/repos
REPO: ${{ github.repository }}
RULES_PATH: labels/ruled_labels
CHECK_SPECS: "specs_polkadot-sdk.yaml"
run: |
if [ ${{ github.ref }} == "refs/heads/master" ]; then
echo "Skipping master"
exit 0
fi
if [ $(echo ${{ github.ref }} | grep -c "gh-readonly-queue") -eq 1 ]; then
echo "Skipping merge queue"
exit 0
fi
docker pull $IMAGE
echo "REPO: ${REPO}"
echo "GITHUB_PR: ${GITHUB_PR}"
# Clone repo with labels specs
echo "Cloning repo with labels specs"
# Temporary, before https://github.com/paritytech/labels/pull/29 is not merged
git clone https://github.com/paritytech/labels
# Fetch the labels for the PR under test
echo "Fetch the labels for $API_BASE/${REPO}/pulls/${GITHUB_PR}"
labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
echo "Labels: ${labels}"
if [ -z "${labels}" ]; then
echo "No labels found, checking without them"
docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --no-label
fi
labels_args=${labels: :-1}
printf "Checking labels: %s\n" "${labels_args}"
# Prevent the shell from splitting labels with spaces
IFS=","
# --dev is more useful to debug mode to debug
docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --labels ${labels_args} --dev --tags PR