Repository navigation
ci(gpui): cross-compile the macOS x86_64 release on Apple Silicon #125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,7 @@ | ||
| #!/usr/bin/env bash | ||
| # Builds an ad-hoc signed Buzz.app and wraps it in a .dmg. Runs on macOS, | ||
| # for the architecture of the machine it runs on. The app carries the | ||
| # for the machine's architecture or BUZZ_GPUI_MACOS_ARCH (arm64 or x86_64), | ||
| # which it cross-compiles; the checks then run an x86_64 build under Rosetta. The app carries the | ||
| # GStreamer it plays media with, copied from the official GStreamer | ||
| # framework (the runtime and development .pkg installers from | ||
| # gstreamer.freedesktop.org), so users need not install GStreamer. | ||
|
|
@@ -31,15 +32,29 @@ export RUSTFLAGS="${RUSTFLAGS:-} -C link-arg=-Wl,-headerpad_max_install_names" | |
|
|
||
| version="$(cargo metadata --no-deps --format-version 1 \ | ||
| | python3 -c 'import json,sys; print(next(p["version"] for p in json.load(sys.stdin)["packages"] if p["name"] == "buzz-gpui"))')" | ||
| arch="$(uname -m)" | ||
| host_arch="$(uname -m)" | ||
| arch="${BUZZ_GPUI_MACOS_ARCH:-$host_arch}" | ||
| out=release | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| if [ "$arch" != "$host_arch" ]; then | ||
| case "$arch" in | ||
| arm64) triple=aarch64-apple-darwin ;; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Handle arm64 cross-builds on Intel hosts. This branch accepts
|
||
| x86_64) triple=x86_64-apple-darwin ;; | ||
| *) echo "Cannot build for $arch." >&2; exit 1 ;; | ||
| esac | ||
| export CARGO_BUILD_TARGET="$triple" | ||
| # pkg-config refuses a cross build unless told; the universal framework | ||
| # carries this architecture's libraries. | ||
| export PKG_CONFIG_ALLOW_CROSS=1 | ||
| out="$triple/release" | ||
| fi | ||
| bash scripts/build-package.sh | ||
|
|
||
| work="$(mktemp -d)" | ||
| app="$work/Buzz.app" | ||
| mkdir -p "$app/Contents/MacOS" "$app/Contents/Resources" dist | ||
| cp target/release/buzz-gpui "$app/Contents/MacOS/" | ||
| cp "target/$out/buzz-gpui" "$app/Contents/MacOS/" | ||
| if [ "${BUZZ_GPUI_VOLTAGE:-0}" = 1 ]; then | ||
| cp target/release/buzz-backend-relay "$app/Contents/MacOS/" | ||
| cp "target/$out/buzz-backend-relay" "$app/Contents/MacOS/" | ||
| fi | ||
|
|
||
| iconset="$work/buzz.iconset" | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Web query:
GitHub Actions macOS 14 runner image retirement date actions/runner-images deprecationResult:
Script executed:
Repository: voltagecloud/buzz
Length of output: 3814
Replace the retired
macos-14runner label.GitHub retired the
macos-14label on November 2, 2026. Jobs that request it cannot start. Both matrix entries use this label, so both macOS build jobs are affected. Any job that depends on this matrix can be blocked as a result.Use
macos-15for both entries. The repository already uses this label involtage-buzz-gpui.yml.Suggested fix
Apply this change to both matrix entries, at lines 131 and 135: