Skip to content

Commit

Permalink
Replace the label checks using bash script by ruled-labels (#1576)
Browse files Browse the repository at this point in the history
* Add rules and specs

* add labels

* Add new checks

* Fix criticality check

* Use the new rule filter introduced in ruled-labels v0.3.0 to better target tests

* Add workflow to tests label rules

* Fix trigger

* Add new GH Workflow

* Don't swallow failures but allow them

* Fix new script

* Simplify check

* Fix Workflow

* Remove dup var

* Fix vars

* Move pull image to separate step

* Remove continue on error

* Show input list of labels

* Fix check-labels workflow

* Remove Docker -it flags

* Prevent shell from splitting on spaces

* Fix rules path

* Comment out rules related to labels not present in the repo

* Fix tests

* Fix labels specs and tests

* fix test

* new label description and rules

* fix tests

* use ruled_labels as crate

* fix toolchain

* fix component

* move from docker to crate

* fix test

* fail without labels

* add cache

* fix check no labels

* add D-labels check

* fix emtpy label check

* try docker

* fix specs

* test D label

* revert Cargo.toml

* use tags for ruled_labels

* fix rules

* test D label

* fix tags

* remove changes

* add PR tag to single criticality rule

* remove old line

* test ruled_labels test

* disable Check label Rules

* fix GHA name

* fix tests

* rename files, upd ruled_labels 0.3.2

Co-authored-by: alvicsam <alvicsam@gmail.com>
Co-authored-by: parity-processbot <>
Co-authored-by: Joyce Siqueira <joycesiqueira@Joyces-MacBook-Pro.local>
Co-authored-by: joyce <joyce@parity.io>
Co-authored-by: Joyce Siqueira <98593770+the-right-joyce@users.noreply.github.com>
Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com>
  • Loading branch information
6 people authored Dec 12, 2022
1 parent 3839099 commit 16c944a
Show file tree
Hide file tree
Showing 7 changed files with 441 additions and 4 deletions.
54 changes: 54 additions & 0 deletions .github/workflows/check-D-labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Check D labels

on:
pull_request:
types: [labeled, opened, synchronize, unlabeled]
paths:
- primitives/**

jobs:
check-labels:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}

- name: Pull image
env:
IMAGE: paritytech/ruled_labels:0.3.2
run: docker pull $IMAGE

- name: Check labels
env:
IMAGE: paritytech/ruled_labels:0.3.2
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: scripts/ci/ruled_labels
CHECK_SPECS: specs.yaml
run: |
echo "REPO: ${REPO}"
echo "GITHUB_PR: ${GITHUB_PR}"
# Fetch the labels for the PR under test
labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
if [ -z "${labels}" ]; then
echo "No labels found. Please add labels D labels"
exit 1
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 audit
30 changes: 30 additions & 0 deletions .github/workflows/check-label-rules.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Check label Rules

on:
push:
paths:
- scripts/ci/ruled_labels/**

jobs:
check-label-rules:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}

- name: Pull image
env:
IMAGE: paritytech/ruled_labels:0.3.2
run: docker pull $IMAGE

- name: Check label Rules
env:
IMAGE: paritytech/ruled_labels:0.3.2
MOUNT: /work
RULES_PATH: scripts/ci/ruled_labels
run: |
docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE test ${MOUNT}/tests.yaml
26 changes: 26 additions & 0 deletions .github/workflows/check-labels-old.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# disabled in favor of ruled_labels tool
# name: Check labels

# on:
# pull_request:
# types: [labeled, opened, synchronize, unlabeled]


# jobs:
# check-labels:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout sources
# uses: actions/checkout@v3
# with:
# fetch-depth: 0
# ref: ${{ github.event.pull_request.head.ref }}
# repository: ${{ github.event.pull_request.head.repo.full_name }}
# - name: Check labels
# run: bash ${{ github.workspace }}/scripts/ci/github/check_labels.sh
# env:
# GITHUB_PR: ${{ github.event.pull_request.number }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# HEAD_SHA: ${{ github.event.pull_request.head.sha }}
# BASE_SHA: ${{ github.event.pull_request.base.sha }}

37 changes: 33 additions & 4 deletions .github/workflows/check-labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,44 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}

- name: Pull image
env:
IMAGE: paritytech/ruled_labels:0.3.2
run: docker pull $IMAGE

- name: Check labels
run: bash ${{ github.workspace }}/scripts/ci/github/check_labels.sh
env:
IMAGE: paritytech/ruled_labels:0.3.2
MOUNT: /work
GITHUB_PR: ${{ github.event.pull_request.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
API_BASE: https://api.github.com/repos
REPO: ${{ github.repository }}
RULES_PATH: scripts/ci/ruled_labels
CHECK_SPECS: specs.yaml
run: |
echo "REPO: ${REPO}"
echo "GITHUB_PR: ${GITHUB_PR}"
# Fetch the labels for the PR under test
labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
if [ -z "${labels}" ]; then
echo "No labels found. Please add labels A, B and C labels"
exit 1
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
Loading

0 comments on commit 16c944a

Please sign in to comment.