diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e940a2d3..d96b5f19 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -39,7 +39,6 @@ jobs: - docker - genrules - go - - ios - java - kotlin - perl @@ -51,6 +50,28 @@ jobs: - arch: arm64 - os: macos + # ios is tested against each installed Xcode version. + - test_package: ios + execution_type: remote + xcode_version: "26.5" + arch: arm64 + os: macos + - test_package: ios + execution_type: remote + xcode_version: "27.2" + arch: arm64 + os: macos + - test_package: ios + execution_type: local + xcode_version: "26.5" + arch: arm64 + os: macos + - test_package: ios + execution_type: local + xcode_version: "27.2" + arch: arm64 + os: macos + steps: - uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" @@ -67,7 +88,9 @@ jobs: ARCH: ${{ matrix.arch }} OS: ${{ matrix.os }} EXECUTION_TYPE: ${{ matrix.execution_type }} + # TODO: This should probably follow matrix.xcode_version for the ios tests. APPLE_SDK_VERSION_OVERRIDE: 26.5 + XCODE_VERSION: ${{ matrix.xcode_version }} run: python3 infra/test-all.py --package=${{ matrix.test_package }} linux-test-matrix: @@ -92,7 +115,6 @@ jobs: - docker - genrules - go - - ios - java - kotlin - perl @@ -104,15 +126,19 @@ jobs: - arch: x64 - os: linux - # Override remote ios tests to use macos/arm64 in the remote executor. + # Remote ios tests use macos/arm64 in the remote executor, and are + # tested against each installed Xcode version. Local ios tests are + # not supported on linux. - test_package: ios execution_type: remote + xcode_version: "26.5" arch: arm64 os: macos - exclude: - # Local ios tests are not supported on linux - test_package: ios - execution_type: local + execution_type: remote + xcode_version: "27.2" + arch: arm64 + os: macos steps: - uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" @@ -130,6 +156,7 @@ jobs: ARCH: ${{ matrix.arch }} OS: ${{ matrix.os }} EXECUTION_TYPE: ${{ matrix.execution_type }} + XCODE_VERSION: ${{ matrix.xcode_version }} run: python3 infra/test-all.py --package=${{ matrix.test_package }} bento-snapshot: diff --git a/MODULE.bazel b/MODULE.bazel index c2e3ffd7..c7d80bb5 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -49,9 +49,9 @@ bazel_dep(name = "bazel_skylib", version = "1.9.0") bazel_dep(name = "engflowapis-java", version = "2025.03.14-12.58.52") bazel_dep(name = "platforms", version = "1.1.0") bazel_dep(name = "protobuf", version = "35.0") -bazel_dep(name = "apple_support", version = "2.8.4") +bazel_dep(name = "apple_support", version = "2.9.1") bazel_dep(name = "rules_cc", version = "0.2.22") -bazel_dep(name = "rules_apple", version = "5.1.0") +bazel_dep(name = "rules_apple", version = "5.4.0") bazel_dep( name = "googleapis", version = "0.0.0-20260525-ef19b7b7", diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index eacbf056..cf0fe4fc 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -34,10 +34,10 @@ "https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4", "https://bcr.bazel.build/modules/apple_support/2.3.0/MODULE.bazel": "d48f824ae8eeea5f837eb3038cef3615075d996d3e82eb9187192c2820605a81", "https://bcr.bazel.build/modules/apple_support/2.5.2/MODULE.bazel": "bb1b7081e390a8d3885f642cb0073dfcf8e7a36525e079fa8f5835af7079c0fe", - "https://bcr.bazel.build/modules/apple_support/2.5.4/MODULE.bazel": "964e9268b37edb64e9a0fa525e5b5e535ba56bf63cadc68375f92e69fcb734f6", "https://bcr.bazel.build/modules/apple_support/2.8.0/MODULE.bazel": "c45f5176057092afba0be6c48a9ea02101666802f8be536947e099e94757f8ed", "https://bcr.bazel.build/modules/apple_support/2.8.4/MODULE.bazel": "83ae0682db2a4ea86d20416a9b3bdba7f6c2a81e136b4d210e5986e30436585e", - "https://bcr.bazel.build/modules/apple_support/2.8.4/source.json": "1c9c86472ed56669622b46e2ddfeb36f58e1234cea73d52740f09de58e93ec6e", + "https://bcr.bazel.build/modules/apple_support/2.9.1/MODULE.bazel": "fb209b83ed172af587419acb3340389cfe3260669e5f1c05e1ac3974aca614e0", + "https://bcr.bazel.build/modules/apple_support/2.9.1/source.json": "247d9f86d94c546533fb01e6e18b018486f9a6dff5faccae8838ef12e659b2a7", "https://bcr.bazel.build/modules/aspect_bazel_lib/1.31.2/MODULE.bazel": "7bee702b4862612f29333590f4b658a5832d433d6f8e4395f090e8f4e85d442f", "https://bcr.bazel.build/modules/aspect_bazel_lib/1.38.0/MODULE.bazel": "6307fec451ba9962c1c969eb516ebfe1e46528f7fa92e1c9ac8646bef4cdaa3f", "https://bcr.bazel.build/modules/aspect_bazel_lib/1.40.3/MODULE.bazel": "668e6bcb4d957fc0e284316dba546b705c8d43c857f87119619ee83c4555b859", @@ -332,8 +332,8 @@ "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", "https://bcr.bazel.build/modules/rules_apple/3.5.1/MODULE.bazel": "3d1bbf65ad3692003d36d8a29eff54d4e5c1c5f4bfb60f79e28646a924d9101c", "https://bcr.bazel.build/modules/rules_apple/4.1.0/MODULE.bazel": "76e10fd4a48038d3fc7c5dc6e63b7063bbf5304a2e3bd42edda6ec660eebea68", - "https://bcr.bazel.build/modules/rules_apple/5.1.0/MODULE.bazel": "57a85577faf7de9f98ecd4d84c3cd9e85f701d8881206ff6f4f31751c8fe4ded", - "https://bcr.bazel.build/modules/rules_apple/5.1.0/source.json": "33eea0f632b6175f9433bdecb36794ab8c831d15cd3bc54e57743b22b3e220c0", + "https://bcr.bazel.build/modules/rules_apple/5.4.0/MODULE.bazel": "35332c590fdb8e03f208e200b6077856b2504ef8fd52aebca729d1a4e2ced010", + "https://bcr.bazel.build/modules/rules_apple/5.4.0/source.json": "7dd022593cf2800dc16c7e581a0fc45743f0e6c7ea52bbf125bc42f0295657ba", "https://bcr.bazel.build/modules/rules_buf/0.1.1/MODULE.bazel": "6189aec18a4f7caff599ad41b851ab7645d4f1e114aa6431acf9b0666eb92162", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", @@ -358,7 +358,8 @@ "https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84", "https://bcr.bazel.build/modules/rules_cc/0.2.20/MODULE.bazel": "f5c07bce5ddcb99be21a0812ff5aadb439e688b7449c6542152363b2fd859c1a", "https://bcr.bazel.build/modules/rules_cc/0.2.22/MODULE.bazel": "94df4328edef9e44d38de5e73b037cd348e75e7ae55f4e21bf07878c41a31ebb", - "https://bcr.bazel.build/modules/rules_cc/0.2.22/source.json": "b2d6d6f9c332ce269ad75b89c6f3168d809a66173c9040210fb9bcc733ab42fa", + "https://bcr.bazel.build/modules/rules_cc/0.2.25/MODULE.bazel": "4a3d4f3606d3b3190be495dbc497acca552807d1d5540661ef0d1658472882e3", + "https://bcr.bazel.build/modules/rules_cc/0.2.25/source.json": "8df28a9a97b878fe45f0a4f4adf019869dda51a60ee2f6e15a0c79656a25058d", "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", "https://bcr.bazel.build/modules/rules_cc/0.2.9/MODULE.bazel": "34263f1dca62ea664265438cef714d7db124c03e1ed55ebb4f1dc860164308d1", @@ -505,7 +506,6 @@ "https://bcr.bazel.build/modules/rules_swift/2.4.0/MODULE.bazel": "1639617eb1ede28d774d967a738b4a68b0accb40650beadb57c21846beab5efd", "https://bcr.bazel.build/modules/rules_swift/2.5.0/MODULE.bazel": "6d2fec72be0ad2e1fc2eab536cf9d3fb149037c6d2aa678078f3512c06a819e1", "https://bcr.bazel.build/modules/rules_swift/3.1.2/MODULE.bazel": "72c8f5cf9d26427cee6c76c8e3853eb46ce6b0412a081b2b6db6e8ad56267400", - "https://bcr.bazel.build/modules/rules_swift/4.0.1/MODULE.bazel": "24ad295128e648c117a9defc50a994e9fc4790b6e9a6dab64ba3988146eb4736", "https://bcr.bazel.build/modules/rules_swift/4.1.1/MODULE.bazel": "74bc181e75147cadab7c5040ef59813168f50cf68f48b1c669cb928de4dc4148", "https://bcr.bazel.build/modules/rules_swift/4.1.1/source.json": "41230391449a30ff80956b7ce559ea61c37531cda87ca3aeb2003e1fb0adcaa6", "https://bcr.bazel.build/modules/stardoc/0.5.0/MODULE.bazel": "f9f1f46ba8d9c3362648eea571c6f9100680efc44913618811b58cc9c02cd678", diff --git a/infra/test-all.py b/infra/test-all.py index a3e50d78..81d23af4 100755 --- a/infra/test-all.py +++ b/infra/test-all.py @@ -66,6 +66,10 @@ def run_tests(package): if package in EXTRA_FLAGS: flags += EXTRA_FLAGS[package] + xcode_version = os.getenv("XCODE_VERSION") + if xcode_version: + flags.append("--xcode_version=" + xcode_version) + print(f"---------------\nTesting {package}...") sys.stdout.flush() diff --git a/platform/macos_arm64/BUILD b/platform/macos_arm64/BUILD index 30b624f7..fc1ad88b 100644 --- a/platform/macos_arm64/BUILD +++ b/platform/macos_arm64/BUILD @@ -35,11 +35,29 @@ xcode_version( version = "26.5.0.17F42", ) +xcode_version( + name = "version27_2_0_27B52", + aliases = [ + "27.2.0", + "27.2.0.27B52", + "27B52", + "27.2", + "27", + ], + default_ios_sdk_version = "27.2", + default_macos_sdk_version = "27.2", + default_tvos_sdk_version = "27.2", + default_visionos_sdk_version = "27.2", + default_watchos_sdk_version = "27.2", + version = "27.2.0.27B52", +) + xcode_config( name = "installed_xcodes", default = ":version26_5_0_17F42", versions = [ ":version26_5_0_17F42", + ":version27_2_0_27B52", ], ) @@ -48,5 +66,6 @@ available_xcodes( default = ":version26_5_0_17F42", versions = [ ":version26_5_0_17F42", + ":version27_2_0_27B52", ], )