Skip to content

Follow-up: build only universal nightly artifacts - #1332

Merged
lawrencecchen merged 1 commit into
mainfrom
feat-nightly-universal-only
Mar 13, 2026
Merged

lawrencecchen merged 1 commit into
mainfrom
feat-nightly-universal-only

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Mar 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • remove the separate Apple Silicon nightly lane and build only the universal nightly app
  • keep the existing cmux-nightly-macos.dmg and appcast.xml track, but make it universal
  • stop signing, notarizing, appcasting, and publishing the extra universal-specific nightly artifacts

Testing

  • ruby -e '''require "yaml"; YAML.load_file(".github/workflows/nightly.yml"); puts "YAML OK"'''
  • git diff --check

Issues


Summary by cubic

Build only the universal nightly app and publish it under the existing nightly track to simplify CI and remove duplicate artifacts. Users now get a single universal DMG via appcast.xml.

  • Refactors
    • Removed the Apple Silicon-only build lane and artifacts.
    • Kept cmux-nightly-macos.dmg and appcast.xml, now produced from the universal build.
    • Deleted universal-specific DMG and feed (cmux-nightly-universal-macos.dmg, appcast-universal.xml).
    • Simplified arch checks, packaging, notarization, Sentry upload, and artifact uploads to use only the universal output.
    • Updated release notes to reflect a single universal update track.

Written for commit aa96222. Summary will update on new commits.

Summary by CodeRabbit

  • Chores
    • Streamlined nightly build process to produce a single universal macOS build, consolidating separate architecture-specific build steps.
    • Simplified release artifact distribution and update mechanism to a single universal package.

@vercel

vercel Bot commented Mar 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment Mar 13, 2026 10:22am

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@coderabbitai

coderabbitai Bot commented Mar 13, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

The workflow consolidates Apple Silicon (arm64) and universal build steps into a single universal nightly build, removing arm-specific artifact paths, verification checks, and appcast variants. Updated references throughout to use the universal app directory and removes arm64-specific bundle ID messaging.

Changes

Cohort / File(s) Summary
Nightly Build Consolidation
.github/workflows/nightly.yml
Consolidates separate arm64 and universal build steps into a single universal build. Removes arm-specific binary paths, lipo-arch checks, and duplicate artifact references. Updates packaging, notarization, and appcast generation to use universal app paths only. Simplifies bundle ID and DMG naming to reflect single universal distribution track.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • PR #1067: Implements dual arm64 + universal build tracks in nightly workflow, directly contrasting with this PR's consolidation to a single universal-only workflow.

Poem

🐰 One path instead of two,
Universal magic through and through!
No more splitting arm and wide,
One strong bundle, unified with pride! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: consolidating separate Apple Silicon and universal nightly builds into a single universal nightly build.
Description check ✅ Passed The description covers the summary, testing approach, and related issue, but lacks the demo video section and incomplete checklist items.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat-nightly-universal-only
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cubic-dev-ai cubic-dev-ai 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.

No issues found across 1 file

@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: aa96222aa0

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

@@ -425,7 +393,6 @@ jobs:
exit 1
fi
./scripts/sparkle_generate_appcast.sh "$NIGHTLY_DMG_IMMUTABLE" nightly appcast.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep universal nightly appcast updated for existing clients

This step now generates only appcast.xml, but existing installs from the prior universal track were configured with SUFeedURL pointing to appcast-universal.xml (set in this same workflow before this commit). Once this change lands, those clients will stop receiving nightly updates because their feed is no longer regenerated or published, so users already on com.cmuxterm.app.nightly.universal are effectively stranded unless they manually reinstall from a different track.

Useful? React with 👍 / 👎.

@coderabbitai coderabbitai 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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/nightly.yml (1)

157-164: ⚠️ Potential issue | 🟠 Major

Update nightly workflow tests to match universal-only behavior

This consolidation breaks current assertions in tests/test_nightly_universal_build.sh that still require dual Apple Silicon + universal lanes, arm-only lipo checks, and universal-suffixed artifact/appcast names. CI will fail until those tests are updated to the new single-track contract.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/nightly.yml around lines 157 - 164, The nightly workflow
now builds a single universal binary via the xcodebuild invocation used in the
"Build universal nightly app (Release)" step, which invalidates assertions in
tests/test_nightly_universal_build.sh that expect dual Apple Silicon + universal
lanes, arm-only lipo checks, and artifact/appcast names with
architecture-specific suffixes; update tests/test_nightly_universal_build.sh to
(1) remove/replace checks that assert both arm64 and universal lanes and any
branch logic for separate arm-only lipo validation, (2) change lipo/arch
assertions to verify the produced binary is universal (contains arm64 and
x86_64) instead of expecting an arm-only archive, and (3) normalize
artifact/appcast name expectations to the new universal-only naming (remove
architecture-specific suffixes like -arm64 or -universal variants) so the test
reflects the single-track contract.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In @.github/workflows/nightly.yml:
- Around line 157-164: The nightly workflow now builds a single universal binary
via the xcodebuild invocation used in the "Build universal nightly app
(Release)" step, which invalidates assertions in
tests/test_nightly_universal_build.sh that expect dual Apple Silicon + universal
lanes, arm-only lipo checks, and artifact/appcast names with
architecture-specific suffixes; update tests/test_nightly_universal_build.sh to
(1) remove/replace checks that assert both arm64 and universal lanes and any
branch logic for separate arm-only lipo validation, (2) change lipo/arch
assertions to verify the produced binary is universal (contains arm64 and
x86_64) instead of expecting an arm-only archive, and (3) normalize
artifact/appcast name expectations to the new universal-only naming (remove
architecture-specific suffixes like -arm64 or -universal variants) so the test
reflects the single-track contract.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a422d610-0115-414f-94bb-5f7a20f0a4da

📥 Commits

Reviewing files that changed from the base of the PR and between 01a4797 and aa96222.

📒 Files selected for processing (1)
  • .github/workflows/nightly.yml

@lawrencecchen
lawrencecchen merged commit 2ed7f73 into main Mar 13, 2026
17 checks passed
@lawrencecchen
lawrencecchen deleted the feat-nightly-universal-only branch March 13, 2026 10:50
bn-l pushed a commit to bn-l/cmux that referenced this pull request Apr 3, 2026

This branch was successfully deployed

1 active deployment
Preview — aa96222a Deployed Mar 13, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant