You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ccb76c4
Browse filesBrowse the repository at this point in the historyBrowse files
Publish a release in about 25 minutes instead of 68 (#1214)
* Build the Intel Mac app on the Apple silicon runner
The Intel signing job ran on macos-15-intel and took 22 minutes against 12 for
the same build on macos-15. Both now build on macos-15: signed-build.ts names
the Rust target for every Mac build (x86_64-apple-darwin for Intel), the CLI's
dependencies are installed for the installer's platform with npm --os/--cpu,
and verify-mac-arch.sh checks every Mach-O in the app and in its disk image
carries the job's architecture.
* Publish a release in a third of the time, keeping every guarantee
A stable release no longer builds an unsigned desktop app the signing runs
then replace: the signed builds are the only installers it ever carries. A
candidate or beta still gets its ad-hoc and unsigned installers, built beside
the release and attached without ever replacing anything, so a signing run
that gets there first keeps its signed build.
The tag and the release are created right after the images, and both signing
runs are dispatched from there, so they build while the publish run finishes.
Latest still waits for every signed installer and latest.json.
The full CI suite no longer runs again on a release commit that changes only
the release files on a commit main's CI passed (scripts/release-ci-gate.ts).
That run stands in for it, and the checks that read the release files run
again. Anything else, including a renamed or deleted file, runs the full
suite. The diff is read with renames off, which also closes the same hole in
the final-against-candidate check.
CI keeps a run per commit on main, and the release's own checks out of main's
concurrency group: they were waiting for main's in-progress run (the five
minutes before v0.3.1's checks) and cancelling the pending one.
stapler validate retries a dropped CloudKit connection, as stapling does.
* Run the full checks when main's CI cannot be read
* Say where a final's desktop build was tested
* Scan the app for its architecture with one file call, not one per file
0 commit comments