Repository navigation
ci(nightly-next): one Mac job on the release-pool path; the final DMG is checked in verify-final - #26491
Merged
Conversation
… is checked in verify-final signer-verify was a second Mac job between the pool signer and the fallback decision, so the pool path waited in two Mac queues before the macOS signer could start. signer-dmg (release pool) now hands the notarized DMG, appcast and signed-app handoff on, and build-sign-notarize-nightly runs whenever signer-dmg did not pass. signer-verify's checks of the final DMG (signature, Gatekeeper's notarized source, Apple's checks of the app inside, the appcast's Sparkle signature) move to verify-final-dmg-nightly, for a pool-signed DMG only, which publish already needs. signer-dmg-image stays the pool's one Mac job, routed owned-first like the verify jobs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-cc8bff1c3ddb4ec353c5
Contributor
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
Collaborator
Author
|
Owned by an agent session · session |
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 28, 2026 01:37 — with
GitHub Actions
Inactive
|
Found 4 test failures on Blacksmith runners: Failures
|
Collaborator
Author
|
Bead |
Contributor
|
Shipped in:
|
This branch was previously deployed
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.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
The release-pool path for nightly-next had two Mac jobs between the pool signer and the fallback decision: signer-dmg-image (builds the DMG), then signer-verify (checks the final DMG). The macOS signer could not start until both had run. This change leaves one Mac job before that decision.
signer-dmg(release pool) now hands on the notarized DMG, the appcast and the signed-app handoff under the namesbuild-sign-notarize-nightlyuses.build-sign-notarize-nightlyruns wheneversigner-dmgdid not pass.signer-verifyis gone. Its checks of the final DMG (codesign, Gatekeeper's notarized source, Apple's checks of the app inside including the copied Computer Use helper, and the appcast's Sparkle signature against the pinned key) move to a step inverify-final-dmg-nightlythat runs only for a pool-signed DMG (scripts/ci/nightly-steps/signer-final-dmg-checks.sh). Publish already needs that job.signer-dmg-imageis the pool path's one Mac job, routed like the verify jobs: on attempt 1 of a nightly-next push, a free owned fleet Mac first (the owned-pool rescue watches it there); otherwise the Blacksmith macOS label with a moving queue, and on a rerun the other size.signer-dmgnever overwrite, so after a rerun the macOS job's verified output stands.Outside the pool path nothing changes. Comparing the expanded workflow with base, the only differences are the
signer-verify→signer-dmgname in the four jobs that read it, and the new step inverify-final-dmg-nightly, which is gated onneeds.signer-dmg.result == 'success'. nightly.yml shrinks from 488,751 to 485,729 bytes.Trade-off: a failure in the final DMG's Mac checks now fails the run's publish instead of falling back to the macOS signer. The same app was already checked on a Mac before the DMG was built, so such a failure is rare, and the next tip builds.
Before (run 40556126172): pushed 18:01, published 20:52. The sign job queued 73 min on blacksmith-6vcpu-macos-26. After: measured on the first opted-in run at this tip.
Tests:
tests/test_nightly_signer_jobs.pypins the one hand-off point, the fallback condition, the pool-only final-DMG step and its checks, and the overwrite rules. The sign-runner, recovery, coverage and retention tests are updated. Every other red guard here fails the same way on base.Risk: high (release workflow). Nothing changes unless the
sign_poolinput orvars.CI_NIGHTLY_NEXT_SIGN_POOLopts in.Review (codex gpt-6-astra xhigh): SHIP at b8b7e93
Agent session: agent session
🤖 Generated with Claude Code