Skip to content

Merge pull request #7 from ningzimu/main #1

Merge pull request #7 from ningzimu/main

Merge pull request #7 from ningzimu/main #1

name: Update Indexes
on:
push:
branches:
- main
paths:
- "firstdata/sources/**/*.json"
jobs:
update:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install dependencies
run: uv sync
- name: Validate all source JSON files
run: |
find firstdata/sources -name "*.json" | xargs uv run check-jsonschema \
--schemafile firstdata/schemas/datasource-schema.json
- name: Check for duplicate IDs
run: |
uv run python - <<'EOF'
import json, sys
from pathlib import Path
seen = {}
errors = []
for path in sorted(Path("firstdata/sources").rglob("*.json")):
data = json.loads(path.read_text(encoding="utf-8"))
id_ = data.get("id")
if id_ in seen:
errors.append(f"Duplicate id '{id_}' in:\n {seen[id_]}\n {path}")
else:
seen[id_] = path
if errors:
print("❌ Duplicate IDs found:")
for e in errors:
print(e)
sys.exit(1)
print(f"✅ All {len(seen)} IDs are unique.")
EOF
- name: Rebuild indexes
run: uv run python scripts/build_indexes.py
- name: Commit updated indexes
run: |
git config user.name "firstdata[bot]"
git config user.email "firstdata@mininglamp.com"
git add firstdata/indexes/ firstdata/badges/
git diff --cached --quiet || git commit -m "chore(indexes): auto-update indexes"
git push