Skip to content

feat: add macOS x86_64 (Intel) build support#571

Open
kalifun wants to merge 5 commits intoDimillian:mainfrom
kalifun:feat/add-macos-x86_64-build
Open

feat: add macOS x86_64 (Intel) build support#571
kalifun wants to merge 5 commits intoDimillian:mainfrom
kalifun:feat/add-macos-x86_64-build

Conversation

@kalifun
Copy link

@kalifun kalifun commented Mar 20, 2026

Add Intel Mac support to release workflow

I tried to write a test compilation file(test-build.yml). At present, I have passed, so I have deleted the file.

image

kalifun added 3 commits March 20, 2026 11:38
- Add matrix build for both aarch64 (macos-14) and x86_64 (macos-13)
- Update dmg filename to use TARGET_ARCH variable
- Add darwin-x86_64 platform to latest.json
- Upload artifacts per-architecture and merge in release job
Copy link

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

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: e800104687

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +28 to +29
- runner: macos-15
arch: x86_64

Choose a reason for hiding this comment

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

P1 Badge Build the x86_64 macOS leg on an Intel runner

GitHub's hosted-runner reference maps macos-15 to arm64; the Intel label is macos-15-intel. Because the build and cargo build steps here never pass --target x86_64-apple-darwin, this matrix entry will still compile native arm64 binaries and then package them as x86_64, so the new Intel release artifacts will be mislabeled and unusable on Intel Macs.

Useful? React with 👍 / 👎.

Comment on lines +462 to +466
"url": release_url("CodexMonitor.app.tar.gz"),
"signature": "${SIGNATURE}",
}
},
"darwin-x86_64": {
"url": release_url("CodexMonitor.app.tar.gz"),

Choose a reason for hiding this comment

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

P1 Badge Publish separate macOS updater archives per architecture

Tauri's static updater JSON keys are architecture-specific (darwin-aarch64 vs darwin-x86_64), so they need different tarballs and signatures. Here both entries point to the same CodexMonitor.app.tar.gz(.sig), and the macOS jobs also upload those files under the same name, which means the release can only publish one updater bundle; one Mac architecture will always download the other architecture's update payload.

Useful? React with 👍 / 👎.

- Use macos-15-intel for x86_64 builds (true Intel runner)
- Add architecture suffix to macOS updater bundles (tar.gz/sig)
- Dynamically resolve per-architecture bundles in latest.json
- Upload all tar.gz variants to release
Copy link

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

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: 61509a9893

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines 166 to +167
cp "src-tauri/target/release/bundle/macos/Codex Monitor.app.tar.gz.sig" \
release-artifacts/CodexMonitor.app.tar.gz.sig
release-artifacts/CodexMonitor_${TARGET_ARCH}.app.tar.gz.sig

Choose a reason for hiding this comment

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

P1 Badge Update the later latest.json step to the new macOS sig names

These renamed macOS updater signatures are now the only .app.tar.gz.sig files that get downloaded into release-artifacts, but the unchanged Build latest.json step still runs cat release-artifacts/CodexMonitor.app.tar.gz.sig under set -e. That cat will now fail on every release run before latest.json is generated, so the workflow never reaches gh release create.

Useful? React with 👍 / 👎.

platforms = {}

# Find macOS updater bundles for each architecture
macos_tarballs = list(artifacts_dir.glob("CodexMonitor_*_*.app.tar.gz"))

Choose a reason for hiding this comment

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

P1 Badge Match the Apple Silicon updater tarball in latest.json

This glob only matches tarballs with a second underscore after CodexMonitor_, so it finds CodexMonitor_x86_64.app.tar.gz but skips CodexMonitor_aarch64.app.tar.gz. Once the earlier release-step failure is fixed, the loop below will therefore emit darwin-x86_64 only, and Apple Silicon clients will disappear from latest.json and stop receiving updater offers.

Useful? React with 👍 / 👎.

Comment on lines +336 to +338
pattern: macos-artifacts-*
path: release-artifacts
merge-multiple: true

Choose a reason for hiding this comment

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

P2 Badge Stop merging the two macOS zip bundles into one filename

Both macOS matrix legs still upload a file named release-artifacts/CodexMonitor.zip, and actions/download-artifact v4 documents that merge-multiple: true resolves same-name collisions with “last writer wins”. That means one architecture's zip overwrites the other here, and the release job later publishes a single unlabeled CodexMonitor.zip whose CPU architecture depends on download order.

Useful? React with 👍 / 👎.

- Fix glob pattern to match all macOS tarballs (remove extra underscore)
- Add architecture suffix to zip files to avoid merge conflicts
- Remove obsolete SIGNATURE variable
- Add zips array for release upload
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