Repository navigation
ci(pre-beta): gate scheduled builds on main HEAD SHA - #1573
Merged
Merged
Conversation
…ndow GitHub delivers the hourly schedule every ~4-5h, so the 'commit in the last ~70min' gate skipped most merges. The last full pre-beta build was 99c11ec (2026-10-03); #1562, #1564, #1568 and #1569 never reached pre-beta-*, which also kept downstream openab-pty images on Node 22.23.3. Build when main HEAD differs from the head SHA of the last successful run that tagged every agent.
This was referenced Oct 23, 2026
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What problem does this solve?
pre-beta-build.ymlis scheduled hourly, and its gate builds only ifmaingot a commit in the last ~70 minutes. In practice GitHub delivers this schedule only every ~4–5 hours (100 runs between 2026-10-01 and 2026-10-23), so most merges fall outside the window and never get built.Evidence:
ghcr.io/openabdev/openab:pre-beta-*was last built on 2026-10-03 from99c11ec(fix(pool): keep the [[ws:]] workspace across hung eviction #1557). docs(cron): document cron autonomy and permission scope #1562, fix(cron)!: treat blank thread_id/id as unset; document thread_id/id behavior #1564, release: v0.10.0-beta.6 #1568 and ci(release): include a Review Contract in generated release PRs #1569 never reached pre-beta.pre-beta-<agent>still ships Node 22.23.3, which misses the October Node.js security release (RFC: rebuild agent images for Node.js security releases (Node 22.23.4 / 24.22.1) #1567).openab-ptybuilds every image, nightly included,FROM openab:pre-beta-<variant>, so all publishedopenab-ptyimages are on 22.23.3 too.A manual full rebuild was dispatched separately (run 39886364920). This PR fixes the gate so the drift does not come back.
Discord Discussion URL: https://discord.com/channels/1490282656913559673/1562951633544020000
Review Contract
Goal
A scheduled pre-beta run builds whenever
mainHEAD has not yet been published by a full pre-beta build, no matter how late GitHub delivers the schedule.Non-goals
workflow_dispatchbehavior: manual runs still always build.mainis unchanged. That is covered by the daily Node security check (chore(ci): add daily node-security-check workflow #1571) and the nightly lane.Accepted Residual Risks
GITHUB_TOKENlimits.success. The next scheduled run then rebuilds all agents, and this repeats until the failure is fixed. This is intentional: a red pre-beta should be retried, not silently skipped.agentssubset) does not count as a full build, so the next scheduled run rebuilds everything once.Acceptance Criteria
mainHEAD equal to the head SHA of the last full pre-beta build logsshould_run=falseand skips the build.mainHEAD logsshould_run=trueand builds, even when the last commit is older than 70 minutes.workflow_dispatchalways builds.contents: readandactions: read.Follow-ups
last full pre-beta build <sha>and makes the correct decision.pre-beta-*and downstreamopenab-ptyimages.How the new gate works
pre-beta-build.ymlruns on that branch, newest first. Take the first run whosetag (<agent>)jobs succeeded for every agent inALL_AGENTS. Skipped-gate runs and partial builds are ignored.head_shadiffers from HEAD.Validation
node --checkpasses on the extractedgithub-scriptbody. It was checked with Node 22.23.4, downloaded and verified against the official SHASUMS256.eventName=schedule):pre-beta-*(2026-10-03).main.