Scope Xcode Bazel env to Apple tools (#7068)

This commit is contained in:
2026-06-11 07:26:38 -07:00
committed by GitHub
parent 55691a0515
commit 2c5512cd4a
2 changed files with 14 additions and 14 deletions
+9 -9
View File
@@ -6,9 +6,9 @@
# Xcode version. If Xcode is upgraded in place, the DEVELOPER_DIR path stays the
# same, so Bazel can otherwise keep using stale Xcode metadata.
#
# 1. Writes .bazelrc.xcode with macOS-scoped flags:
# - action_env for remote cache key invalidation
# - DEVELOPER_DIR pointing to the active Xcode
# 1. Writes .bazelrc.xcode with mactools-scoped flags:
# - action_env for Apple build remote cache key invalidation
# - DEVELOPER_DIR pointing to the active Xcode for Apple builds
#
# 2. Runs `bazel clean --expunge` when the version actually changes, because
# local_config_apple_cc (a cached repository rule) bakes in the old version
@@ -35,7 +35,7 @@ if [ -z "$XCODE_BUILD_VERSION" ]; then
fi
BAZELRC_XCODE=".bazelrc.xcode"
EXPECTED_LINE="common:macos --action_env=XCODE_BUILD_VERSION=${XCODE_BUILD_VERSION}"
EXPECTED_LINE="common:mactools --action_env=XCODE_BUILD_VERSION=${XCODE_BUILD_VERSION}"
# Check if the file already has the right version (first line is the version marker)
if [ -f "$BAZELRC_XCODE" ]; then
@@ -45,19 +45,19 @@ if [ -f "$BAZELRC_XCODE" ]; then
fi
fi
# Xcode version changed (or first run) — expunge local cache to clear
# Xcode Bazel config changed (or first run) — expunge local cache to clear
# stale local_config_apple_cc, then write the new config
OLD_VERSION="unknown"
OLD_CONFIG="missing"
if [ -f "$BAZELRC_XCODE" ]; then
OLD_VERSION=$(sed -n 's/.*XCODE_BUILD_VERSION=//p' "$BAZELRC_XCODE" | head -1)
OLD_CONFIG=$(head -1 "$BAZELRC_XCODE")
fi
echo "Xcode build version changed: ${OLD_VERSION} -> ${XCODE_BUILD_VERSION}"
echo "Xcode Bazel config changed: ${OLD_CONFIG} -> ${EXPECTED_LINE}"
echo "Running bazel clean --expunge to clear stale toolchain config..."
bazel clean --expunge 2>/dev/null || true
cat > "$BAZELRC_XCODE" << EOF
${EXPECTED_LINE}
common:macos --repo_env=DEVELOPER_DIR=${DEVELOPER_DIR}
common:mactools --repo_env=DEVELOPER_DIR=${DEVELOPER_DIR}
EOF
if [ -n "${GITHUB_ENV:-}" ]; then