47 lines
1.5 KiB
YAML
47 lines
1.5 KiB
YAML
name: Validate Extensions Catalog
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'ods/extensions/library/services/*/manifest.yaml'
|
|
- 'ods/scripts/generate-extensions-catalog.py'
|
|
- 'ods/config/extensions-catalog.json'
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- 'ods/extensions/library/services/*/manifest.yaml'
|
|
- 'ods/scripts/generate-extensions-catalog.py'
|
|
- 'ods/config/extensions-catalog.json'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
catalog-freshness:
|
|
name: Check catalog is up-to-date
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Install PyYAML
|
|
run: pip install pyyaml
|
|
|
|
- name: Regenerate catalog and diff
|
|
run: |
|
|
cp ods/config/extensions-catalog.json /tmp/catalog-before.json
|
|
python ods/scripts/generate-extensions-catalog.py
|
|
# Compare ignoring generated_at timestamp (changes every run)
|
|
jq 'del(.generated_at)' /tmp/catalog-before.json > /tmp/a.json
|
|
jq 'del(.generated_at)' ods/config/extensions-catalog.json > /tmp/b.json
|
|
if ! diff -q /tmp/a.json /tmp/b.json >/dev/null 2>&1; then
|
|
diff /tmp/a.json /tmp/b.json || true
|
|
echo "::error::extensions-catalog.json is out of date. Run: python ods/scripts/generate-extensions-catalog.py"
|
|
exit 1
|
|
fi
|