Background
New here? Read #9 first — it explains the project and defines every term below.
This issue automates publishing: whenever new results are committed, a continuous-integration (CI) job rebuilds the index file and deploys the website (via GitHub Pages) — and refuses to publish broken data. "Schema-gated" means the job first checks each results file against the agreed format from #3 and stops if any file is malformed, so the live site can never show corrupt data.
Objective
Automatically rebuild the index and deploy the site whenever new results land, while blocking invalid data from being published.
Interface (Input → Output)
- Input: committed
results/*.json files (on push).
- Output: a rebuilt
results/index.json, a deployed GitHub Pages site, and a pass/fail CI status check.
Technical recommendations (suggestions)
- A GitHub Actions workflow: on push, validate every results file against the schema, run
build_index.py, then deploy leaderboard/ + results/ to Pages.
- Fail the job at the validation step if any file is malformed.
Verification (how a reviewer confirms this is done)
- Push a branch that adds a valid results file → CI goes green, the index is rebuilt, and the deployed (or preview) URL shows the new run.
- Push a branch that adds a malformed results file (e.g. missing a required field) → CI fails at the validation step and publishes nothing. (Proves the gate actually protects the live site.)
Dependencies
Depends on #3 (schema + index) and #6 (the site).
Out of scope
The reproducibility archive and observability (#8).
Background
This issue automates publishing: whenever new results are committed, a continuous-integration (CI) job rebuilds the index file and deploys the website (via GitHub Pages) — and refuses to publish broken data. "Schema-gated" means the job first checks each results file against the agreed format from #3 and stops if any file is malformed, so the live site can never show corrupt data.
Objective
Automatically rebuild the index and deploy the site whenever new results land, while blocking invalid data from being published.
Interface (Input → Output)
results/*.jsonfiles (on push).results/index.json, a deployed GitHub Pages site, and a pass/fail CI status check.Technical recommendations (suggestions)
build_index.py, then deployleaderboard/+results/to Pages.Verification (how a reviewer confirms this is done)
Dependencies
Depends on #3 (schema + index) and #6 (the site).
Out of scope
The reproducibility archive and observability (#8).