Skip to content

ci(release): build the macOS release on a self-hosted runner - #99

Merged
yvesoddly merged 2 commits into
mainfrom
ci/mac-release-on-plum
Nov 13, 2026
Merged

yvesoddly merged 2 commits into
mainfrom
ci/mac-release-on-plum

Conversation

@yvesoddly

@yvesoddly yvesoddly commented Nov 13, 2026 •

Copy link
Copy Markdown

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 the FORK_MAC_RUNNER repository variable names. That's plum, a Mac mini set up in ymln's dotfiles. Its job-started hook refuses any job except fork-release.yml on main, verified with a throwaway branch workflow that it rejected before any step ran. With the variable unset, the build stays on macos-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-cert there, and the host trusts the certificate itself.

Made with Claude Opus 5.5 in Claude Code (T3 Code).

🤖 Generated with Claude Code


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

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>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-13T19:37:07.303792Z 6b66243 Manual request
🔒 Security Review ✅ Completed 2026-11-13T19:29:41.662046Z 0e0ee99 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added vouch:trusted Author is trusted by repo permissions or the VOUCHED list. size:S labels Nov 13, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +51 to +52
|| matrix.platform == 'mac' && github.repository == 'issuelt/t3code' && github.ref == 'refs/heads/main'
&& vars.FORK_MAC_RUNNER || matrix.runner }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 7bb565c: the checkout now empties the workspace first, which also keeps the previous build's release/ files from being published.

@greptile-apps

greptile-apps Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Critical impact] The PR appears safe to merge; the checkout fix addresses the previous release blocker.

Summary

Routes main-branch macOS releases to FORK_MAC_RUNNER, with macos-15 as the fallback.

  • Main-branch Mac releases can build on a named runner.

Reviews (2) · Last reviewed commit: "ci(release): desktop checkout starts fro..." · Reviewed by Greptile

Comment thread .github/workflows/fork-release.yml Resolved
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>
@yvesoddly
yvesoddly merged commit 6b66243 into main Nov 13, 2026
31 checks passed
@yvesoddly

Copy link
Copy Markdown
Author

@codex review

@yvesoddly

Copy link
Copy Markdown
Author

@greptileai review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: 6b66243204

ℹ️ 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".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S vouch:trusted Author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant