Switch macOS builds to Tahoe (Beta 7 currently) (#8328)
This switches our macOS builds to build on Tahoe, rather than on Sequoia. The primary motivation is to get builds out using a new Xcode version (our builds at the time of writing this are _still produced_ with beta 1! ONE!). Every subsequent beta has had bugs that have prevented us from upgrading, amusingly enough. But the later betas _also_ have a bunch of fixes I want to get in. I hope this one works... The reason we have to use Tahoe instead of Sequoia is because on Sequoia, builds in CI _crash xcodebuild_. This is definitely an Apple bug but I can't reproduce it locally to create a bug report, so I'm not sure what to do.pull/8329/head
commit
e3e69269e5
|
|
@ -47,7 +47,7 @@ jobs:
|
||||||
sentry-cli dif upload --project ghostty --wait dsym.zip
|
sentry-cli dif upload --project ghostty --wait dsym.zip
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
|
|
@ -57,9 +57,9 @@ jobs:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
# Install Nix and use that to run our tests so our environment matches exactly.
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
determinate: true
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||||
with:
|
with:
|
||||||
name: ghostty
|
name: ghostty
|
||||||
|
|
@ -95,6 +95,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
cd macos
|
cd macos
|
||||||
sudo xcode-select -s /Applications/Xcode_26.0.app
|
sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||||
|
xcodebuild -version
|
||||||
xcodebuild -target Ghostty -configuration Release
|
xcodebuild -target Ghostty -configuration Release
|
||||||
|
|
||||||
# We inject the "build number" as simply the number of commits since HEAD.
|
# We inject the "build number" as simply the number of commits since HEAD.
|
||||||
|
|
@ -201,7 +202,7 @@ jobs:
|
||||||
destination-dir: ./
|
destination-dir: ./
|
||||||
|
|
||||||
build-macos-debug:
|
build-macos-debug:
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
|
|
@ -211,9 +212,9 @@ jobs:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
# Install Nix and use that to run our tests so our environment matches exactly.
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
determinate: true
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||||
with:
|
with:
|
||||||
name: ghostty
|
name: ghostty
|
||||||
|
|
@ -249,6 +250,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
cd macos
|
cd macos
|
||||||
sudo xcode-select -s /Applications/Xcode_26.0.app
|
sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||||
|
xcodebuild -version
|
||||||
xcodebuild -target Ghostty -configuration Release
|
xcodebuild -target Ghostty -configuration Release
|
||||||
|
|
||||||
# We inject the "build number" as simply the number of commits since HEAD.
|
# We inject the "build number" as simply the number of commits since HEAD.
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ jobs:
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
needs: [setup]
|
needs: [setup]
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
env:
|
env:
|
||||||
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
|
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
|
||||||
|
|
@ -130,9 +130,9 @@ jobs:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
determinate: true
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||||
with:
|
with:
|
||||||
name: ghostty
|
name: ghostty
|
||||||
|
|
@ -141,6 +141,9 @@ jobs:
|
||||||
- name: XCode Select
|
- name: XCode Select
|
||||||
run: sudo xcode-select -s /Applications/Xcode_16.4.app
|
run: sudo xcode-select -s /Applications/Xcode_16.4.app
|
||||||
|
|
||||||
|
- name: Xcode Version
|
||||||
|
run: xcodebuild -version
|
||||||
|
|
||||||
- name: Setup Sparkle
|
- name: Setup Sparkle
|
||||||
env:
|
env:
|
||||||
SPARKLE_VERSION: 2.6.4
|
SPARKLE_VERSION: 2.6.4
|
||||||
|
|
@ -291,7 +294,7 @@ jobs:
|
||||||
|
|
||||||
appcast:
|
appcast:
|
||||||
needs: [setup, build-macos]
|
needs: [setup, build-macos]
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
env:
|
env:
|
||||||
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
|
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
|
||||||
GHOSTTY_BUILD: ${{ needs.setup.outputs.build }}
|
GHOSTTY_BUILD: ${{ needs.setup.outputs.build }}
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ jobs:
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
|
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
|
|
@ -163,10 +163,10 @@ jobs:
|
||||||
# Important so that build number generation works
|
# Important so that build number generation works
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
# TODO(tahoe): https://github.com/NixOS/nix/issues/13342
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
determinate: true
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||||
with:
|
with:
|
||||||
name: ghostty
|
name: ghostty
|
||||||
|
|
@ -374,7 +374,7 @@ jobs:
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
|
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
|
|
@ -383,10 +383,10 @@ jobs:
|
||||||
# Important so that build number generation works
|
# Important so that build number generation works
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
# TODO(tahoe): https://github.com/NixOS/nix/issues/13342
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
determinate: true
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||||
with:
|
with:
|
||||||
name: ghostty
|
name: ghostty
|
||||||
|
|
@ -554,7 +554,7 @@ jobs:
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
|
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
|
|
@ -563,10 +563,10 @@ jobs:
|
||||||
# Important so that build number generation works
|
# Important so that build number generation works
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
# TODO(tahoe): https://github.com/NixOS/nix/issues/13342
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
determinate: true
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||||
with:
|
with:
|
||||||
name: ghostty
|
name: ghostty
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ jobs:
|
||||||
- build-nix
|
- build-nix
|
||||||
- build-snap
|
- build-snap
|
||||||
- build-macos
|
- build-macos
|
||||||
- build-macos-tahoe
|
|
||||||
- build-macos-matrix
|
- build-macos-matrix
|
||||||
- build-windows
|
- build-windows
|
||||||
- flatpak-check-zig-cache
|
- flatpak-check-zig-cache
|
||||||
|
|
@ -273,16 +272,16 @@ jobs:
|
||||||
ghostty-source.tar.gz
|
ghostty-source.tar.gz
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
needs: test
|
needs: test
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
|
||||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
# TODO(tahoe): https://github.com/NixOS/nix/issues/13342
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
determinate: true
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||||
with:
|
with:
|
||||||
name: ghostty
|
name: ghostty
|
||||||
|
|
@ -315,7 +314,7 @@ jobs:
|
||||||
cd macos
|
cd macos
|
||||||
xcodebuild -target Ghostty-iOS "CODE_SIGNING_ALLOWED=NO"
|
xcodebuild -target Ghostty-iOS "CODE_SIGNING_ALLOWED=NO"
|
||||||
|
|
||||||
build-macos-tahoe:
|
build-macos-matrix:
|
||||||
runs-on: namespace-profile-ghostty-macos-tahoe
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
needs: test
|
needs: test
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -334,45 +333,8 @@ jobs:
|
||||||
- name: Xcode Select
|
- name: Xcode Select
|
||||||
run: sudo xcode-select -s /Applications/Xcode_26.0.app
|
run: sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||||
|
|
||||||
- name: get the Zig deps
|
- name: Xcode Version
|
||||||
id: deps
|
run: xcodebuild -version
|
||||||
run: nix build -L .#deps && echo "deps=$(readlink ./result)" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
# GhosttyKit is the framework that is built from Zig for our native
|
|
||||||
# Mac app to access.
|
|
||||||
- name: Build GhosttyKit
|
|
||||||
run: nix develop -c zig build --system ${{ steps.deps.outputs.deps }} -Demit-macos-app=false
|
|
||||||
|
|
||||||
# The native app is built with native Xcode tooling. This also does
|
|
||||||
# codesigning. IMPORTANT: this must NOT run in a Nix environment.
|
|
||||||
# Nix breaks xcodebuild so this has to be run outside.
|
|
||||||
- name: Build Ghostty.app
|
|
||||||
run: cd macos && xcodebuild -target Ghostty
|
|
||||||
|
|
||||||
# Build the iOS target without code signing just to verify it works.
|
|
||||||
- name: Build Ghostty iOS
|
|
||||||
run: |
|
|
||||||
cd macos
|
|
||||||
xcodebuild -target Ghostty-iOS "CODE_SIGNING_ALLOWED=NO"
|
|
||||||
|
|
||||||
build-macos-matrix:
|
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
|
||||||
needs: test
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
||||||
|
|
||||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
|
||||||
with:
|
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
|
||||||
with:
|
|
||||||
name: ghostty
|
|
||||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
|
||||||
|
|
||||||
- name: Xcode Select
|
|
||||||
run: sudo xcode-select -s /Applications/Xcode_26.0.app
|
|
||||||
|
|
||||||
- name: get the Zig deps
|
- name: get the Zig deps
|
||||||
id: deps
|
id: deps
|
||||||
|
|
@ -672,16 +634,16 @@ jobs:
|
||||||
nix develop -c zig build -Dsentry=${{ matrix.sentry }}
|
nix develop -c zig build -Dsentry=${{ matrix.sentry }}
|
||||||
|
|
||||||
test-macos:
|
test-macos:
|
||||||
runs-on: namespace-profile-ghostty-macos-sequoia
|
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||||
needs: test
|
needs: test
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
|
||||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
# TODO(tahoe): https://github.com/NixOS/nix/issues/13342
|
||||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
determinate: true
|
||||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||||
with:
|
with:
|
||||||
name: ghostty
|
name: ghostty
|
||||||
|
|
@ -690,6 +652,9 @@ jobs:
|
||||||
- name: Xcode Select
|
- name: Xcode Select
|
||||||
run: sudo xcode-select -s /Applications/Xcode_26.0.app
|
run: sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||||
|
|
||||||
|
- name: Xcode Version
|
||||||
|
run: xcodebuild -version
|
||||||
|
|
||||||
- name: get the Zig deps
|
- name: get the Zig deps
|
||||||
id: deps
|
id: deps
|
||||||
run: nix build -L .#deps && echo "deps=$(readlink ./result)" >> $GITHUB_OUTPUT
|
run: nix build -L .#deps && echo "deps=$(readlink ./result)" >> $GITHUB_OUTPUT
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue