Skip to content

M3.2 — CI: rebuild the index and publish the site, schema-gated #7

Description

@GiggleLiu

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)

  1. 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.
  2. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions