CI: publish nightly mac installers to a rolling prerelease - #2702
Closed
dcwhite wants to merge 1 commit into
Closed
Conversation
The mac nightly already built four .pkg installers but left them as Actions artifacts: 90-day expiry, and a signed-in GitHub account needed to download one. Attach them to a `nightly` release instead so there is a permanent, anonymous download link, and post that link to the same Slack channel as the nightly test results. The four variants all emit SCIRun-<version>-Darwin.pkg (CPack sets PKG_FILE_NAME in src/CMakeLists.txt), so they are renamed with a runner/arch/python suffix before upload -- as release assets the identical names would overwrite each other. Updating an existing release force-moves the git ref: GitHub ignores target_commitish on an already-published release, so without that the release page would keep showing the commit the tag was first cut from. The Slack line is emitted only when the nightly tag's sha matches the run's head sha. If the release job failed, the message omits the link rather than pointing at the previous night's build. The packages remain unsigned and un-notarized; the release body carries the quarantine workaround and points at #1663. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Member
Author
|
Closing: this duplicates work already on master. I built this from a stale worktree whose branch predated that merge, and The two parts that are genuinely missing from master — a Slack link to the nightly release, and a note in the release body that the packages are unsigned — are split out into a much smaller PR against the existing publisher. |
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.
The mac nightly already builds four
.pkginstallers, but they only ever existed as Actions artifacts: 90-day expiry, and a signed-in GitHub account needed to download one. This attaches them to a rollingnightlyprerelease so there is a permanent, anonymous download link, and posts that link to the same Slack channel as the nightly test results.mac.yml— newnightly-releasejobSchedule-only (master pushes would rewrite the release several times a day),
needsthe four installer-producing jobs withif: always()so one red variant still publishes the rest.Three details that aren't obvious from the diff:
SCIRun-<version>-Darwin.pkg— CPack sets a singlePKG_FILE_NAMEinsrc/CMakeLists.txt. As release assets those identical names would overwrite each other, so each gets a runner/arch/python suffix:SCIRun-5.0.0-macos26-arm64.pkg,-macos26-x86_64.pkg,-macos-latest-arm64.pkg,-macos-latest-arm64-nopython.pkg.target_commitishon an already-published release, so without the explicit ref update the release page would keep showing whatever commit the tag was first cut from, forever.nightly-slack.yml— installer linkAdds a
:package:line to the existingmac-buildmessage. It only appears when thenightlytag's sha matches the run's head sha — if the release job failed, the message omits the link rather than quietly pointing at the previous night's build.Testing
workflow_runandscheduletriggers only fire from the default branch, so none of this can be exercised from a PR branch — the same caveat already documented at the top ofnightly-slack.yml. The first real exercise is the first nightly after merge. What I did verify locally: both files parse as YAML, and the rename/notes-table logic was dry-run against a simulated artifact set including a missing variant.Everything is additive — a new job at the end of
mac.ymlplus one hunk innightly-slack.yml— so it should not conflict with the other CI work in flight (#2575, #2576, #2644).Not signed
The packages remain unsigned and un-notarized, so Gatekeeper will refuse them on download. The release body ships the
xattr -dr com.apple.quarantineworkaround as a stopgap and points at #1663, which now carries the full signing process, ordering constraints, and a TODO list. Publishing these behind a public link raises the priority of that issue but doesn't depend on it.🤖 Generated with Claude Code