Skip to content
89 changes: 63 additions & 26 deletions src/ci/github-actions/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@ runners:
<<: *base-job

- &job-macos
os: macos-14
os: macos-15
<<: *base-job

- &job-macos-x86_64
os: macos-15-intel
<<: *base-job

- &job-windows
Expand Down Expand Up @@ -90,6 +94,22 @@ envs:
pr:
PR_CI_JOB: 1

env-macos-xcode: &env-macos-xcode
SELECT_XCODE: /Applications/Xcode_26.app
USE_XCODE_CLANG: 1

# Ensure that host tooling is tested on our minimum supported macOS
# version.
env-macos-x86_64-target: &env-macos-x86_64-target
MACOSX_DEPLOYMENT_TARGET: 10.12
MACOSX_STD_DEPLOYMENT_TARGET: 10.12

# Aarch64 tooling only needs to support macOS 11.0 as this is the
# first OS version to support the hardware.
env-macos-aarch64-target: &env-macos-aarch64-target
MACOSX_DEPLOYMENT_TARGET: 11.0
MACOSX_STD_DEPLOYMENT_TARGET: 11.0

jobs:
dist-x86_64-linux: &job-dist-x86_64-linux
name: dist-x86_64-linux
Expand Down Expand Up @@ -427,26 +447,45 @@ auto:
--set rust.jemalloc
--set rust.lto=thin
--set rust.codegen-units=1
# Ensure that host tooling is built to support our minimum support macOS version.
MACOSX_DEPLOYMENT_TARGET: 10.12
MACOSX_STD_DEPLOYMENT_TARGET: 10.12
SELECT_XCODE: /Applications/Xcode_15.4.app
USE_XCODE_CLANG: 1
<<: [*env-macos-x86_64-target, *env-macos-xcode]
DIST_REQUIRE_ALL_TOOLS: 1
CODEGEN_BACKENDS: llvm,cranelift
<<: *job-macos

- name: x86_64-apple
env:
SCRIPT: >-
./x.py test
--stage 2
--host=x86_64-apple-darwin
--target=x86_64-apple-darwin
--set llvm.download-ci-llvm=false
&&
./x.py test
--stage 2
--host=x86_64-apple-darwin
--target=x86_64-apple-darwin
src/tools/cargo
RUST_CONFIGURE_ARGS: >-
--enable-profiler
--enable-sanitizers
--set rust.jemalloc
# The x86_64 macOS builders are relatively slow, so we disable
# extra assertions/checks to get back a bit of speed.
NO_LLVM_ASSERTIONS: 1
NO_DEBUG_ASSERTIONS: 1
NO_OVERFLOW_CHECKS: 1
<<: [*env-macos-x86_64-target, *env-macos-xcode]
<<: *job-macos-x86_64

- name: dist-apple-various
env:
SCRIPT: ./x.py dist bootstrap --include-default-paths --host='' --target=aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim,aarch64-apple-ios-macabi,x86_64-apple-ios-macabi
# Mac Catalyst cannot currently compile the sanitizer:
# https://github.com/rust-lang/rust/issues/129069
RUST_CONFIGURE_ARGS: --enable-sanitizers --enable-profiler --set rust.jemalloc --set target.aarch64-apple-ios-macabi.sanitizers=false --set target.x86_64-apple-ios-macabi.sanitizers=false
# Ensure that host tooling is built to support our minimum support macOS version.
# FIXME(madsmtm): This might be redundant, as we're not building host tooling here (?)
MACOSX_DEPLOYMENT_TARGET: 10.12
MACOSX_STD_DEPLOYMENT_TARGET: 10.12
SELECT_XCODE: /Applications/Xcode_15.2.app
# FIXME(madsmtm): Setting the target might be redundant, as we're not building host tooling here (?)
<<: [*env-macos-x86_64-target, *env-macos-xcode]
<<: *job-macos

- name: dist-aarch64-apple
Expand All @@ -463,31 +502,29 @@ auto:
--set rust.jemalloc
--set rust.lto=thin
--set rust.codegen-units=1
# Aarch64 tooling only needs to support macOS 11.0 and up as nothing else
# supports the hardware.
MACOSX_DEPLOYMENT_TARGET: 11.0
MACOSX_STD_DEPLOYMENT_TARGET: 11.0
SELECT_XCODE: /Applications/Xcode_15.4.app
USE_XCODE_CLANG: 1
<<: [*env-macos-aarch64-target, *env-macos-xcode]
DIST_REQUIRE_ALL_TOOLS: 1
CODEGEN_BACKENDS: llvm,cranelift
<<: *job-macos

- name: aarch64-apple
env:
SCRIPT: >
./x.py --stage 2 test --host=aarch64-apple-darwin --target=aarch64-apple-darwin &&
./x.py --stage 2 test --host=aarch64-apple-darwin --target=aarch64-apple-darwin src/tools/cargo
SCRIPT: >-
./x.py test
--stage 2
--host=aarch64-apple-darwin
--target=aarch64-apple-darwin
&&
./x.py test
--stage 2
--host=aarch64-apple-darwin
--target=aarch64-apple-darwin
src/tools/cargo
RUST_CONFIGURE_ARGS: >-
--enable-sanitizers
--enable-profiler
--set rust.jemalloc
SELECT_XCODE: /Applications/Xcode_15.4.app
USE_XCODE_CLANG: 1
# Aarch64 tooling only needs to support macOS 11.0 and up as nothing else
# supports the hardware, so only need to test it there.
MACOSX_DEPLOYMENT_TARGET: 11.0
MACOSX_STD_DEPLOYMENT_TARGET: 11.0
<<: [*env-macos-aarch64-target, *env-macos-xcode]
<<: *job-macos

######################
Expand Down
Loading