From 00cd10f7109cdc069e776ea658e03edc3ca4d7d5 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 26 Nov 2025 11:20:43 -0500 Subject: [PATCH 1/7] 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/7] 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" ]' From 4030b16ed33bc52809daf7056edbbb88d793be54 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Mon, 15 Dec 2025 23:26:43 -0500 Subject: [PATCH 3/7] Update .github/workflows/storage.yml --- .github/workflows/storage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index 522e8d166aa..d605e04c8d6 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -108,7 +108,7 @@ jobs: with: python-version: '3.11' - name: Setup quickstart - run: QUICKSTART_BRANCH=nc/strg-tests scripts/setup_quickstart_spm.sh storage + run: QUICKSTART_BRANCH=main 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" From 75e3f0f7ada1765a4a9803a592f97ff3d17425c4 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Tue, 16 Dec 2025 12:37:02 -0500 Subject: [PATCH 4/7] Update .github/workflows/storage.yml --- .github/workflows/storage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index d605e04c8d6..f4fccbb4bdd 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -108,7 +108,7 @@ jobs: with: python-version: '3.11' - name: Setup quickstart - run: QUICKSTART_BRANCH=main scripts/setup_quickstart_spm.sh storage + run: QUICKSTART_BRANCH=nc/bft-fix 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" From a4d444870734162ee891a97002f9653dec237b80 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Tue, 16 Dec 2025 13:01:43 -0500 Subject: [PATCH 5/7] Update performance.yml --- .github/workflows/performance.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index d9cbeccce40..4a29e0afd05 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -106,7 +106,7 @@ jobs: - name: Install xcpretty run: gem install xcpretty - name: Setup quickstart - run: scripts/setup_quickstart_spm.sh performance + run: QUICKSTART_BRANCH=nc/bft-fix scripts/setup_quickstart_spm.sh performance - name: Install Secret GoogleService-Info.plist run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \ quickstart-ios/performance/GoogleService-Info.plist "$plist_secret" From 148c1c64437cc973ca20365221850b51a9c8846e Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Tue, 16 Dec 2025 13:19:35 -0500 Subject: [PATCH 6/7] Update performance.yml --- .github/workflows/performance.yml | 108 +++++++++++++++--------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 4a29e0afd05..95e946b108c 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -33,57 +33,57 @@ 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: 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: 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' @@ -119,10 +119,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" ]' From 7f097af9c33b8e55d1d82f5ca462b23d55f84fe4 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Tue, 16 Dec 2025 13:21:21 -0500 Subject: [PATCH 7/7] fixes --- .github/workflows/performance.yml | 5 +- .github/workflows/storage.yml | 156 ++++++++++++++---------------- 2 files changed, 76 insertions(+), 85 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 95e946b108c..651afeba7d8 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -86,8 +86,7 @@ jobs: 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' + if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} runs-on: macos-15 @@ -106,7 +105,7 @@ jobs: - name: Install xcpretty run: gem install xcpretty - name: Setup quickstart - run: QUICKSTART_BRANCH=nc/bft-fix scripts/setup_quickstart_spm.sh performance + run: scripts/setup_quickstart_spm.sh performance - name: Install Secret GoogleService-Info.plist run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \ quickstart-ios/performance/GoogleService-Info.plist "$plist_secret" diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index f4fccbb4bdd..ba71a3c1082 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -25,78 +25,30 @@ 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 -# -# 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 }} - jobs: - quickstart-ftl-cron-only: - # Don't run on private repo. - if: github.repository == 'Firebase/firebase-ios-sdk' + 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: macos-15 + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 @@ -104,11 +56,51 @@ jobs: 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: QUICKSTART_BRANCH=nc/bft-fix scripts/setup_quickstart_spm.sh storage + run: scripts/setup_quickstart.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" @@ -123,16 +115,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" ]'