Skip to content

Workflow to check we have a paper trail on répertoire changes #14

Workflow to check we have a paper trail on répertoire changes

Workflow to check we have a paper trail on répertoire changes #14

Workflow file for this run

name: Pipeline
on:
pull_request:
branches: ['*']
types: [opened, synchronize, reopened, labeled, unlabeled, ready_for_review, converted_to_draft]
jobs:
labels-for-repertoire-changes:
name: Labels for repertoire changes
runs-on: ubuntu-latest
steps:
- name: Checkout merged UnicodeData.txt
uses: actions/checkout@v3
with:
path: merged
sparse-checkout: unicodetools/data/ucd/dev/UnicodeData.txt
- name: Checkout base UnicodeData.txt
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.base.sha }}
path: base
sparse-checkout: unicodetools/data/ucd/dev/UnicodeData.txt
- name: Compare repertoire
id: compare-repertoire
run: |
sed 's/^\([^;]*;[^;]*\);.*$/\1/' merged/unicodetools/data/ucd/dev/UnicodeData.txt > merged-repertoire.txt
sed 's/^\([^;]*;[^;]*\);.*$/\1/' base/unicodetools/data/ucd/dev/UnicodeData.txt > base-repertoire.txt
if diff base-repertoire.txt merged-repertoire.txt
then echo "changed=false" >> "$GITHUB_OUTPUT"
else echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Check pipeline labels
if: steps.compare-repertoire.outputs.changed == 'true'
run: |
python3 <<EOF
import os, json
with open(os.environ['GITHUB_EVENT_PATH'], 'r') as f:
event = json.load(f)
print(event)
labels = event['pull_request']['labels']
print(labels)
for label in labels:
if label['name'].startswith('pipeline-'):
print("Labeled", label)
exit(0)
print("::error file=unicodetools/data/ucd/dev/UnicodeData.txt,title=Missing pipeline label::PRs for character additions must have a pipeline label")
exit(1)
EOF