Skip to content

Conditionally run schema validation #630

Conditionally run schema validation

Conditionally run schema validation #630

Workflow file for this run

name: Check JSON files
on:
push:
branches:
- '**'
paths-ignore:
- 'README.md'
- '.gitignore'
- '.gitattributes'
- '.github/ISSUE_TEMPLATE/**/*'
- '.github/CONTRIBUTING.md'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm install jsonlint-cli -g
- name: Lint dataset
run: jsonlint-cli *.json
- name: Lint dead-entries
run: jsonlint-cli dead-entries/*.json
check-commit-message:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check commit message
id: check_message
run: |
MESSAGE=$(git log --format=%B -n 1 ${{ github.event.after }})
if [[ "$MESSAGE" == "Updated entries"* ]]; then
echo "::set-output name=run_schema_validation::true"
else
echo "::set-output name=run_schema_validation::false"
fi
outputs:
run_schema_validation: ${{ steps.check_message.outputs.run_schema_validation }}
dataset-validation:
needs: check-commit-message
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm install ajv-cli -g
- name: Validate dataset using JSON schema
if: ${{ needs.check-commit-message.outputs.run_schema_validation }} == 'true'
run: ajv validate -s schema.json -d "*.json"
dead-entries-validation:
needs: check-commit-message
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm install ajv-cli -g
- name: Validate dead-entries files using JSON schema
if: ${{ needs.check-commit-message.outputs.run_schema_validation }} == 'true'
run: ajv validate -s dead-entries/schema.json -d "dead-entries/*.json"