From 00cd10f7109cdc069e776ea658e03edc3ca4d7d5 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 26 Nov 2025 11:20:43 -0500 Subject: [PATCH 1/2] fix: crashlytics, performance, and storage cron jobs --- .github/workflows/crashlytics.yml | 77 ++++++++------- .github/workflows/performance.yml | 122 ++++++++++++----------- .github/workflows/storage.yml | 159 +++++++++++++++--------------- 3 files changed, 186 insertions(+), 172 deletions(-) diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index 8e074482d08..165376fbfbe 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -25,37 +25,38 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true -jobs: - spm: - uses: ./.github/workflows/common.yml - with: - target: FirebaseCrashlyticsUnit - - catalyst: - uses: ./.github/workflows/common_catalyst.yml - with: - product: FirebaseCrashlytics - target: FirebaseCrashlytics-Unit-unit - - pod_lib_lint: - uses: ./.github/workflows/common_cocoapods.yml - with: - product: FirebaseCrashlytics - buildonly_platforms: tvOS, macOS, watchOS - - quickstart: - uses: ./.github/workflows/common_quickstart.yml - with: - product: Crashlytics - setup_command: scripts/setup_quickstart_spm.sh crashlytics - plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg - plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist - secrets: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} +#jobs: +# spm: +# uses: ./.github/workflows/common.yml +# with: +# target: FirebaseCrashlyticsUnit +# +# catalyst: +# uses: ./.github/workflows/common_catalyst.yml +# with: +# product: FirebaseCrashlytics +# target: FirebaseCrashlytics-Unit-unit +# +# pod_lib_lint: +# uses: ./.github/workflows/common_cocoapods.yml +# with: +# product: FirebaseCrashlytics +# buildonly_platforms: tvOS, macOS, watchOS +# +# quickstart: +# uses: ./.github/workflows/common_quickstart.yml +# with: +# product: Crashlytics +# setup_command: scripts/setup_quickstart_spm.sh crashlytics +# plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg +# plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist +# secrets: +# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} +jobs: quickstart-ftl-cron-only: # Don't run on private repo. - if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' + if: github.repository == 'Firebase/firebase-ios-sdk' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} @@ -63,13 +64,17 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install xcpretty + run: gem install xcpretty - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart - run: scripts/setup_quickstart.sh crashlytics + run: QUICKSTART_BRANCH=nc/strg-tests scripts/setup_quickstart_spm.sh crashlytics - name: Install Secret GoogleService-Info.plist run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \ quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret" @@ -83,10 +88,10 @@ jobs: testapp_dir: quickstart-ios/build-for-testing test_type: "xctest" - crashlytics-cron-only: - needs: pod_lib_lint - uses: ./.github/workflows/common_cocoapods_cron.yml - with: - product: FirebaseCrashlytics - platforms: '[ "ios", "tvos", "macos", "watchos --skip-tests" ]' - flags: '[ "--use-static-frameworks", "--use-modular-headers --skip-tests" ]' + # crashlytics-cron-only: + # needs: pod_lib_lint + # uses: ./.github/workflows/common_cocoapods_cron.yml + # with: + # product: FirebaseCrashlytics + # platforms: '[ "ios", "tvos", "macos", "watchos --skip-tests" ]' + # flags: '[ "--use-static-frameworks", "--use-modular-headers --skip-tests" ]' diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index ac91a71c1b3..197793f2e4d 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -33,70 +33,74 @@ concurrency: cancel-in-progress: true jobs: - spm: - uses: ./.github/workflows/common.yml - with: - target: PerformanceUnit - platforms: iOS, tvOS + # spm: + # uses: ./.github/workflows/common.yml + # with: + # target: PerformanceUnit + # platforms: iOS, tvOS - catalyst: - uses: ./.github/workflows/common_catalyst.yml - with: - product: FirebasePerformance - target: - buildonly: true + # catalyst: + # uses: ./.github/workflows/common_catalyst.yml + # with: + # product: FirebasePerformance + # target: + # buildonly: true - # Build and run the unit tests for Firebase performance SDK. - performance: - # 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' - runs-on: macos-15 - strategy: - matrix: - target: [iOS, tvOS] - test: [unit, proddev] - steps: - - uses: actions/checkout@v4 - - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - with: - cache_key: ${{ matrix.target }}${{ matrix.test }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - name: Setup Bundler - run: scripts/setup_bundler.sh - - name: Install xcpretty - run: gem install xcpretty - - name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10 - run: scripts/third_party/travis/retry.sh scripts/build.sh Performance ${{ matrix.target }} ${{ matrix.test }} + # # Build and run the unit tests for Firebase performance SDK. + # performance: + # # 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' + # runs-on: macos-15 + # strategy: + # matrix: + # target: [iOS, tvOS] + # test: [unit, proddev] + # steps: + # - uses: actions/checkout@v4 + # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + # with: + # cache_key: ${{ matrix.target }}${{ matrix.test }} + # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - name: Xcode + # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + # - name: Setup Bundler + # run: scripts/setup_bundler.sh + # - name: Install xcpretty + # run: gem install xcpretty + # - name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10 + # run: scripts/third_party/travis/retry.sh scripts/build.sh Performance ${{ matrix.target }} ${{ matrix.test }} - pod_lib_lint: - uses: ./.github/workflows/common_cocoapods.yml - with: - product: FirebasePerformance - platforms: iOS, tvOS - #TODO: tests are not supported with Xcode 15 because the test spec depends on the iOS 8 GDCWebServer - buildonly_platforms: iOS, tvOS + # pod_lib_lint: + # uses: ./.github/workflows/common_cocoapods.yml + # with: + # product: FirebasePerformance + # platforms: iOS, tvOS + # #TODO: tests are not supported with Xcode 15 because the test spec depends on the iOS 8 GDCWebServer + # buildonly_platforms: iOS, tvOS - quickstart: - uses: ./.github/workflows/common_quickstart.yml - with: - product: Performance - setup_command: scripts/setup_quickstart_spm.sh performance - plist_src_path: scripts/gha-encrypted/qs-performance.plist.gpg - plist_dst_path: quickstart-ios/performance/GoogleService-Info.plist - secrets: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # quickstart: + # uses: ./.github/workflows/common_quickstart.yml + # with: + # product: Performance + # setup_command: scripts/setup_quickstart_spm.sh performance + # plist_src_path: scripts/gha-encrypted/qs-performance.plist.gpg + # plist_dst_path: quickstart-ios/performance/GoogleService-Info.plist + # secrets: + # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart-ftl-cron-only: - if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' - + # if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' + if: github.repository == 'Firebase/firebase-ios-sdk' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} runs-on: macos-15 steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install xcpretty + run: gem install xcpretty - uses: actions/setup-python@v5 with: python-version: '3.11' @@ -118,10 +122,10 @@ jobs: testapp_dir: quickstart-ios/build-for-testing test_type: "xctest" - performance-cron-only: - needs: pod_lib_lint - uses: ./.github/workflows/common_cocoapods_cron.yml - with: - product: FirebasePerformance - platforms: '[ "ios", "tvos" ]' - flags: '[ "--skip-tests --use-static-frameworks" ]' + # performance-cron-only: + # needs: pod_lib_lint + # uses: ./.github/workflows/common_cocoapods_cron.yml + # with: + # product: FirebasePerformance + # platforms: '[ "ios", "tvos" ]' + # flags: '[ "--skip-tests --use-static-frameworks" ]' diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index 9aae03de131..522e8d166aa 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -25,85 +25,90 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true -jobs: - spm: - uses: ./.github/workflows/common.yml - with: - target: FirebaseStorageUnit - - catalyst: - uses: ./.github/workflows/common_catalyst.yml - with: - product: FirebaseStorage - target: FirebaseStorage-Unit-unit +#jobs: +# spm: +# uses: ./.github/workflows/common.yml +# with: +# target: FirebaseStorageUnit +# +# catalyst: +# uses: ./.github/workflows/common_catalyst.yml +# with: +# product: FirebaseStorage +# target: FirebaseStorage-Unit-unit +# +# storage-integration-tests: +# # 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: +# matrix: +# language: [Swift, ObjC] +# include: +# - os: macos-15 +# xcode: Xcode_16.4 +# env: +# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} +# runs-on: ${{ matrix.os }} +# steps: +# - uses: actions/checkout@v4 +# - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 +# with: +# cache_key: integration${{ matrix.os }} +# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - name: Setup Bundler + # run: scripts/setup_bundler.sh + # - name: Install xcpretty + # run: gem install xcpretty +# - name: Install Secret GoogleService-Info.plist +# run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/storage-db-plist.gpg \ +# FirebaseStorage/Tests/Integration/Resources/GoogleService-Info.plist "$plist_secret" +# - name: Install Credentials.h +# run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/Storage/Credentials.h.gpg \ +# FirebaseStorage/Tests/ObjCIntegration/Credentials.h "$plist_secret" +# - name: Install Credentials.swift +# run: | +# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/Storage/Credentials.swift.gpg \ +# FirebaseStorage/Tests/Integration/Credentials.swift "$plist_secret" +# - name: Xcode +# run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer +# - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 +# with: +# timeout_minutes: 15 +# max_attempts: 3 +# retry_wait_seconds: 120 +# command: ([ -z $plist_secret ] || scripts/build.sh Storage${{ matrix.language }} all) +# +# quickstart: +# # TODO: See #12399 and restore Objective-C testing for Xcode 15 if GHA is fixed. +# uses: ./.github/workflows/common_quickstart.yml +# with: +# product: Storage +# setup_command: scripts/setup_quickstart_spm.sh storage +# plist_src_path: scripts/gha-encrypted/qs-storage.plist.gpg +# plist_dst_path: quickstart-ios/storage/GoogleService-Info.plist +# run_tests: false +# secrets: +# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - storage-integration-tests: - # 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: - matrix: - language: [Swift, ObjC] - include: - - os: macos-15 - xcode: Xcode_16.4 +jobs: + quickstart-ftl-cron-only: + # Don't run on private repo. + if: github.repository == 'Firebase/firebase-ios-sdk' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - runs-on: ${{ matrix.os }} + runs-on: macos-15 steps: - uses: actions/checkout@v4 - - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - with: - cache_key: integration${{ matrix.os }} - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Setup Bundler run: scripts/setup_bundler.sh - name: Install xcpretty run: gem install xcpretty - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/storage-db-plist.gpg \ - FirebaseStorage/Tests/Integration/Resources/GoogleService-Info.plist "$plist_secret" - - name: Install Credentials.h - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/Storage/Credentials.h.gpg \ - FirebaseStorage/Tests/ObjCIntegration/Credentials.h "$plist_secret" - - name: Install Credentials.swift - run: | - scripts/decrypt_gha_secret.sh scripts/gha-encrypted/Storage/Credentials.swift.gpg \ - FirebaseStorage/Tests/Integration/Credentials.swift "$plist_secret" - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 - with: - timeout_minutes: 15 - max_attempts: 3 - retry_wait_seconds: 120 - command: ([ -z $plist_secret ] || scripts/build.sh Storage${{ matrix.language }} all) - - quickstart: - # TODO: See #12399 and restore Objective-C testing for Xcode 15 if GHA is fixed. - uses: ./.github/workflows/common_quickstart.yml - with: - product: Storage - setup_command: scripts/setup_quickstart_spm.sh storage - plist_src_path: scripts/gha-encrypted/qs-storage.plist.gpg - plist_dst_path: quickstart-ios/storage/GoogleService-Info.plist - run_tests: false - secrets: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - - quickstart-ftl-cron-only: - # Don't run on private repo. - if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - runs-on: macos-15 - steps: - - uses: actions/checkout@v4 - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Setup quickstart - run: scripts/setup_quickstart.sh storage + run: QUICKSTART_BRANCH=nc/strg-tests scripts/setup_quickstart_spm.sh storage - name: Install Secret GoogleService-Info.plist run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \ quickstart-ios/storage/GoogleService-Info.plist "$plist_secret" @@ -118,16 +123,16 @@ jobs: testapp_dir: quickstart-ios/build-for-testing test_type: "xctest" - pod_lib_lint: - uses: ./.github/workflows/common_cocoapods.yml - with: - product: FirebaseStorage - test_specs: unit + # pod_lib_lint: + # uses: ./.github/workflows/common_cocoapods.yml + # with: + # product: FirebaseStorage + # test_specs: unit - storage-cron-only: - needs: pod_lib_lint - uses: ./.github/workflows/common_cocoapods_cron.yml - with: - product: FirebaseStorage - platforms: '[ "ios", "tvos", "macos", "watchos" ]' - flags: '[ "--use-static-frameworks --skip-tests" ]' + # storage-cron-only: + # needs: pod_lib_lint + # uses: ./.github/workflows/common_cocoapods_cron.yml + # with: + # product: FirebaseStorage + # platforms: '[ "ios", "tvos", "macos", "watchos" ]' + # flags: '[ "--use-static-frameworks --skip-tests" ]' From 5b2832807f6ff9b5c7757f0cc138e739c652b9ba Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 26 Nov 2025 12:43:25 -0500 Subject: [PATCH 2/2] checkout main --- .github/workflows/crashlytics.yml | 71 +++++++++++++++---------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index b6190f8ea8b..3969c1eb223 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -25,38 +25,37 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true -#jobs: -# spm: -# uses: ./.github/workflows/common.yml -# with: -# target: FirebaseCrashlyticsUnit -# -# catalyst: -# uses: ./.github/workflows/common_catalyst.yml -# with: -# product: FirebaseCrashlytics -# target: FirebaseCrashlytics-Unit-unit -# -# pod_lib_lint: -# uses: ./.github/workflows/common_cocoapods.yml -# with: -# product: FirebaseCrashlytics -# buildonly_platforms: tvOS, macOS, watchOS -# -# quickstart: -# uses: ./.github/workflows/common_quickstart.yml -# with: -# product: Crashlytics -# setup_command: scripts/setup_quickstart_spm.sh crashlytics -# plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg -# plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist -# secrets: -# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - jobs: + spm: + uses: ./.github/workflows/common.yml + with: + target: FirebaseCrashlyticsUnit + + catalyst: + uses: ./.github/workflows/common_catalyst.yml + with: + product: FirebaseCrashlytics + target: FirebaseCrashlytics-Unit-unit + + pod_lib_lint: + uses: ./.github/workflows/common_cocoapods.yml + with: + product: FirebaseCrashlytics + buildonly_platforms: tvOS, macOS, watchOS + + quickstart: + uses: ./.github/workflows/common_quickstart.yml + with: + product: Crashlytics + setup_command: scripts/setup_quickstart_spm.sh crashlytics + plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg + plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + quickstart-ftl-cron-only: # Don't run on private repo. - if: github.repository == 'Firebase/firebase-ios-sdk' + if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} @@ -88,10 +87,10 @@ jobs: testapp_dir: quickstart-ios/build-for-testing test_type: "xctest" - # crashlytics-cron-only: - # needs: pod_lib_lint - # uses: ./.github/workflows/common_cocoapods_cron.yml - # with: - # product: FirebaseCrashlytics - # platforms: '[ "ios", "tvos", "macos", "watchos --skip-tests" ]' - # flags: '[ "--use-static-frameworks", "--use-modular-headers --skip-tests" ]' + crashlytics-cron-only: + needs: pod_lib_lint + uses: ./.github/workflows/common_cocoapods_cron.yml + with: + product: FirebaseCrashlytics + platforms: '[ "ios", "tvos", "macos", "watchos --skip-tests" ]' + flags: '[ "--use-static-frameworks", "--use-modular-headers --skip-tests" ]'