The release workflow runs every Tuesday after the race weekend window and can
also be started with Run workflow. It first runs the lightweight f1sql detect command. It selects the latest settled round whose cumulative source
fingerprint has not already been released, so a missed scheduled run catches
up to the newest available round.
The current workflow's validation job is deliberately non-publishing. It runs
the offline test suite and initializes an isolated workspace. SQL Server 2019
loading and SQL Server 2022 restore-forward verification are exercised by the
separate sqlserver.yml workflow. Scheduled runs publish automatically after
every release gate passes. Manual runs retain a double opt-in: a maintainer must
set dry_run=false and request publish=true. Both paths require the protected
production environment and the repository variable
F1SQL_RELEASE_BUNDLE_READY=true. The production build fetches the settled
Jolpica round, loads the FastF1 Race session, runs quality/reconciliation gates,
creates a SQL Server 2019 backup, restore-forward verifies it on SQL Server 2022,
and uploads release-bundle. Publication remains fail-closed while the
repository readiness flag is disabled.
Production candidates are season-to-date snapshots: when round N is ready,
the build fetches and normalizes every settled round from round 1 through N.
The resulting SQL Server backup therefore grows with each release instead of
containing only the newest race.
For a dry run, leave dry_run=true (the default) and publish=false. The
publish job explicitly rejects dry-run dispatches even if both the environment
variable and the publish input are accidentally enabled.
On failure, the detector and validation jobs upload diagnostic artifacts when available. Rerunning a workflow is safe because release packaging refuses to replace an existing version and the detector compares source fingerprints.
Required production setup before enabling publication:
- Configure a protected
productionenvironment with required reviewers and restrict deployment branches/tags. - Keep repository-level
GITHUB_TOKENpermissions read-only; the publish job alone requestscontents: write. - Add SQL Server 2019 and 2022 integration runners. The integration workflow generates disposable SA passwords for each container; no database password is stored in repository or environment secrets.
- Store the monorepo SHA,
database/schema/v2path, and source versions in the run manifest. - Enable
F1SQL_RELEASE_BUNDLE_READYonly after the build job produces and verifies a complete release bundle. - Add an approval gate after quality, backup, and restore verification.