Repository navigation
ci(release): build the macOS release on a self-hosted runner - #99
Conversation
Hosted Apple Silicon runners kept never picking up the Mac build, so GitHub cancelled it and every nightly since Nov 12 went unpublished. Main now runs it on the runner the FORK_MAC_RUNNER variable names, and skips the sudo certificate trust there, since that host trusts the certificate already. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0e0ee990dd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| || matrix.platform == 'mac' && github.repository == 'issuelt/t3code' && github.ref == 'refs/heads/main' | ||
| && vars.FORK_MAC_RUNNER || matrix.runner }} |
There was a problem hiding this comment.
Make checkout reusable before selecting a persistent runner
On a persistent self-hosted runner, the second release reuses the previous workspace, but the Checkout step in .github/workflows/fork-release.yml still runs git init . followed by git remote add origin ... (lines 77–78). Reinitialization preserves the existing remote, so checkout exits under set -e with error: remote origin already exists. I reproduced this sequence locally; git remote -h distinguishes remote add from remote set-url. Unlike hosted runners, self-hosted runners do not require a clean instance for each job. Make checkout idempotent and clean previous build outputs, or explicitly provision a fresh workspace per job; otherwise subsequent macOS builds fail and block the dependent publish job.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 7bb565c: the checkout now empties the workspace first, which also keeps the previous build's release/ files from being published.
[Critical impact] The PR appears safe to merge; the checkout fix addresses the previous release blocker. SummaryRoutes main-branch macOS releases to
Reviews (2) · Last reviewed commit: "ci(release): desktop checkout starts fro..." · Reviewed by Greptile |
Review: "On a persistent self-hosted runner, the second release reuses the previous workspace, but the Checkout step still runs `git init .` followed by `git remote add origin ...`" (Codex, Greptile). It also kept the last build's release/ files, which the asset step would have published. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
|
@greptileai review |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Every nightly since Nov 12 went unpublished: GitHub never handed the Mac build a hosted Apple Silicon runner, cancelled it after 15 minutes, and publishing waits for every platform.
On
main, the Mac build now runs on the runner theFORK_MAC_RUNNERrepository variable names. That'splum, a Mac mini set up in ymln's dotfiles. Its job-started hook refuses any job exceptfork-release.ymlonmain, verified with a throwaway branch workflow that it rejected before any step ran. With the variable unset, the build stays onmacos-15, so this changes nothing until the variable is set.That runner has no sudo, so the signing step skips its
sudo security add-trusted-certthere, and the host trusts the certificate itself.Made with Claude Opus 5.5 in Claude Code (T3 Code).
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.