From ab17231d23606325563ae972b43ded3550476372 Mon Sep 17 00:00:00 2001 From: Andrew Heard Date: Thu, 14 Aug 2025 16:38:33 -0400 Subject: [PATCH 01/11] [CI] Run all `macos-15` jobs with Xcode 16.4 --- .github/workflows/abtesting.yml | 6 ++-- .github/workflows/client_app.yml | 28 ++++++++++++----- .github/workflows/common.yml | 6 ++-- .github/workflows/common_catalyst.yml | 2 +- .github/workflows/core_extension.yml | 2 +- .github/workflows/core_internal.yml | 2 +- .github/workflows/crashlytics.yml | 6 ++-- .github/workflows/database.yml | 4 +-- .github/workflows/firebase_app_check.yml | 4 +-- .github/workflows/firebasepod.yml | 2 +- .github/workflows/firestore.yml | 2 +- .github/workflows/inappmessaging.yml | 6 ++-- .github/workflows/installations.yml | 6 ++-- .github/workflows/messaging.yml | 12 ++++---- .github/workflows/mlmodeldownloader.yml | 4 +-- .github/workflows/performance.yml | 8 ++--- .github/workflows/prerelease.yml | 2 +- .github/workflows/release.yml | 2 +- .../workflows/sessions-integration-tests.yml | 2 +- .github/workflows/spm.yml | 4 +-- .github/workflows/storage.yml | 4 +-- .github/workflows/zip.yml | 30 +++++-------------- 22 files changed, 71 insertions(+), 73 deletions(-) diff --git a/.github/workflows/abtesting.yml b/.github/workflows/abtesting.yml index a8701041b72..a52070bdf10 100644 --- a/.github/workflows/abtesting.yml +++ b/.github/workflows/abtesting.yml @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart env: LEGACY: true @@ -86,7 +86,7 @@ jobs: run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \ quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret" - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Build swift quickstart env: LEGACY: true @@ -116,7 +116,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: PodLibLint ABTesting Cron run: | scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb \ diff --git a/.github/workflows/client_app.yml b/.github/workflows/client_app.yml index 150d879edca..8c4f72c4c27 100644 --- a/.github/workflows/client_app.yml +++ b/.github/workflows/client_app.yml @@ -27,12 +27,16 @@ jobs: client-app-spm: if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' strategy: - # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners. matrix: #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst platform: [iOS] scheme: [ClientApp] os: [macos-14, macos-15] + include: + - os: macos-14 + xcode: Xcode_16.2 + - os: macos-15 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -40,8 +44,8 @@ jobs: with: cache_key: ${{ matrix.os }} - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer - - name: Build Client App –– ${{ matrix.platform }} + run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer + - name: Build Client App - ${{ matrix.platform }} run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ matrix.scheme }} ${{ matrix.platform }} xcodebuild client-app-spm-source-firestore: @@ -50,12 +54,16 @@ jobs: FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1 FIREBASE_SOURCE_FIRESTORE: 1 strategy: - # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners. matrix: #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst platform: [iOS] scheme: [ClientApp] os: [macos-14, macos-15] + include: + - os: macos-14 + xcode: Xcode_16.2 + - os: macos-15 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -63,18 +71,22 @@ jobs: with: cache_key: ${{ matrix.os }} - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer - - name: Build Client App –– ${{ matrix.platform }} + run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer + - name: Build Client App - ${{ matrix.platform }} run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ matrix.scheme }} ${{ matrix.platform }} xcodebuild client-app-cocoapods: # Don't run on private repo unless it is a PR. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' strategy: - # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners. matrix: scheme: [ClientApp-CocoaPods] os: [macos-14, macos-15] + include: + - os: macos-14 + xcode: Xcode_16.2 + - os: macos-15 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -85,7 +97,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - name: Prereqs run: scripts/install_prereqs.sh ClientApp iOS xcodebuild - name: Build diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 1a82d76b36f..1810aeeeaff 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -67,7 +67,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Generate Swift Package.resolved id: swift_package_resolve run: swift package resolve @@ -106,8 +106,8 @@ jobs: run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - name: Install visionOS, if needed. if: matrix.platform == 'visionOS' - run: ls $(xcode-select -p)/Platforms/XROS.platform || \ - { xcodebuild -downloadPlatform visionOS } + run: + xcodebuild -downloadPlatform visionOS - name: Run setup command, if needed. if: inputs.setup_command != '' run: ${{ inputs.setup_command }} diff --git a/.github/workflows/common_catalyst.yml b/.github/workflows/common_catalyst.yml index 6948e4e3197..da3911b064c 100644 --- a/.github/workflows/common_catalyst.yml +++ b/.github/workflows/common_catalyst.yml @@ -38,7 +38,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: timeout_minutes: 120 diff --git a/.github/workflows/core_extension.yml b/.github/workflows/core_extension.yml index 15b86f38538..cc9d602f15d 100644 --- a/.github/workflows/core_extension.yml +++ b/.github/workflows/core_extension.yml @@ -39,7 +39,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint CoreInternal Cron diff --git a/.github/workflows/core_internal.yml b/.github/workflows/core_internal.yml index d1b8dd6cf73..db3d565f69f 100644 --- a/.github/workflows/core_internal.yml +++ b/.github/workflows/core_internal.yml @@ -54,7 +54,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint CoreInternal Cron diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index a32d474a61b..0f5f2cb5643 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -53,7 +53,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh crashlytics env: @@ -86,7 +86,7 @@ jobs: with: python-version: '3.11' - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh crashlytics env: @@ -130,7 +130,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: timeout_minutes: 120 diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index 928c3bf28ad..24998fa0deb 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -84,7 +84,7 @@ jobs: run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \ quickstart-ios/database/GoogleService-Info.plist "$plist_secret" - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Test objc quickstart run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false) - name: Test swift quickstart @@ -106,7 +106,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint database Cron diff --git a/.github/workflows/firebase_app_check.yml b/.github/workflows/firebase_app_check.yml index ff30db15a66..cd9f8eac577 100644 --- a/.github/workflows/firebase_app_check.yml +++ b/.github/workflows/firebase_app_check.yml @@ -58,7 +58,7 @@ jobs: with: cache_key: ${{ matrix.diagnostics }} - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Initialize xcodebuild run: scripts/setup_spm_tests.sh - name: iOS Unit Tests @@ -84,7 +84,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint FirebaseAppCheck Cron diff --git a/.github/workflows/firebasepod.yml b/.github/workflows/firebasepod.yml index 8f7fd3af5ef..f1e228b7f24 100644 --- a/.github/workflows/firebasepod.yml +++ b/.github/workflows/firebasepod.yml @@ -34,7 +34,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Prereqs run: scripts/install_prereqs.sh FirebasePod iOS - name: Build diff --git a/.github/workflows/firestore.yml b/.github/workflows/firestore.yml index 3e927287a2e..164e5ef3c69 100644 --- a/.github/workflows/firestore.yml +++ b/.github/workflows/firestore.yml @@ -578,7 +578,7 @@ jobs: with: cache_key: ${{ matrix.target }} - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Initialize xcodebuild run: scripts/setup_spm_tests.sh - name: Build Test - Binary diff --git a/.github/workflows/inappmessaging.yml b/.github/workflows/inappmessaging.yml index 6650fbb8fc9..feb26e72c65 100644 --- a/.github/workflows/inappmessaging.yml +++ b/.github/workflows/inappmessaging.yml @@ -46,7 +46,7 @@ jobs: # TODO(#8682): Reenable iPad after fixing Xcode 13 test failures. # platform: [iOS, iPad] platform: [iOS] - xcode: [Xcode_16.2] + xcode: [Xcode_16.4] steps: - uses: actions/checkout@v4 - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 @@ -78,7 +78,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint InAppMessaging Cron @@ -98,7 +98,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh inappmessaging - name: install secret googleservice-info.plist diff --git a/.github/workflows/installations.yml b/.github/workflows/installations.yml index cf4f6795b18..2b149918f0a 100644 --- a/.github/workflows/installations.yml +++ b/.github/workflows/installations.yml @@ -56,7 +56,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh installations - name: Copy mock plist @@ -78,7 +78,7 @@ jobs: with: python-version: '3.11' - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh installations - name: Copy mock plist @@ -112,7 +112,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: Configure test keychain diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 838ce5fe4d9..db9d8f8ccac 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -89,7 +89,7 @@ jobs: matrix: include: - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -122,7 +122,7 @@ jobs: with: python-version: '3.11' - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh messaging - name: Install Secret GoogleService-Info.plist @@ -150,7 +150,7 @@ jobs: os: [macos-14, macos-15] include: - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 tests: --test-specs=unit - os: macos-14 xcode: Xcode_16.2 @@ -187,7 +187,7 @@ jobs: - name: Prereqs run: scripts/install_prereqs.sh MessagingSample iOS - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Build run: ([ -z $plist_secret ] || scripts/build.sh MessagingSample iOS) @@ -212,7 +212,7 @@ jobs: - name: Prereqs run: scripts/install_prereqs.sh SwiftUISample iOS - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Build run: ([ -z $plist_secret ] || scripts/build.sh SwiftUISample iOS) @@ -237,7 +237,7 @@ jobs: - name: Prereqs run: scripts/install_prereqs.sh MessagingSampleStandaloneWatchApp watchOS - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Build run: ([ -z $plist_secret ] || scripts/build.sh MessagingSampleStandaloneWatchApp watchOS) diff --git a/.github/workflows/mlmodeldownloader.yml b/.github/workflows/mlmodeldownloader.yml index 3eddabeadec..931c8edda79 100644 --- a/.github/workflows/mlmodeldownloader.yml +++ b/.github/workflows/mlmodeldownloader.yml @@ -57,7 +57,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: Configure test keychain @@ -83,7 +83,7 @@ jobs: cache_key: build-test${{ matrix.os }} - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: Install GoogleService-Info.plist diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index b1073dfd11f..61c08473772 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -60,7 +60,7 @@ jobs: cache_key: ${{ matrix.target }}${{ matrix.test }} - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: Install xcpretty @@ -87,7 +87,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh performance - name: Install Secret GoogleService-Info.plist @@ -113,7 +113,7 @@ jobs: with: python-version: '3.11' - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh performance - name: Install Secret GoogleService-Info.plist @@ -145,7 +145,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint Performance Cron diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 2cb87713f68..6bdc3749b3f 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -242,7 +242,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup testing repo and quickstart run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication prerelease_testing - name: Install Secret GoogleService-Info.plist diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de6631fc6b4..531cc021b2c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -188,7 +188,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup testing repo and quickstart run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing - name: Install Secret GoogleService-Info.plist diff --git a/.github/workflows/sessions-integration-tests.yml b/.github/workflows/sessions-integration-tests.yml index 4d11e4dc065..ccc8d9f15fd 100644 --- a/.github/workflows/sessions-integration-tests.yml +++ b/.github/workflows/sessions-integration-tests.yml @@ -31,7 +31,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 with: cache_key: sessions-integration-tests diff --git a/.github/workflows/spm.yml b/.github/workflows/spm.yml index 5b807927410..a1227e2ef1c 100644 --- a/.github/workflows/spm.yml +++ b/.github/workflows/spm.yml @@ -98,7 +98,7 @@ jobs: - os: macos-14 xcode: Xcode_16.2 - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -127,7 +127,7 @@ jobs: target: [tvOS, macOS, catalyst] include: - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 - os: macos-14 xcode: Xcode_16.2 runs-on: ${{ matrix.os }} diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index 036037b5ca7..740b15c7766 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -88,7 +88,7 @@ jobs: # xcode: Xcode_14.2 # TODO: the legacy ObjC quickstart doesn't build with Xcode 15. - swift: swift os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} @@ -153,7 +153,7 @@ jobs: - os: macos-14 xcode: Xcode_16.2 - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} needs: pod_lib_lint steps: diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index 9879e942885..59f16c7038c 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -114,9 +114,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -176,7 +174,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] include: - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -226,9 +224,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -277,9 +273,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -403,9 +397,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -487,9 +479,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -542,9 +532,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -597,9 +585,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 From aec4256b1d76d0675247e9ba356c8ba1ebc2074c Mon Sep 17 00:00:00 2001 From: Andrew Heard Date: Fri, 15 Aug 2025 11:13:10 -0400 Subject: [PATCH 02/11] Add `OS:2.5` to visionOS destination specifier --- scripts/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build.sh b/scripts/build.sh index 30b84004c3b..bef2e2fef63 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -188,7 +188,7 @@ tvos_flags=( ) visionos_flags=( -sdk 'xrsimulator' - -destination 'platform=visionOS Simulator,name=Apple Vision Pro' + -destination 'platform=visionOS Simulator,OS:2.5,name=Apple Vision Pro' ) catalyst_flags=( ARCHS=x86_64 VALID_ARCHS=x86_64 SUPPORTS_MACCATALYST=YES -sdk macosx From 596046922f2bfaf4d43b15718e79665af920688f Mon Sep 17 00:00:00 2001 From: Andrew Heard Date: Fri, 15 Aug 2025 11:26:58 -0400 Subject: [PATCH 03/11] Fix destination specifier Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com> --- scripts/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build.sh b/scripts/build.sh index bef2e2fef63..664149478fd 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -188,7 +188,7 @@ tvos_flags=( ) visionos_flags=( -sdk 'xrsimulator' - -destination 'platform=visionOS Simulator,OS:2.5,name=Apple Vision Pro' + -destination 'platform=visionOS Simulator,OS=2.5,name=Apple Vision Pro' ) catalyst_flags=( ARCHS=x86_64 VALID_ARCHS=x86_64 SUPPORTS_MACCATALYST=YES -sdk macosx From d893dbd14f877c53bc99bc9f460216c49faf1554 Mon Sep 17 00:00:00 2001 From: Andrew Heard Date: Fri, 15 Aug 2025 11:45:36 -0400 Subject: [PATCH 04/11] Add comment about `OS=2.5` --- scripts/build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/build.sh b/scripts/build.sh index 664149478fd..15bcc002ecb 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -187,6 +187,9 @@ tvos_flags=( -destination 'platform=tvOS Simulator,name=Apple TV' ) visionos_flags=( + # As of Aug 15, 2025, the default OS "latest" was failing as it matched both + # the visionOS 26 beta and visionOS 2.5 (from Xcode 16.4) simulators; + # explicitly specifying OS=2.5 in destination as a workaround. -sdk 'xrsimulator' -destination 'platform=visionOS Simulator,OS=2.5,name=Apple Vision Pro' ) From e854f0330cbc45126e0c05f9e3e52ad4e571515e Mon Sep 17 00:00:00 2001 From: Andrew Heard Date: Fri, 15 Aug 2025 11:46:27 -0400 Subject: [PATCH 05/11] Remove "Install visionOS" step --- .github/workflows/common.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 1810aeeeaff..b79680f09b4 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -104,10 +104,6 @@ jobs: key: ${{needs.spm-package-resolved.outputs.cache_key}} - name: Xcode run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - - name: Install visionOS, if needed. - if: matrix.platform == 'visionOS' - run: - xcodebuild -downloadPlatform visionOS - name: Run setup command, if needed. if: inputs.setup_command != '' run: ${{ inputs.setup_command }} From 919296cf178769941caf7ce93f8cb1fdc17b8e75 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Fri, 15 Aug 2025 17:27:13 -0400 Subject: [PATCH 06/11] [Infra] Remove 18.3.1 sim workaround (#15206) --- scripts/build.sh | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 15bcc002ecb..d669ac02b03 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -492,12 +492,11 @@ case "$product-$platform-$method" in ../../../FirebaseRemoteConfig/Tests/Swift/AccessToken.json # Integration tests are only run on iOS to minimize flake failures. - # TODO(ncooke3): Remove -sdk and -destination flags and replace with "${xcb_flags[@]}" RunXcodebuild \ -workspace 'gen/FirebaseRemoteConfig/FirebaseRemoteConfig.xcworkspace' \ -scheme "FirebaseRemoteConfig-Unit-swift-api-tests" \ - -sdk 'iphonesimulator' \ - -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.3.1' \ + "${ios_flags[@]}" \ + "${xcb_flags[@]}" \ build \ test ;; @@ -575,12 +574,10 @@ case "$product-$platform-$method" in if check_secrets; then # Integration tests are only run on iOS to minimize flake failures. - # TODO(ncooke3): Add back "${ios_flags[@]}". See #14657. RunXcodebuild \ -workspace 'gen/FirebaseStorage/FirebaseStorage.xcworkspace' \ -scheme "FirebaseStorage-Unit-integration" \ - -sdk 'iphonesimulator' \ - -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.3.1' \ + "${ios_flags[@]}" \ "${xcb_flags[@]}" \ test fi @@ -596,12 +593,10 @@ case "$product-$platform-$method" in if check_secrets; then # Integration tests are only run on iOS to minimize flake failures. - # TODO(ncooke3): Add back "${ios_flags[@]}". See #14657. RunXcodebuild \ -workspace 'gen/FirebaseStorage/FirebaseStorage.xcworkspace' \ -scheme "FirebaseStorage-Unit-ObjCIntegration" \ - -sdk 'iphonesimulator' \ - -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.3.1' \ + "${ios_flags[@]}" \ "${xcb_flags[@]}" \ test fi @@ -620,8 +615,8 @@ case "$product-$platform-$method" in RunXcodebuild \ -workspace 'gen/FirebaseCombineSwift/FirebaseCombineSwift.xcworkspace' \ -scheme "FirebaseCombineSwift-Unit-integration" \ - -sdk 'iphonesimulator' \ - -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.3.1' \ + "${ios_flags[@]}" \ + "${xcb_flags[@]}" \ test fi ;; From 444a3887bf8ca8b3a8c59deff0915e4f54fe6049 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Sun, 17 Aug 2025 11:23:51 -0400 Subject: [PATCH 07/11] Upload build logs for failing QS script --- .github/workflows/zip.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index 59f16c7038c..42a216c1567 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -419,6 +419,12 @@ jobs: "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \ "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* + - name: Upload build logs on failure + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: build_logs_firestore_${{ matrix.artifact }}_${{ matrix.build-env.os }} + path: sdk_zip/build_logs/ - name: Xcode run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - name: Install Secret GoogleService-Info.plist From 3d2c63db94a5932cf85396ad988d225a94090093 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Sun, 17 Aug 2025 11:43:41 -0400 Subject: [PATCH 08/11] fix(firestore): Attempt to fix CI by explicitly selecting Xcode 16.4 The Firestore CI has been failing with an error that suggests Xcode is confused about which iPhone 16 simulator to use. This commit attempts to resolve the issue by explicitly selecting Xcode 16.4 before the build step. It's not guaranteed that this will solve the problem, but it's a likely candidate for the root cause. --- .github/workflows/firestore.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/firestore.yml b/.github/workflows/firestore.yml index 164e5ef3c69..d3f61e67b4a 100644 --- a/.github/workflows/firestore.yml +++ b/.github/workflows/firestore.yml @@ -375,6 +375,9 @@ jobs: - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - name: Setup build run: scripts/install_prereqs.sh Firestore ${{ matrix.target }} xcodebuild From 07a8afc5e9a369613c5a820d5c4282cbf65511b1 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Sun, 17 Aug 2025 11:58:47 -0400 Subject: [PATCH 09/11] Fix(ci): Upload xcodebuild logs on failure for better debugging The xcbeautify tool, while useful for cleaning up xcodebuild output, can truncate long or multi-line error messages. This is particularly problematic for configuration errors that occur early in the build process, making it difficult to diagnose the root cause from the GitHub Actions logs alone. This change adds a step to the xcodebuild job in the Firestore workflow to upload the raw xcodebuild-*.log file as a build artifact whenever a failure occurs. This ensures that the full, untruncated log is always available for download and inspection, facilitating more effective debugging. --- .github/workflows/firestore.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/firestore.yml b/.github/workflows/firestore.yml index d3f61e67b4a..9adc90503dc 100644 --- a/.github/workflows/firestore.yml +++ b/.github/workflows/firestore.yml @@ -386,6 +386,13 @@ jobs: export EXPERIMENTAL_MODE=true scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ matrix.target }} xcodebuild + - name: Upload xcodebuild logs + if: failure() + uses: actions/upload-artifact@v4 + with: + name: xcodebuild-logs-${{ matrix.target }} + path: xcodebuild-*.log + pod_lib_lint: needs: check strategy: From c414cc39b26bfe787cdec26e4ac2f7cdb41672a8 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Sun, 17 Aug 2025 12:43:02 -0400 Subject: [PATCH 10/11] Revert "Fix(ci): Upload xcodebuild logs on failure for better debugging" This reverts commit 07a8afc5e9a369613c5a820d5c4282cbf65511b1. --- .github/workflows/firestore.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/firestore.yml b/.github/workflows/firestore.yml index 9adc90503dc..d3f61e67b4a 100644 --- a/.github/workflows/firestore.yml +++ b/.github/workflows/firestore.yml @@ -386,13 +386,6 @@ jobs: export EXPERIMENTAL_MODE=true scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ matrix.target }} xcodebuild - - name: Upload xcodebuild logs - if: failure() - uses: actions/upload-artifact@v4 - with: - name: xcodebuild-logs-${{ matrix.target }} - path: xcodebuild-*.log - pod_lib_lint: needs: check strategy: From 4b7e1509550a83277b54053e888267f0d2fa598e Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Sun, 17 Aug 2025 12:46:40 -0400 Subject: [PATCH 11/11] Update scripts/build.sh --- scripts/build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/build.sh b/scripts/build.sh index d669ac02b03..2be500a8bbc 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -495,7 +495,6 @@ case "$product-$platform-$method" in RunXcodebuild \ -workspace 'gen/FirebaseRemoteConfig/FirebaseRemoteConfig.xcworkspace' \ -scheme "FirebaseRemoteConfig-Unit-swift-api-tests" \ - "${ios_flags[@]}" \ "${xcb_flags[@]}" \ build \ test