Branch-fix verdict pipeline
A
workflow_dispatchGitHub Actions workflow that captures a Contract v1 verdict for a contributor-supplied branch-fix Docker image, alongside the deployed original verdict, for side-by-side comparison.
The workflow lives at
.github/workflows/branch-fix-verdict.yml.
Five-line invocation
The run page renders a Markdown comparison summary, and the captured
verdicts are uploaded as a workflow artefact named
branch-fix-verdict-<slug>-<run_id> for download or programmatic
fetch.
Inputs
Verdict semantics (reminder)
reproduced means the upstream bug reproduces in this run.
unreproduced means it does not. See
Contract v1: Verdict semantics
for the full reasoning.
For a recipe whose original verdict is reproduced, a successful
branch-fix is therefore expected to flip the verdict to
unreproduced. For a recipe whose original verdict is already
unreproduced (a sentinel page tracking an upstream-fix-detected
event), a contributor is unlikely to need this workflow at all.
Artefact
The workflow uploads a directory artefact named
branch-fix-verdict-<slug>-<run_id> with 30-day retention. The
bundle contains:
The R.3 comparison-page UI consumes this exact bundle structure; naming the files this way commits R.2 to a wire format R.3 can program against without further coordination.
Comparison summary
The workflow writes a Markdown table to $GITHUB_STEP_SUMMARY,
visible on the run page:
…followed by a one-line "matches expected" / "does NOT match
expected" line for the expected_verdict assertion. The Markdown
summary is the at-a-glance view in the workflow run page; for the
side-by-side comparison surface, drop the workflow artefact zip on
the comparison page (file-drop or paste). The
artefact is the source of truth either way.
What this pipeline does not do
- Build the branch-fix image. The contributor is expected to build and publish to a registry the runner can pull from. The image is the input boundary of this pipeline.
- Verify Layer 1 (WASM) reproductions. Layer 1 verdicts are produced live in-page by a browser; there is no Docker image to swap.
- Verify Layer 3 (rr replay) reproductions on hosted runners.
GitHub-hosted Ubuntu runners cannot drive
rr replay. Layer 3 branch-fix verification needs a self-hosted runner exposing CPUID faulting. - Authenticate to private registries. v1 assumes the supplied image ref is anonymously pullable.
See also
- Comparison page — the R.3 side-by-side UI that consumes this pipeline's artefact bundle (file-drop, URL params, or JSON paste).
- Contract v1 — the verdict surface this pipeline emits and consumes.
verdict.schema.json— the schema both bundle entries validate against.- Consumer workflow — the sibling reusable workflow for verifying a Vivarium recipe in a consumer repo's CI.
- Layer 2 catalogue
— the slugs available for
inputs.slug.