ci: switch our jobs to mac arm64 (#3426)
The arm64 macs have been in the wild for a while and it makes more sense
to test against that platform instead of the Intel macs that very few
people in our user-base are using.
At the same time clarify the supported platforms.
---------
Co-authored-by: Richard Levasseur <rlevasseur@google.com>
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index 548d1e9..e6ee335 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -159,7 +159,7 @@
<<: *reusable_config
<<: *common_workspace_flags
name: "Default: Mac, workspace"
- platform: macos
+ platform: macos_arm64
windows_workspace:
<<: *reusable_config
<<: *common_workspace_flags
@@ -190,10 +190,10 @@
<<: *reusable_config
name: "Default: Debian"
platform: debian11
- macos:
+ macos_arm64:
<<: *reusable_config
name: "Default: MacOS"
- platform: macos
+ platform: macos_arm64
windows:
<<: *reusable_config
name: "Default: Windows"
@@ -254,7 +254,7 @@
<<: *common_workspace_flags
name: "examples/build_file_generation: macOS, workspace"
working_directory: examples/build_file_generation
- platform: macos
+ platform: macos_arm64
integration_test_build_file_generation_windows_workspace:
<<: *reusable_build_test_all
<<: *common_workspace_flags
@@ -305,14 +305,14 @@
<<: *coverage_targets_example_bzlmod
name: "examples/bzlmod: macOS"
working_directory: examples/bzlmod
- platform: macos
+ platform: macos_arm64
bazel: 7.x
integration_test_bzlmod_macos_upcoming:
<<: *reusable_build_test_all
<<: *coverage_targets_example_bzlmod
name: "examples/bzlmod: macOS, upcoming Bazel"
working_directory: examples/bzlmod
- platform: macos
+ platform: macos_arm64
bazel: last_rc
integration_test_bzlmod_windows:
<<: *reusable_build_test_all
@@ -362,7 +362,7 @@
<<: *coverage_targets_example_bzlmod_build_file_generation
name: "gazelle/examples/bzlmod_build_file_generation: MacOS"
working_directory: gazelle/examples/bzlmod_build_file_generation
- platform: macos
+ platform: macos_arm64
integration_test_bzlmod_build_file_generation_windows:
<<: *reusable_build_test_all
# coverage is not supported on Windows
@@ -390,7 +390,7 @@
<<: *coverage_targets_example_multi_python
name: "examples/multi_python_versions: MacOS, workspace"
working_directory: examples/multi_python_versions
- platform: macos
+ platform: macos_arm64
integration_test_multi_python_versions_windows_workspace:
<<: *reusable_build_test_all
<<: *common_workspace_flags
@@ -427,7 +427,7 @@
<<: *reusable_build_test_all
name: "examples/pip_parse: MacOS"
working_directory: examples/pip_parse
- platform: macos
+ platform: macos_arm64
integration_test_pip_parse_windows:
<<: *reusable_build_test_all
name: "examples/pip_parse: Windows"
@@ -458,7 +458,7 @@
<<: *common_workspace_flags
name: "examples/pip_parse_vendored: MacOS"
working_directory: examples/pip_parse_vendored
- platform: macos
+ platform: macos_arm64
# We don't run pip_parse_vendored under Windows as the file checked in is
# generated from a repository rule containing OS-specific rendered paths.
@@ -481,7 +481,7 @@
<<: *common_workspace_flags
name: "examples/py_proto_library: MacOS, workspace"
working_directory: examples/py_proto_library
- platform: macos
+ platform: macos_arm64
integration_test_py_proto_library_windows_workspace:
<<: *reusable_build_test_all
<<: *common_workspace_flags
@@ -506,7 +506,7 @@
<<: *common_workspace_flags
name: "examples/pip_repository_annotations: macOS, workspace"
working_directory: examples/pip_repository_annotations
- platform: macos
+ platform: macos_arm64
integration_test_pip_repository_annotations_windows_workspace:
<<: *reusable_build_test_all
<<: *common_workspace_flags
@@ -528,7 +528,7 @@
integration_test_bazelinbazel_macos:
<<: *common_bazelinbazel_config
name: "tests/integration bazel-in-bazel: macOS (subset)"
- platform: macos
+ platform: macos_arm64
build_targets: ["//tests/integration:local_toolchains_test_bazel_self"]
test_targets: ["//tests/integration:local_toolchains_test_bazel_self"]
# The bazelinbazel tests were disabled on Windows to save CI jobs slots, and
@@ -581,7 +581,7 @@
<<: *reusable_build_test_all
name: "compile_pip_requirements: MacOS"
working_directory: tests/integration/compile_pip_requirements
- platform: macos
+ platform: macos_arm64
shell_commands:
# Make a change to the locked requirements and then assert that //:requirements.update does the
# right thing.
@@ -614,7 +614,6 @@
- "bazel run //:os_specific_requirements.update"
- "git diff --exit-code"
-
integration_compile_pip_requirements_test_from_external_repo_ubuntu_min_workspace:
<<: *minimum_supported_version
<<: *common_workspace_flags_min_bazel
@@ -650,7 +649,7 @@
integration_compile_pip_requirements_test_from_external_repo_macos:
name: "compile_pip_requirements_test_from_external_repo: macOS"
working_directory: tests/integration/compile_pip_requirements_test_from_external_repo
- platform: macos
+ platform: macos_arm64
shell_commands:
# Assert that @compile_pip_requirements//:requirements_test does the right thing.
- "bazel test @compile_pip_requirements//..."
diff --git a/docs/support.md b/docs/support.md
index 8728540..08147f2 100644
--- a/docs/support.md
+++ b/docs/support.md
@@ -61,8 +61,9 @@
In order to better describe different support levels, the following acts as a rough
guideline for different platform tiers:
-* Tier 0 - The platforms that our CI runs on: `linux_x86_64`, `osx_x86_64`, `RBE linux_x86_64`.
-* Tier 1 - The platforms that are similar enough to what the CI runs on: `linux_aarch64`, `osx_arm64`.
+* Tier 0 - The platforms that our CI runs on: `linux_x86_64`, `osx_arm64`, `RBE linux_x86_64`.
+* Tier 1 - The platforms that are similar enough to what the CI runs on: `linux_aarch64`,
+ `osx_x86_64`.
What is more, `windows_x86_64` is in this list, as we run tests in CI, but
developing for Windows is more challenging, and features may come later to
this platform.
diff --git a/tests/integration/local_toolchains/MODULE.bazel b/tests/integration/local_toolchains/MODULE.bazel
index 6c821c5..c818942 100644
--- a/tests/integration/local_toolchains/MODULE.bazel
+++ b/tests/integration/local_toolchains/MODULE.bazel
@@ -41,12 +41,12 @@
name = "pbs_runtime",
sha256 = {
"linux": "0a01bad99fd4a165a11335c29eb43015dfdb8bd5ba8e305538ebb54f3bf3146d",
- "mac os x": "4fb42ffc8aad2a42ca7646715b8926bc6b2e0d31f13d2fec25943dc236a6fd60",
+ "mac os x": "7f5ec658219bdb1d1142c6abab89680322166c78350a017fb0af3c869dceee41",
"windows": "005cb2abf4cfa4aaa48fb10ce4e33fe4335ea4d1f55202dbe4e20c852e45e0f9",
},
urls = {
"linux": "https://github.com/astral-sh/python-build-standalone/releases/download/20250918/cpython-3.13.7+20250918-x86_64-unknown-linux-gnu-install_only.tar.gz",
- "mac os x": "https://github.com/astral-sh/python-build-standalone/releases/download/20250918/cpython-3.13.7+20250918-x86_64-apple-darwin-install_only.tar.gz",
+ "mac os x": "https://github.com/astral-sh/python-build-standalone/releases/download/20250918/cpython-3.13.7+20250918-aarch64-apple-darwin-install_only.tar.gz",
"windows server 2022": "https://github.com/astral-sh/python-build-standalone/releases/download/20250918/cpython-3.13.7+20250918-x86_64-pc-windows-msvc-install_only.tar.gz",
},
)