workflows:release - generate JSON files from YAML files on release #83
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: JSON check | |
on: | |
push: | |
paths: | |
- '**.json' | |
- '**.yml' | |
- '**.yaml' | |
env: | |
PYTHON_VERSION: 3.11.6 | |
jobs: | |
check-schemata: | |
name: Check Schemata | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install dependencies | |
run: python -m pip install jsonschema pyyaml | |
- name: Check JSON Syntax | |
uses: limitusus/json-syntax-check@v2 | |
with: | |
pattern: "\\.json$" | |
- name: Check JSON Schemata | |
run: | | |
for schema in *.schema.json; do | |
if [[ -f "${schema%.schema.json}.json" ]]; then | |
python3 -c 'import json,jsonschema,sys;jsonschema.validate(json.load(open(sys.argv[1])), json.load(open(sys.argv[2])))' "${schema%.schema.json}.json" "$schema"; | |
fi; | |
done | |
- name: Check YAML Schemata | |
run: | | |
for schema in *.schema.json; do | |
for ext in "yaml" "yml"; do | |
if [[ -f "${schema%.schema.json}.$ext" ]]; then | |
python3 -c 'import yaml,json,jsonschema,sys;jsonschema.validate(yaml.load(open(sys.argv[1]), yaml.Loader), json.load(open(sys.argv[2])))' "${schema%.schema.json}.$ext" "$schema"; | |
fi; | |
done | |
done |