Skip to content

ci(release): a beta needs siterig/full on its exact commit - #1798

Draft
frahlg wants to merge 2 commits into
masterfrom
ci/beta-needs-site-full
Draft

frahlg wants to merge 2 commits into
masterfrom
ci/beta-needs-site-full

Conversation

@frahlg

@frahlg frahlg commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Proposal, changes the release flow: needs Fredrik's approval. Merge after #1797, which adds the site test and the runner that posts siterig/full.

Problem

The beta's simulator test on 21 October was run by hand, from a folder outside the repo. Nothing stops a beta whose Core has not met the simulated house.

Proposal

native-release.yml, channel beta, gets one step right after "Bind the candidate to its source". It reads the commit statuses of the exact source commit and publishes only if the latest siterig/full is success. The step only reads; it never runs the rig.

siterig/full comes from siterig-runner (go/test/site/runner in #1797), which runs on a machine of its own, not in GitHub Actions. It runs the full set on each new master commit and posts the status on that SHA: success when every scenario passed and every known failure still failed as known.

  • A dry run warns and goes on.
  • Stable is unchanged: it promotes a beta, whose commit already passed.
  • The workflow gains statuses: read.

What it costs the release

The beta commit is the merge of the Version Packages PR. The runner picks it up within its polling interval (5 min) once it lands on master. The full set took 72 minutes in three lanes on an M5 MacBook on 22 October; s12-20 alone takes 56, so more lanes would not shorten it. The owner dispatches the beta after siterig/full turns green on that commit; until then the gate refuses with the commit and the state it found.

Alternatives considered

  • Run the rig inside the release workflow. Ruled out: the rig does not run in GitHub Actions.
  • Accept a pass on any commit with the same go/, web/ and driver pin. Saves the wait after Version Packages, which only changes package.json and the changelog, but a tree rule is easier to get wrong than "this commit passed".

Tests

python3 -m unittest discover -s scripts -p 'test_write_native_release_notes.py', test_ha_addon_dispatch.py, test_check_native_release_order.py and .github/scripts/test_discord_release.py pass. The step itself runs only on a dispatch of the release workflow.

🤖 Generated with Claude Code

native-release.yml now refuses to publish a beta unless the job
"site full" of site.yml succeeded on the source commit: every scenario
of go/test/site against device-simulator, with known failures still
failing. A dry run warns instead. Stable promotes a tested beta and is
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The rig no longer runs in GitHub Actions (Fredrik, 22 Oct). A runner on
its own machine posts the commit status siterig/full after a full run of
a commit, and the beta gate reads that status: the latest siterig/full on
the source commit must be success. The step reads; it never runs the rig.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@frahlg frahlg changed the title ci(release): a beta needs a full site test on its exact commit ci(release): a beta needs siterig/full on its exact commit Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant