Skip to content

fix(helpers): add TTL cache to dir_size_gb to prevent blocking rglob walks #3

fix(helpers): add TTL cache to dir_size_gb to prevent blocking rglob walks

fix(helpers): add TTL cache to dir_size_gb to prevent blocking rglob walks #3

name: Validate Extensions Catalog
on:
push:
branches: [main, resources/dev]
paths:
- 'resources/dev/extensions-library/services/*/manifest.yaml'
- 'resources/dev/scripts/generate-extensions-catalog.py'
- 'dream-server/config/extensions-catalog.json'
pull_request:
branches: [main, resources/dev]
paths:
- 'resources/dev/extensions-library/services/*/manifest.yaml'
- 'resources/dev/scripts/generate-extensions-catalog.py'
- 'dream-server/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@v6
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install PyYAML
run: pip install pyyaml
- name: Regenerate catalog and diff
run: |
cp dream-server/config/extensions-catalog.json /tmp/catalog-before.json
python resources/dev/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)' dream-server/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 resources/dev/scripts/generate-extensions-catalog.py"
exit 1
fi