From 37fed4ee0f16ed2e671260add51586fe9e20e8cd Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 10:59:15 -0400 Subject: [PATCH 01/41] refactor: Remove is_legacy QS testing flags --- .github/workflows/auth.yml | 1 - .github/workflows/common_quickstart.yml | 3 ++- .github/workflows/database.yml | 1 - .github/workflows/inappmessaging.yml | 1 - .github/workflows/installations.yml | 1 - .github/workflows/messaging.yml | 1 - .github/workflows/performance.yml | 1 - .github/workflows/remoteconfig.yml | 1 - 8 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/auth.yml b/.github/workflows/auth.yml index d7880557bf0..ba2ec520c31 100644 --- a/.github/workflows/auth.yml +++ b/.github/workflows/auth.yml @@ -97,7 +97,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Authentication - is_legacy: false setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh authentication plist_src_path: scripts/gha-encrypted/qs-authentication.plist.gpg plist_dst_path: quickstart-ios/authentication/GoogleService-Info.plist diff --git a/.github/workflows/common_quickstart.yml b/.github/workflows/common_quickstart.yml index 7f2942f6649..17a641b9d51 100644 --- a/.github/workflows/common_quickstart.yml +++ b/.github/workflows/common_quickstart.yml @@ -32,7 +32,8 @@ on: # Whether to test the legacy version of the quickstart. is_legacy: type: boolean - required: true + required: false + default: false # The path to the encrypted `GoogleService-Info.plist` file. plist_src_path: diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index 451b230d167..a0e350297f4 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -74,7 +74,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Database - is_legacy: false setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh database plist_src_path: scripts/gha-encrypted/qs-database.plist.gpg plist_dst_path: quickstart-ios/database/GoogleService-Info.plist diff --git a/.github/workflows/inappmessaging.yml b/.github/workflows/inappmessaging.yml index f0bbd9597d4..6279b58181d 100644 --- a/.github/workflows/inappmessaging.yml +++ b/.github/workflows/inappmessaging.yml @@ -76,7 +76,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: InAppMessaging - is_legacy: false setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh inappmessaging plist_src_path: scripts/gha-encrypted/qs-inappmessaging.plist.gpg plist_dst_path: quickstart-ios/inappmessaging/GoogleService-Info.plist diff --git a/.github/workflows/installations.yml b/.github/workflows/installations.yml index 4d407c9507c..ecb91b6be52 100644 --- a/.github/workflows/installations.yml +++ b/.github/workflows/installations.yml @@ -53,7 +53,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Installations - is_legacy: false setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh installations plist_src_path: scripts/gha-encrypted/Installations/GoogleService-Info.plist.gpg plist_dst_path: quickstart-ios/installations/GoogleService-Info.plist diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 6b9aa970cc4..44e4db9ed2d 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -85,7 +85,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Messaging - is_legacy: false setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh messaging plist_src_path: scripts/gha-encrypted/qs-messaging.plist.gpg plist_dst_path: quickstart-ios/messaging/GoogleService-Info.plist diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index e14a3c44235..d574412e9df 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -83,7 +83,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Performance - is_legacy: false setup_command: QUICKSTART_BRANCH=nc/quickstarts 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 diff --git a/.github/workflows/remoteconfig.yml b/.github/workflows/remoteconfig.yml index 5588a70ce5b..3043cbf7d49 100644 --- a/.github/workflows/remoteconfig.yml +++ b/.github/workflows/remoteconfig.yml @@ -94,7 +94,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Config - is_legacy: false setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh config plist_src_path: scripts/gha-encrypted/qs-config.plist.gpg plist_dst_path: quickstart-ios/config/GoogleService-Info.plist From d0f396ddbb7041e36829b9a0e5caada6bc5afa34 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 11:35:23 -0400 Subject: [PATCH 02/41] Update qs repo branch testing --- .github/workflows/abtesting.yml | 2 +- .github/workflows/auth.yml | 2 +- .github/workflows/common_quickstart.yml | 8 ++++++++ .github/workflows/database.yml | 2 +- .github/workflows/firestore.yml | 2 +- .github/workflows/inappmessaging.yml | 2 +- .github/workflows/installations.yml | 2 +- .github/workflows/messaging.yml | 2 +- .github/workflows/performance.yml | 2 +- .github/workflows/remoteconfig.yml | 2 +- .github/workflows/storage.yml | 2 +- 11 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/workflows/abtesting.yml b/.github/workflows/abtesting.yml index c2bd61dc3ea..065adf0b4e4 100644 --- a/.github/workflows/abtesting.yml +++ b/.github/workflows/abtesting.yml @@ -46,7 +46,7 @@ jobs: with: product: ABTesting is_legacy: true - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh abtesting + setup_command: scripts/setup_quickstart_spm.sh abtesting plist_src_path: scripts/gha-encrypted/qs-abtesting.plist.gpg plist_dst_path: quickstart-ios/abtesting/GoogleService-Info.plist secrets: diff --git a/.github/workflows/auth.yml b/.github/workflows/auth.yml index ba2ec520c31..700767b6ef2 100644 --- a/.github/workflows/auth.yml +++ b/.github/workflows/auth.yml @@ -97,7 +97,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Authentication - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh authentication + setup_command: scripts/setup_quickstart_spm.sh authentication plist_src_path: scripts/gha-encrypted/qs-authentication.plist.gpg plist_dst_path: quickstart-ios/authentication/GoogleService-Info.plist run_tests: false diff --git a/.github/workflows/common_quickstart.yml b/.github/workflows/common_quickstart.yml index 17a641b9d51..ba83333f187 100644 --- a/.github/workflows/common_quickstart.yml +++ b/.github/workflows/common_quickstart.yml @@ -29,6 +29,13 @@ on: type: string required: true + # The branch to checkout in the quickstart repo. + quickstart_branch: + type: string + required: false + # default: 'main' # TODO: Revert to main before merging. + default: 'nc/quickstarts' + # Whether to test the legacy version of the quickstart. is_legacy: type: boolean @@ -66,6 +73,7 @@ jobs: env: plist_secret: ${{ secrets.plist_secret }} LEGACY: ${{ inputs.is_legacy && true || '' }} + QUICKSTART_BRANCH: ${{ inputs.quickstart_branch }} runs-on: macos-15 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index a0e350297f4..e6db2321c99 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -74,7 +74,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Database - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh database + setup_command: scripts/setup_quickstart_spm.sh database plist_src_path: scripts/gha-encrypted/qs-database.plist.gpg plist_dst_path: quickstart-ios/database/GoogleService-Info.plist run_tests: false diff --git a/.github/workflows/firestore.yml b/.github/workflows/firestore.yml index 92d1a53c9dc..0a1e8b56b88 100644 --- a/.github/workflows/firestore.yml +++ b/.github/workflows/firestore.yml @@ -606,7 +606,7 @@ jobs: # with: # product: Firestore # is_legacy: true - # setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh firestore + # setup_command: scripts/setup_quickstart_spm.sh firestore # plist_src_path: scripts/gha-encrypted/qs-firestore.plist.gpg # plist_dst_path: quickstart-ios/firestore/GoogleService-Info.plist # run_tests: false diff --git a/.github/workflows/inappmessaging.yml b/.github/workflows/inappmessaging.yml index 6279b58181d..9275f825492 100644 --- a/.github/workflows/inappmessaging.yml +++ b/.github/workflows/inappmessaging.yml @@ -76,7 +76,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: InAppMessaging - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh inappmessaging + setup_command: scripts/setup_quickstart_spm.sh inappmessaging plist_src_path: scripts/gha-encrypted/qs-inappmessaging.plist.gpg plist_dst_path: quickstart-ios/inappmessaging/GoogleService-Info.plist secrets: diff --git a/.github/workflows/installations.yml b/.github/workflows/installations.yml index ecb91b6be52..b8bbb69d6d3 100644 --- a/.github/workflows/installations.yml +++ b/.github/workflows/installations.yml @@ -53,7 +53,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Installations - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh installations + setup_command: scripts/setup_quickstart_spm.sh installations plist_src_path: scripts/gha-encrypted/Installations/GoogleService-Info.plist.gpg plist_dst_path: quickstart-ios/installations/GoogleService-Info.plist secrets: diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 44e4db9ed2d..4663b6355b8 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -85,7 +85,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Messaging - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh messaging + setup_command: scripts/setup_quickstart_spm.sh messaging plist_src_path: scripts/gha-encrypted/qs-messaging.plist.gpg plist_dst_path: quickstart-ios/messaging/GoogleService-Info.plist run_tests: false diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index d574412e9df..28447841b87 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -83,7 +83,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Performance - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh 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: diff --git a/.github/workflows/remoteconfig.yml b/.github/workflows/remoteconfig.yml index 3043cbf7d49..68d0bb7512a 100644 --- a/.github/workflows/remoteconfig.yml +++ b/.github/workflows/remoteconfig.yml @@ -94,7 +94,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Config - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh config + setup_command: scripts/setup_quickstart_spm.sh config plist_src_path: scripts/gha-encrypted/qs-config.plist.gpg plist_dst_path: quickstart-ios/config/GoogleService-Info.plist secrets: diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index 6e61def84d8..1709c7dfca1 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -84,7 +84,7 @@ jobs: with: product: Storage is_legacy: true - setup_command: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh 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 From 3b3e44cc218e89b5a8527643a744dac5c0f73af4 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 11:36:31 -0400 Subject: [PATCH 03/41] Update testing --- .github/workflows/common_quickstart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/common_quickstart.yml b/.github/workflows/common_quickstart.yml index ba83333f187..f4cc5f1708a 100644 --- a/.github/workflows/common_quickstart.yml +++ b/.github/workflows/common_quickstart.yml @@ -34,7 +34,7 @@ on: type: string required: false # default: 'main' # TODO: Revert to main before merging. - default: 'nc/quickstarts' + default: 'nc/remove-objc-qs' # 'nc/quickstarts' # Whether to test the legacy version of the quickstart. is_legacy: From b570f39efe5a12dd909b93882fe142666dccaab9 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 12:10:58 -0400 Subject: [PATCH 04/41] debug --- .github/workflows/common_quickstart.yml | 27 +++++++++++-------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/workflows/common_quickstart.yml b/.github/workflows/common_quickstart.yml index f4cc5f1708a..6f34988ab0c 100644 --- a/.github/workflows/common_quickstart.yml +++ b/.github/workflows/common_quickstart.yml @@ -36,12 +36,6 @@ on: # default: 'main' # TODO: Revert to main before merging. default: 'nc/remove-objc-qs' # 'nc/quickstarts' - # Whether to test the legacy version of the quickstart. - is_legacy: - type: boolean - required: false - default: false - # The path to the encrypted `GoogleService-Info.plist` file. plist_src_path: type: string @@ -72,7 +66,6 @@ jobs: if: (github.repository == 'firebase/firebase-ios-sdk' && github.event_name == 'schedule') || contains(fromJSON('["pull_request", "workflow_dispatch"]'), github.event_name) env: plist_secret: ${{ secrets.plist_secret }} - LEGACY: ${{ inputs.is_legacy && true || '' }} QUICKSTART_BRANCH: ${{ inputs.quickstart_branch }} runs-on: macos-15 steps: @@ -90,16 +83,20 @@ jobs: ${{ inputs.plist_src_path }} \ ${{ inputs.plist_dst_path }} \ "$plist_secret" - - name: Build ${{ inputs.product }} Quickstart (${{ inputs.is_legacy && 'Legacy' || 'Non-Legacy' }}) - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 - with: - timeout_minutes: 15 - max_attempts: 3 - retry_wait_seconds: 120 - command: | - SPM=true DIR=${{ inputs.product }} scripts/test_quickstart.sh \ + - name: Build ${{ inputs.product }} Quickstart + run: | + SPM=true DIR=${{ inputs.product }} scripts/test_quickstart.sh \ ${{ inputs.product }} \ ${{ inputs.run_tests }} \ + # uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 + # with: + # timeout_minutes: 15 + # max_attempts: 3 + # retry_wait_seconds: 120 + # command: | + # SPM=true DIR=${{ inputs.product }} scripts/test_quickstart.sh \ + # ${{ inputs.product }} \ + # ${{ inputs.run_tests }} \ # Failure sequence to upload artifact. - id: lowercase_product if: ${{ failure() }} From bc280ce6162c5848ee9c2f739c70b53a1c5ced6d Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 12:12:49 -0400 Subject: [PATCH 05/41] better qs name --- .github/workflows/common_quickstart.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/common_quickstart.yml b/.github/workflows/common_quickstart.yml index 6f34988ab0c..3a2e3b0e48e 100644 --- a/.github/workflows/common_quickstart.yml +++ b/.github/workflows/common_quickstart.yml @@ -62,6 +62,7 @@ on: jobs: quickstart: + name: quickstart (${{ inputs.product }}) # Run on the main repo's scheduled jobs or pull requests and manual workflow invocations. if: (github.repository == 'firebase/firebase-ios-sdk' && github.event_name == 'schedule') || contains(fromJSON('["pull_request", "workflow_dispatch"]'), github.event_name) env: From e71e65c7196723d6c46b67397953367a61468f1a Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 12:19:25 -0400 Subject: [PATCH 06/41] Debug --- scripts/test_quickstart.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/test_quickstart.sh b/scripts/test_quickstart.sh index 2a3f533fc1d..3bc35cd6a47 100755 --- a/scripts/test_quickstart.sh +++ b/scripts/test_quickstart.sh @@ -21,6 +21,9 @@ set -xeuo pipefail sample="$1" test="$2" +echo "Hello" +exit 1 + # Source function to check if CI secrets are available. source scripts/check_secrets.sh From ef6514a2f3b5826241fbdf8f340b45cad36d2ed6 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 12:23:13 -0400 Subject: [PATCH 07/41] remove trailing slash --- .github/workflows/common_quickstart.yml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/.github/workflows/common_quickstart.yml b/.github/workflows/common_quickstart.yml index 3a2e3b0e48e..782dd0818d7 100644 --- a/.github/workflows/common_quickstart.yml +++ b/.github/workflows/common_quickstart.yml @@ -85,19 +85,15 @@ jobs: ${{ inputs.plist_dst_path }} \ "$plist_secret" - name: Build ${{ inputs.product }} Quickstart - run: | - SPM=true DIR=${{ inputs.product }} scripts/test_quickstart.sh \ + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 + with: + timeout_minutes: 15 + max_attempts: 3 + retry_wait_seconds: 120 + command: | + SPM=true DIR=${{ inputs.product }} scripts/test_quickstart.sh \ ${{ inputs.product }} \ - ${{ inputs.run_tests }} \ - # uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 - # with: - # timeout_minutes: 15 - # max_attempts: 3 - # retry_wait_seconds: 120 - # command: | - # SPM=true DIR=${{ inputs.product }} scripts/test_quickstart.sh \ - # ${{ inputs.product }} \ - # ${{ inputs.run_tests }} \ + ${{ inputs.run_tests }} # Failure sequence to upload artifact. - id: lowercase_product if: ${{ failure() }} From eab3ab134594234544e2adb3696334ba44524ddd Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 12:25:18 -0400 Subject: [PATCH 08/41] workflows --- .github/workflows/abtesting.yml | 1 - .github/workflows/crashlytics.yml | 1 - .github/workflows/firestore.yml | 1 - .github/workflows/functions.yml | 1 - .github/workflows/storage.yml | 1 - 5 files changed, 5 deletions(-) diff --git a/.github/workflows/abtesting.yml b/.github/workflows/abtesting.yml index 065adf0b4e4..83812ab98aa 100644 --- a/.github/workflows/abtesting.yml +++ b/.github/workflows/abtesting.yml @@ -45,7 +45,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: ABTesting - is_legacy: true setup_command: scripts/setup_quickstart_spm.sh abtesting plist_src_path: scripts/gha-encrypted/qs-abtesting.plist.gpg plist_dst_path: quickstart-ios/abtesting/GoogleService-Info.plist diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index 9255eec50da..fd71c127c0a 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -47,7 +47,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Crashlytics - is_legacy: true setup_command: | scripts/setup_quickstart.sh crashlytics mkdir quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics diff --git a/.github/workflows/firestore.yml b/.github/workflows/firestore.yml index 0a1e8b56b88..4c3e9726425 100644 --- a/.github/workflows/firestore.yml +++ b/.github/workflows/firestore.yml @@ -605,7 +605,6 @@ jobs: # uses: ./.github/workflows/common_quickstart.yml # with: # product: Firestore - # is_legacy: true # setup_command: scripts/setup_quickstart_spm.sh firestore # plist_src_path: scripts/gha-encrypted/qs-firestore.plist.gpg # plist_dst_path: quickstart-ios/firestore/GoogleService-Info.plist diff --git a/.github/workflows/functions.yml b/.github/workflows/functions.yml index 42d7b0c1395..97e1cb36450 100644 --- a/.github/workflows/functions.yml +++ b/.github/workflows/functions.yml @@ -59,7 +59,6 @@ jobs: # quickstart_type: [objc, swift] # with: # product: Functions - # is_legacy: true # setup_command: | # scripts/setup_quickstart.sh functions # sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index 1709c7dfca1..3a1051ec801 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -83,7 +83,6 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Storage - is_legacy: true 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 From 9e130006fabd3f792ee8c87f5401023304e85bca Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 12:27:54 -0400 Subject: [PATCH 09/41] remove debug --- scripts/test_quickstart.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/test_quickstart.sh b/scripts/test_quickstart.sh index 3bc35cd6a47..2a3f533fc1d 100755 --- a/scripts/test_quickstart.sh +++ b/scripts/test_quickstart.sh @@ -21,9 +21,6 @@ set -xeuo pipefail sample="$1" test="$2" -echo "Hello" -exit 1 - # Source function to check if CI secrets are available. source scripts/check_secrets.sh From 5312f610e5bde8eb1a876c3d3cc830a7e017160f Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 12:44:57 -0400 Subject: [PATCH 10/41] crashlytics --- .github/workflows/crashlytics.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index fd71c127c0a..aebe40a2604 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -47,12 +47,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Crashlytics - setup_command: | - scripts/setup_quickstart.sh crashlytics - mkdir quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics - # Set the deployed pod location of run and upload-symbols with the development pod version. - cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/ - cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/ + setup_command: scripts/setup_quickstart.sh crashlytics plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist secrets: From b620b61f2c28c0d295ac136c8be11b0dd27f7ee0 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 13:32:37 -0400 Subject: [PATCH 11/41] common qs update --- .github/workflows/common_quickstart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/common_quickstart.yml b/.github/workflows/common_quickstart.yml index 782dd0818d7..6cd964d4f6c 100644 --- a/.github/workflows/common_quickstart.yml +++ b/.github/workflows/common_quickstart.yml @@ -34,7 +34,7 @@ on: type: string required: false # default: 'main' # TODO: Revert to main before merging. - default: 'nc/remove-objc-qs' # 'nc/quickstarts' + default: 'nc/quickstarts' # The path to the encrypted `GoogleService-Info.plist` file. plist_src_path: From 1d68365aabeda52ad82fdfa5df8b40dbc3b549c7 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 13:33:41 -0400 Subject: [PATCH 12/41] workflow refactors --- .github/workflows/abtesting.yml | 2 -- .github/workflows/crashlytics.yml | 8 -------- .github/workflows/functions.yml | 17 +---------------- .github/workflows/prerelease.yml | 22 ++++++---------------- .github/workflows/release.yml | 22 ++++++---------------- .github/workflows/storage.yml | 1 - .github/workflows/zip.yml | 24 ++---------------------- 7 files changed, 15 insertions(+), 81 deletions(-) diff --git a/.github/workflows/abtesting.yml b/.github/workflows/abtesting.yml index 83812ab98aa..448fadbe5fe 100644 --- a/.github/workflows/abtesting.yml +++ b/.github/workflows/abtesting.yml @@ -66,7 +66,6 @@ jobs: # python-version: '3.11' # - name: Setup quickstart # env: - # LEGACY: true # run: scripts/setup_quickstart.sh abtesting # - name: Install Secret GoogleService-Info.plist # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \ @@ -75,7 +74,6 @@ jobs: # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer # - name: Build swift quickstart # env: - # LEGACY: true # run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh ABTesting) # - id: ftl_test # uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4 diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index aebe40a2604..e893a12e4c0 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -70,20 +70,12 @@ jobs: # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer # - name: Setup quickstart # run: scripts/setup_quickstart.sh crashlytics - # env: - # LEGACY: true # - 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" # - name: Build swift quickstart # run: | - # mkdir quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics - # # Set the deployed pod location of run and upload-symbols with the development pod version. - # cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/ - # cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/ # ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Crashlytics swift) - # env: - # LEGACY: true # - id: ftl_test # uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4 # with: diff --git a/.github/workflows/functions.yml b/.github/workflows/functions.yml index 97e1cb36450..07cafd50e4e 100644 --- a/.github/workflows/functions.yml +++ b/.github/workflows/functions.yml @@ -51,22 +51,7 @@ jobs: with: target: FirebaseFunctionsUnit - # TODO: The legacy quickstart uses material which doesn't build on Xcode 15. - # quickstart: - # uses: ./.github/workflows/common_quickstart.yml - # strategy: - # matrix: - # quickstart_type: [objc, swift] - # with: - # product: Functions - # setup_command: | - # scripts/setup_quickstart.sh functions - # sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist - # plist_src_path: scripts/gha-encrypted/qs-functions.plist.gpg - # plist_dst_path: quickstart-ios/functions/GoogleService-Info.plist - # quickstart_type: ${{ matrix.quickstart_type }} - # secrets: - # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # TODO(ncooke3): Add a Functions quickstart test. # quickstart-ftl-cron-only: # # Don't run on private repo diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 1de043c598f..4c455d55d99 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -223,7 +223,6 @@ jobs: # env: # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} # botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} - # LEGACY: true # # TODO: The functions quickstart uses Material which isn't supported by Xcode 15 # runs-on: macos-12 # steps: @@ -263,7 +262,6 @@ jobs: - product: Performance run_tests: true - product: Storage - is_legacy: true run_tests: true - product: Config run_tests: true @@ -278,20 +276,12 @@ jobs: - product: Authentication run_tests: false - product: Crashlytics - is_legacy: true run_tests: true - setup_command: | - mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics - # Set the deployed pod location of run and upload-symbols with the development pod version. - cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/ - cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/ - product: ABTesting - is_legacy: true run_tests: true env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} - LEGACY: ${{ matrix.is_legacy && true || '' }} runs-on: macos-15 steps: - uses: actions/checkout@v4 @@ -318,10 +308,10 @@ jobs: command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} # Failure sequence to upload artifact. - name: Remove data before upload. - if: ${{ failure() }} + # if: ${{ failure() }} run: scripts/remove_data.sh ${{ matrix.product }} - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_${{ matrix.product }} - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_${{ matrix.product }} + # path: quickstart-ios/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7441a5a5dba..ae9d3902ec9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -164,7 +164,6 @@ jobs: run_tests: true - product: Storage run_tests: true - is_legacy: true - product: Config run_tests: true - product: Messaging @@ -179,19 +178,11 @@ jobs: run_tests: false - product: Crashlytics run_tests: true - is_legacy: true - setup_command: | - mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics - # Set the deployed pod location of run and upload-symbols with the development pod version. - cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/ - cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/ - product: ABTesting run_tests: true - is_legacy: true env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} botaccess: ${{ secrets.RELEASE_TESTING_PAT }} - LEGACY: ${{ matrix.is_legacy && true || '' }} runs-on: macos-15 steps: - uses: actions/checkout@v4 @@ -215,13 +206,13 @@ jobs: retry_wait_seconds: 120 command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} - name: Remove data before upload - if: ${{ failure() }} + # if: ${{ failure() }} run: scripts/remove_data.sh ${{ matrix.product }} - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_${{ matrix.product }} - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_${{ matrix.product }} + # path: quickstart-ios/ # TODO: The functions quickstart uses Material which isn't supported by Xcode 15 # functions_quickstart: @@ -231,7 +222,6 @@ jobs: # env: # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} # botaccess: ${{ secrets.RELEASE_TESTING_PAT }} - # LEGACY: true # runs-on: macos-12 # steps: # - uses: actions/checkout@v4 diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index 3a1051ec801..95545b39a97 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -95,7 +95,6 @@ jobs: # if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' # env: # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - # LEGACY: true # runs-on: macos-15 # steps: # - uses: actions/checkout@v4 diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index eba3c5b61b5..b1505a3f27d 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -1,5 +1,7 @@ name: zip +# TODO(ncooke3): Add FirebaseAI test. + permissions: actions: read contents: read @@ -147,8 +149,6 @@ jobs: find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - uses: actions/checkout@v4 - name: Setup quickstart - env: - LEGACY: true run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \ "${HOME}"/ios_frameworks/Firebase/FirebaseRemoteConfig/* \ "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseCore.xcframework \ @@ -160,12 +160,8 @@ jobs: run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \ quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret" - name: Test Quickstart - env: - LEGACY: true run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - name: Remove data before upload - env: - LEGACY: true if: ${{ failure() }} run: scripts/remove_data.sh abtesting - uses: actions/upload-artifact@v4 @@ -306,8 +302,6 @@ jobs: find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - uses: actions/checkout@v4 - name: Setup quickstart - env: - LEGACY: true run: | SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \ "${HOME}"/ios_frameworks/Firebase/FirebaseCrashlytics/* \ @@ -327,8 +321,6 @@ jobs: run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \ quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret" - name: Test Quickstart - env: - LEGACY: true run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") # TODO(#8057): Restore Swift Quickstart # - name: Test Swift Quickstart @@ -336,8 +328,6 @@ jobs: # LEGACY: true # run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift) - name: Remove data before upload - env: - LEGACY: true if: ${{ failure() }} run: scripts/remove_data.sh crashlytics - uses: actions/upload-artifact@v4 @@ -625,30 +615,20 @@ jobs: find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - uses: actions/checkout@v4 - name: Setup quickstart - env: - LEGACY: true run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \ "${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \ "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* - name: Setup swift quickstart - env: - LEGACY: true run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh - 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" - name: Test Quickstart - env: - LEGACY: true run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - name: Test Swift Quickstart - env: - LEGACY: true run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift) - name: Remove data before upload - env: - LEGACY: true if: ${{ failure() }} run: scripts/remove_data.sh storage - uses: actions/upload-artifact@v4 From c141e3a258f2d9dfded4df6dc2fa55d1f9304ec4 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 13:38:48 -0400 Subject: [PATCH 13/41] fix setup script --- .github/workflows/crashlytics.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index e893a12e4c0..105ef5bdd7f 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -47,7 +47,7 @@ jobs: uses: ./.github/workflows/common_quickstart.yml with: product: Crashlytics - setup_command: scripts/setup_quickstart.sh 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: From 8b8290762066e0fb6df336c8594f91bb7379b8cd Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 14:26:09 -0400 Subject: [PATCH 14/41] *release workflow updates --- .github/workflows/prerelease.yml | 8 ++------ .github/workflows/release.yml | 10 ++++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 4c455d55d99..181b1e36177 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -254,8 +254,7 @@ jobs: quickstart: # 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 == 'workflow_dispatch' - needs: buildup_SpecsTesting_repo + if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request' strategy: matrix: include: @@ -289,16 +288,13 @@ jobs: - name: Xcode 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 ${{ matrix.product }} prerelease_testing + run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart_spm.sh ${{ matrix.product }} prerelease_testing - name: Install Secret GoogleService-Info.plist run: | scripts/decrypt_gha_secret.sh \ scripts/gha-encrypted/qs-${{ matrix.product }}.plist.gpg \ quickstart-ios/${{ matrix.product }}/GoogleService-Info.plist \ "$plist_secret" - - name: Run setup command, if needed. - if: matrix.setup_command != '' - run: ${{ matrix.setup_command }} - name: Build Quickstart uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ae9d3902ec9..a9dfcd8a48e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -153,10 +153,11 @@ jobs: if: ${{ always() }} run: pod repo remove "${local_repo}" + # TODO(ncooke3): Probably should separate *release workflows into + # *release-cocoapods and *release (spm). quickstart: # 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 == 'workflow_dispatch' - needs: buildup_SpecsReleasing_repo + if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request' strategy: matrix: include: @@ -190,14 +191,11 @@ jobs: run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Setup testing repo and quickstart - run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh ${{ matrix.product }} nightly_release_testing + run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart_spm.sh ${{ matrix.product }} nightly_release_testing - name: Install Secret GoogleService-Info.plist run: | scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-${{ matrix.product }}.plist.gpg \ quickstart-ios/${{ matrix.product }}/GoogleService-Info.plist "$plist_secret" - - name: Run setup command, if needed. - if: matrix.setup_command != '' - run: ${{ matrix.setup_command }} - name: Build Quickstart uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: From b9a82111b473f06297e2b6af27ce66447d2e7213 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 14:30:12 -0400 Subject: [PATCH 15/41] case sensitive products --- .github/workflows/prerelease.yml | 20 ++++++++++---------- .github/workflows/release.yml | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 181b1e36177..87ae718cb81 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -258,25 +258,25 @@ jobs: strategy: matrix: include: - - product: Performance + - product: performance run_tests: true - - product: Storage + - product: storage run_tests: true - - product: Config + - product: config run_tests: true - - product: Messaging + - product: messaging run_tests: false - - product: InAppMessaging + - product: inappMessaging run_tests: true - - product: Firestore + - product: firestore run_tests: false - - product: Database + - product: database run_tests: false - - product: Authentication + - product: authentication run_tests: false - - product: Crashlytics + - product: crashlytics run_tests: true - - product: ABTesting + - product: abtesting run_tests: true env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a9dfcd8a48e..6d137c90dc8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -161,25 +161,25 @@ jobs: strategy: matrix: include: - - product: Performance + - product: performance run_tests: true - - product: Storage + - product: storage run_tests: true - - product: Config + - product: config run_tests: true - - product: Messaging + - product: messaging run_tests: false - - product: InAppMessaging + - product: inappMessaging run_tests: true - - product: Firestore + - product: firestore run_tests: false - - product: Database + - product: database run_tests: false - - product: Authentication + - product: authentication run_tests: false - - product: Crashlytics + - product: crashlytics run_tests: true - - product: ABTesting + - product: abtesting run_tests: true env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} From 601cd1d9f6a758453b0c37e3cbd766e3b37714a5 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 14:34:59 -0400 Subject: [PATCH 16/41] disable fail-fast in *release --- .github/workflows/prerelease.yml | 1 + .github/workflows/release.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 87ae718cb81..c3dd3aae235 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -256,6 +256,7 @@ jobs: # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' strategy: + fail-fast: false matrix: include: - product: performance diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6d137c90dc8..c5218cb997b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -159,6 +159,7 @@ jobs: # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' strategy: + fail-fast: false matrix: include: - product: performance From 3f3c2562357f6dc9385af6748369699d87a8298a Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 16:55:01 -0400 Subject: [PATCH 17/41] debug true --- .github/workflows/prerelease.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index c3dd3aae235..4a849940aa6 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -289,7 +289,7 @@ jobs: - name: Xcode 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_spm.sh ${{ matrix.product }} prerelease_testing + run: DEBUG=true scripts/setup_quickstart_spm.sh ${{ matrix.product }} prerelease_testing - name: Install Secret GoogleService-Info.plist run: | scripts/decrypt_gha_secret.sh \ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c5218cb997b..5ff7411f795 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -192,7 +192,7 @@ jobs: run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Setup testing repo and quickstart - run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart_spm.sh ${{ matrix.product }} nightly_release_testing + run: DEBUG=true scripts/setup_quickstart_spm.sh ${{ matrix.product }} nightly_release_testing - name: Install Secret GoogleService-Info.plist run: | scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-${{ matrix.product }}.plist.gpg \ From 38bf3f6e30da939cb83d63cdbd5ab6ca20813ddd Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 17:11:41 -0400 Subject: [PATCH 18/41] workflow name improvements --- .github/workflows/prerelease.yml | 1 + .github/workflows/release.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 4a849940aa6..e6cb20ba40f 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -279,6 +279,7 @@ jobs: run_tests: true - product: abtesting run_tests: true + name: 'quickstart (prerelease, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5ff7411f795..c92526b5df3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -182,6 +182,7 @@ jobs: run_tests: true - product: abtesting run_tests: true + name: 'quickstart (release, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} botaccess: ${{ secrets.RELEASE_TESTING_PAT }} From d7393293e2b95d153a7eabe9ed67707a87e45d1a Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 17:12:29 -0400 Subject: [PATCH 19/41] fetch-tags: true --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c92526b5df3..3ba1b033d4c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -189,6 +189,8 @@ jobs: runs-on: macos-15 steps: - uses: actions/checkout@v4 + with: + fetch-tags: true - name: Set Xcode version run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 From d620e4ed3de68205fa214afccb99829f197431c2 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 17:17:10 -0400 Subject: [PATCH 20/41] try checkout config change --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ba1b033d4c..13c4cb3a258 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -159,7 +159,7 @@ jobs: # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' strategy: - fail-fast: false + # fail-fast: false matrix: include: - product: performance @@ -191,6 +191,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-tags: true + fetch-depth: 0 - name: Set Xcode version run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 From 855a52006f4b348d53b40c6d179a60cf7064dee9 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 17:21:48 -0400 Subject: [PATCH 21/41] m --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 13c4cb3a258..0e2e64155e7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -190,7 +190,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - fetch-tags: true + # fetch-tags: true fetch-depth: 0 - name: Set Xcode version run: sudo xcode-select -s /Applications/Xcode_16.4.app From 17e76918415ab774deb7b8f8fc1a228c32c0bb15 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 18:48:34 -0400 Subject: [PATCH 22/41] script better error handling --- scripts/setup_quickstart_spm.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/setup_quickstart_spm.sh b/scripts/setup_quickstart_spm.sh index 4c3145e2d33..faf0224fec8 100755 --- a/scripts/setup_quickstart_spm.sh +++ b/scripts/setup_quickstart_spm.sh @@ -149,10 +149,13 @@ update_spm_dependency() { "${NIGHTLY_RELEASE_TESTING}") # For release testing, find the latest CocoaPods tag. local latest_tag - latest_tag=$(git -C "$root_dir" tag -l "CocoaPods-*" --sort=-v:refname | \ - grep -E '^CocoaPods-[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1) + latest_tag=$(git -C "$root_dir" tag -l "CocoaPods-*" --sort=-v:refname | + awk '/^CocoaPods-[0-9]+\.[0-9]+\.[0-9]+$/{print; exit}') if [[ -z "$latest_tag" ]]; then - echo "Error: Could not find a 'CocoaPods-X.Y.Z' tag." >&2 + echo "Error: Could not find the latest CocoaPods tag." >&2 + echo "This is often caused by a shallow git clone in a CI environment." >&2 + echo "If you are running in GitHub Actions, please ensure your checkout" >&2 + echo "step includes 'fetch-depth: 0' to fetch the full git history." >&2 exit 1 fi local tag_revision From 2878050adf27c8b079914e9a5e65b9e51f7b8cff Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 18:49:16 -0400 Subject: [PATCH 23/41] backtrack --- .github/workflows/release.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0e2e64155e7..84789bc62d9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -189,9 +189,8 @@ jobs: runs-on: macos-15 steps: - uses: actions/checkout@v4 - with: - # fetch-tags: true - fetch-depth: 0 + # with: + # fetch-depth: 0 - name: Set Xcode version run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 From 2cbbb9d84c6f2bb34d69fafc9b73e1b33ab96a06 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 19:03:43 -0400 Subject: [PATCH 24/41] fixes --- .github/workflows/prerelease.yml | 2 +- .github/workflows/release.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index e6cb20ba40f..7a9552d9311 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -290,7 +290,7 @@ jobs: - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup testing repo and quickstart - run: DEBUG=true scripts/setup_quickstart_spm.sh ${{ matrix.product }} prerelease_testing + run: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh ${{ matrix.product }} prerelease_testing - name: Install Secret GoogleService-Info.plist run: | scripts/decrypt_gha_secret.sh \ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84789bc62d9..f547882c1a1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -189,13 +189,13 @@ jobs: runs-on: macos-15 steps: - uses: actions/checkout@v4 - # with: - # fetch-depth: 0 + with: + fetch-depth: 0 - name: Set Xcode version run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Setup testing repo and quickstart - run: DEBUG=true scripts/setup_quickstart_spm.sh ${{ matrix.product }} nightly_release_testing + run: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh ${{ matrix.product }} nightly_release_testing - name: Install Secret GoogleService-Info.plist run: | scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-${{ matrix.product }}.plist.gpg \ From 6863092b6ad5d180802debf00f1cb731d14dc9a2 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 23 Sep 2025 19:06:15 -0400 Subject: [PATCH 25/41] r --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f547882c1a1..13a0d4a5566 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -159,7 +159,7 @@ jobs: # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' strategy: - # fail-fast: false + fail-fast: false matrix: include: - product: performance From 0335a44dff57f83d5a2f875b17f27cf9be4b5553 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 10:07:12 -0400 Subject: [PATCH 26/41] SPM=true --- .github/workflows/prerelease.yml | 3 ++- .github/workflows/release.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 7a9552d9311..8bac0130972 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -303,7 +303,8 @@ jobs: timeout_minutes: 15 max_attempts: 3 retry_wait_seconds: 120 - command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} + # TODO(ncooke3): Remove SPM=true and instead change default value in quickstart-ios/scripts/test.sh + command: SPM=true scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} # Failure sequence to upload artifact. - name: Remove data before upload. # if: ${{ failure() }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 13a0d4a5566..687386156da 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -206,7 +206,8 @@ jobs: timeout_minutes: 15 max_attempts: 3 retry_wait_seconds: 120 - command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} + # TODO(ncooke3): Remove SPM=true and instead change default value in quickstart-ios/scripts/test.sh + command: SPM=true scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} - name: Remove data before upload # if: ${{ failure() }} run: scripts/remove_data.sh ${{ matrix.product }} From f6581a53de271535ce7acf79faca8139839fe819 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 10:12:58 -0400 Subject: [PATCH 27/41] set DIR --- .github/workflows/prerelease.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 8bac0130972..c90607fb3ee 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -304,7 +304,7 @@ jobs: max_attempts: 3 retry_wait_seconds: 120 # TODO(ncooke3): Remove SPM=true and instead change default value in quickstart-ios/scripts/test.sh - command: SPM=true scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} + command: SPM=true DIR=${{ matrix.product }} scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} # Failure sequence to upload artifact. - name: Remove data before upload. # if: ${{ failure() }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 687386156da..67f0cab1a3e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -207,7 +207,7 @@ jobs: max_attempts: 3 retry_wait_seconds: 120 # TODO(ncooke3): Remove SPM=true and instead change default value in quickstart-ios/scripts/test.sh - command: SPM=true scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} + command: SPM=true DIR=${{ matrix.product }} scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} - name: Remove data before upload # if: ${{ failure() }} run: scripts/remove_data.sh ${{ matrix.product }} From 5c5e3e8c3c1e9d8442a332bf6baa7fa5abb0854c Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 10:24:50 -0400 Subject: [PATCH 28/41] seprate out SPM and CocoaPods workflows --- .github/workflows/prerelease.yml | 195 +------------------ .github/workflows/prerelease_cocoapods.yml | 216 +++++++++++++++++++++ .github/workflows/release.yml | 200 ++++--------------- .github/workflows/release_cocoapods.yml | 154 +++++++++++++++ 4 files changed, 405 insertions(+), 360 deletions(-) create mode 100644 .github/workflows/prerelease_cocoapods.yml create mode 100644 .github/workflows/release_cocoapods.yml diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index c90607fb3ee..279efadc0ab 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -1,7 +1,7 @@ name: prerelease permissions: - contents: write + contents: read on: pull_request: @@ -22,199 +22,6 @@ concurrency: cancel-in-progress: true jobs: - specs_checking: - # 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 == 'workflow_dispatch' - runs-on: macos-15 - env: - botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} - local_repo: specstesting - podspec_repo_branch: main - outputs: - matrix: ${{ steps.generate_matrix.outputs.matrix }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - name: Generate matrix - id: generate_matrix - run: | - cd "${GITHUB_WORKSPACE}/ReleaseTooling" - swift run manifest --sdk-repo-url "${GITHUB_WORKSPACE}" --output-file-path ./output.json --for-gha-matrix-generation - echo "::set-output name=matrix::{\"include\":$( cat output.json )}" - - name: Update SpecsTesting repo setup - run: | - podspec_repo_branch="${podspec_repo_branch}" \ - scripts/release_testing_setup.sh prerelease_testing - env: - BOT_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Clean spec repo - run: | - git clone --quiet https://${botaccess}@github.com/Firebase/SpecsTesting.git "${local_repo}" - cd "${local_repo}" - # Remove all unhidden dirs, i.e. all podspec dir from the spec repo. - rm -Rf -- */ - git add . - # commit without diff will throw an error. `git diff --exit-code` can avoid such error. - git diff --staged --exit-code || git commit -m "Empty spec repo." - # Attempt to push. If it fails, print a detailed error message and exit. - git push || { - echo "--------------------------------------------------------------------------------" - echo "ERROR: Failed to push to Firebase/SpecsTesting." - echo "This is likely due to an expired Personal Access Token (PAT)." - echo "Please take the following steps to resolve this:" - echo "1. Refresh the OSS bot's scoped access token for the Firebase/SpecsTesting repo." - echo " This can be done in the OSS bot's GitHub account settings. Ensure the token " - echo " has the 'public_repo' scope." - echo "2. Update the 'PRERELEASE_TESTING_PAT' secret in this repo's settings." - echo " (https://github.com/Firebase/firebase-ios-sdk/settings/secrets/actions)" - echo "--------------------------------------------------------------------------------" - exit 1 - } - - name: Clean Artifacts - if: ${{ always() }} - run: | - rm -rf prerelease-testing-token.txt - - uses: actions/upload-artifact@v4 - with: - name: firebase-ios-sdk - path: | - *.podspec - *.podspec.json - - buildup_SpecsTesting_repo_FirebaseCore: - needs: specs_checking - # 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 == 'workflow_dispatch' - runs-on: macos-15 - env: - botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} - local_repo: specstesting - local_sdk_repo_dir: /tmp/test/firebase-ios-sdk - targeted_pod: FirebaseCore - steps: - - uses: actions/checkout@v4 - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - uses: actions/download-artifact@v4.1.7 - with: - name: firebase-ios-sdk - path: ${{ env.local_sdk_repo_dir }} - # Addresses flaky pushes due to missing git config on runner. - - name: Set git config - run: | - git config --global user.email "google-oss-bot@example.com" - git config --global user.name "google-oss-bot" - - name: Update SpecsTesting repo - run: | - cd scripts/create_spec_repo/ - swift build - pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsTesting.git - BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \ - --sdk-repo "${local_sdk_repo_dir}" \ - --local-spec-repo-name "${local_repo}" \ - --sdk-repo-name SpecsTesting \ - --github-account Firebase \ - --pod-sources 'https://${BOT_TOKEN}@github.com/Firebase/SpecsTesting' "https://github.com/firebase/SpecsDev.git" "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \ - --include-pods "${targeted_pod}" --keep-repo - - name: Clean Artifacts - if: ${{ always() }} - run: pod repo remove "${local_repo}" - - buildup_SpecsTesting_repo: - needs: [buildup_SpecsTesting_repo_FirebaseCore, specs_checking] - # 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 == 'workflow_dispatch' - runs-on: macos-15 - strategy: - fail-fast: false - matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}} - env: - botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} - local_repo: specstesting - local_sdk_repo_dir: /tmp/test/firebase-ios-sdk - targeted_pod: ${{ matrix.podspec }} - steps: - - uses: actions/checkout@v4 - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - uses: actions/download-artifact@v4.1.7 - with: - name: firebase-ios-sdk - path: ${{ env.local_sdk_repo_dir }} - # Addresses flaky pushes due to missing git config on runner. - - name: Set git config - run: | - git config --global user.email "google-oss-bot@example.com" - git config --global user.name "google-oss-bot" - - name: Update SpecsTesting repo - run: | - [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true - cd scripts/create_spec_repo/ - swift build - pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsTesting.git - # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the - # command if ${ALLOWWARNINGS} is not null. - BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \ - --sdk-repo "${local_sdk_repo_dir}" \ - --local-spec-repo-name "${local_repo}" \ - --sdk-repo-name SpecsTesting \ - --github-account Firebase \ - --pod-sources 'https://${BOT_TOKEN}@github.com/Firebase/SpecsTesting' "https://github.com/firebase/SpecsDev.git" "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \ - --include-pods "${targeted_pod}" \ - --keep-repo ${ALLOWWARNINGS:+--allow-warnings} - - name: Clean Artifacts - if: ${{ always() }} - run: pod repo remove "${local_repo}" - - update_SpecsTesting_repo: - # Don't run on private repo unless it is a PR. - if: github.repository == 'Firebase/firebase-ios-sdk' && github.event.pull_request.merged == true - runs-on: macos-15 - env: - botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} - local_repo: specstesting - podspec_repo_branch: main - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - name: Update SpecsTesting repo setup - run: | - # Update/create a nightly tag to the head of the main branch. - podspec_repo_branch="${podspec_repo_branch}" \ - scripts/release_testing_setup.sh prerelease_testing - env: - BOT_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Push updated podspecs - run: | - # Changes in post submit tests will be fetched by getting diff between - # the HEAD and HEAD^ of the main branch. - common_commit=$(git rev-parse HEAD^) - git diff --name-only $common_commit remotes/origin/${podspec_repo_branch} > updated_files.txt - updated_podspecs=() - while IFS= read -r line; - do - echo $line - if [ ${line: -8} == ".podspec" ] - then - updated_podspecs+=("$(basename -s .podspec ${line})") - fi - done < updated_files.txt - if [ -z "$updated_podspecs" ] - then - exit - fi - cd scripts/create_spec_repo/ - swift build - pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsTesting.git - BOT_TOKEN="${botaccess}" .build/debug/spec-repo-builder --sdk-repo $(pwd) --local-spec-repo-name "${local_repo}" --sdk-repo-name SpecsTesting --github-account Firebase --pod-sources 'https://${BOT_TOKEN}@github.com/Firebase/SpecsTesting' "https://github.com/firebase/SpecsDev.git" "https://github.com/firebase/SpecsStaging.git" "https://cdn.cocoapods.org/" "FirebaseFirestoreTestingSupport" "FirebaseAuthTestingSupport" "FirebaseCombineSwift" --keep-repo --include-pods "${updated_podspecs[@]}" - # TODO: The functions quickstart uses Material which isn't supported by Xcode 15 #functions_quickstart: # Don't run on private repo unless it is a PR. diff --git a/.github/workflows/prerelease_cocoapods.yml b/.github/workflows/prerelease_cocoapods.yml new file mode 100644 index 00000000000..684716b9c8b --- /dev/null +++ b/.github/workflows/prerelease_cocoapods.yml @@ -0,0 +1,216 @@ +name: prerelease_cocoapods + +permissions: + contents: write + +on: + pull_request: + # closed will be triggered when a pull request is merged. This is to keep https://github.com/firebase/SpecsTesting up to date. + types: [closed] + paths: + - '.github/workflows/prerelease_cocoapods.yml' + workflow_dispatch: + schedule: + # Run every day at 10pm (PDT) / 1am (EDT) - cron uses UTC times + - cron: '0 5 * * *' + +env: + FIREBASE_CI: true + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + specs_checking: + # 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 == 'workflow_dispatch' + runs-on: macos-15 + env: + botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} + local_repo: specstesting + podspec_repo_branch: main + outputs: + matrix: ${{ steps.generate_matrix.outputs.matrix }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required for pulling down repo tags. + - name: Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - name: Generate matrix + id: generate_matrix + run: | + cd "${GITHUB_WORKSPACE}/ReleaseTooling" + swift run manifest --sdk-repo-url "${GITHUB_WORKSPACE}" --output-file-path ./output.json --for-gha-matrix-generation + echo "::set-output name=matrix::{\"include\":$( cat output.json )}" + - name: Update SpecsTesting repo setup + run: | + podspec_repo_branch="${podspec_repo_branch}" \ + scripts/release_testing_setup.sh prerelease_testing + env: + BOT_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Clean spec repo + run: | + git clone --quiet https://${botaccess}@github.com/Firebase/SpecsTesting.git "${local_repo}" + cd "${local_repo}" + # Remove all unhidden dirs, i.e. all podspec dir from the spec repo. + rm -Rf -- */ + git add . + # commit without diff will throw an error. `git diff --exit-code` can avoid such error. + git diff --staged --exit-code || git commit -m "Empty spec repo." + # Attempt to push. If it fails, print a detailed error message and exit. + git push || { + echo "--------------------------------------------------------------------------------" + echo "ERROR: Failed to push to Firebase/SpecsTesting." + echo "This is likely due to an expired Personal Access Token (PAT)." + echo "Please take the following steps to resolve this:" + echo "1. Refresh the OSS bot's scoped access token for the Firebase/SpecsTesting repo." + echo " This can be done in the OSS bot's GitHub account settings. Ensure the token " + echo " has the 'public_repo' scope." + echo "2. Update the 'PRERELEASE_TESTING_PAT' secret in this repo's settings." + echo " (https://github.com/Firebase/firebase-ios-sdk/settings/secrets/actions)" + echo "--------------------------------------------------------------------------------" + exit 1 + } + - name: Clean Artifacts + if: ${{ always() }} + run: | + rm -rf prerelease-testing-token.txt + - uses: actions/upload-artifact@v4 + with: + name: firebase-ios-sdk + path: | + *.podspec + *.podspec.json + + buildup_SpecsTesting_repo_FirebaseCore: + needs: specs_checking + # 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 == 'workflow_dispatch' + runs-on: macos-15 + env: + botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} + local_repo: specstesting + local_sdk_repo_dir: /tmp/test/firebase-ios-sdk + targeted_pod: FirebaseCore + steps: + - uses: actions/checkout@v4 + - name: Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - uses: actions/download-artifact@v4.1.7 + with: + name: firebase-ios-sdk + path: ${{ env.local_sdk_repo_dir }} + # Addresses flaky pushes due to missing git config on runner. + - name: Set git config + run: | + git config --global user.email "google-oss-bot@example.com" + git config --global user.name "google-oss-bot" + - name: Update SpecsTesting repo + run: | + cd scripts/create_spec_repo/ + swift build + pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsTesting.git + BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \ + --sdk-repo "${local_sdk_repo_dir}" \ + --local-spec-repo-name "${local_repo}" \ + --sdk-repo-name SpecsTesting \ + --github-account Firebase \ + --pod-sources 'https://${BOT_TOKEN}@github.com/Firebase/SpecsTesting' "https://github.com/firebase/SpecsDev.git" "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \ + --include-pods "${targeted_pod}" --keep-repo + - name: Clean Artifacts + if: ${{ always() }} + run: pod repo remove "${local_repo}" + + buildup_SpecsTesting_repo: + needs: [buildup_SpecsTesting_repo_FirebaseCore, specs_checking] + # 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 == 'workflow_dispatch' + runs-on: macos-15 + strategy: + fail-fast: false + matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}} + env: + botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} + local_repo: specstesting + local_sdk_repo_dir: /tmp/test/firebase-ios-sdk + targeted_pod: ${{ matrix.podspec }} + steps: + - uses: actions/checkout@v4 + - name: Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - uses: actions/download-artifact@v4.1.7 + with: + name: firebase-ios-sdk + path: ${{ env.local_sdk_repo_dir }} + # Addresses flaky pushes due to missing git config on runner. + - name: Set git config + run: | + git config --global user.email "google-oss-bot@example.com" + git config --global user.name "google-oss-bot" + - name: Update SpecsTesting repo + run: | + [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true + cd scripts/create_spec_repo/ + swift build + pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsTesting.git + # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the + # command if ${ALLOWWARNINGS} is not null. + BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \ + --sdk-repo "${local_sdk_repo_dir}" \ + --local-spec-repo-name "${local_repo}" \ + --sdk-repo-name SpecsTesting \ + --github-account Firebase \ + --pod-sources 'https://${BOT_TOKEN}@github.com/Firebase/SpecsTesting' "https://github.com/firebase/SpecsDev.git" "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \ + --include-pods "${targeted_pod}" \ + --keep-repo ${ALLOWWARNINGS:+--allow-warnings} + - name: Clean Artifacts + if: ${{ always() }} + run: pod repo remove "${local_repo}" + + update_SpecsTesting_repo: + # Don't run on private repo unless it is a PR. + if: github.repository == 'Firebase/firebase-ios-sdk' && github.event.pull_request.merged == true + runs-on: macos-15 + env: + botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }} + local_repo: specstesting + podspec_repo_branch: main + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required for pulling down repo tags. + - name: Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - name: Update SpecsTesting repo setup + run: | + # Update/create a nightly tag to the head of the main branch. + podspec_repo_branch="${podspec_repo_branch}" \ + scripts/release_testing_setup.sh prerelease_testing + env: + BOT_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Push updated podspecs + run: | + # Changes in post submit tests will be fetched by getting diff between + # the HEAD and HEAD^ of the main branch. + common_commit=$(git rev-parse HEAD^) + git diff --name-only $common_commit remotes/origin/${podspec_repo_branch} > updated_files.txt + updated_podspecs=() + while IFS= read -r line; + do + echo $line + if [ ${line: -8} == ".podspec" ] + then + updated_podspecs+=("$(basename -s .podspec ${line})") + fi + done < updated_files.txt + if [ -z "$updated_podspecs" ] + then + exit + fi + cd scripts/create_spec_repo/ + swift build + pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsTesting.git + BOT_TOKEN="${botaccess}" .build/debug/spec-repo-builder --sdk-repo $(pwd) --local-spec-repo-name "${local_repo}" --sdk-repo-name SpecsTesting --github-account Firebase --pod-sources 'https://${BOT_TOKEN}@github.com/Firebase/SpecsTesting' "https://github.com/firebase/SpecsDev.git" "https://github.com/firebase/SpecsStaging.git" "https://cdn.cocoapods.org/" "FirebaseFirestoreTestingSupport" "FirebaseAuthTestingSupport" "FirebaseCombineSwift" --keep-repo --include-pods "${updated_podspecs[@]}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 67f0cab1a3e..8bacbf6a788 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,6 @@ permissions: on: pull_request: paths: - - 'scripts/release_testing_setup.sh' - '.github/workflows/release.yml' - 'Gemfile*' workflow_dispatch: @@ -22,136 +21,39 @@ concurrency: cancel-in-progress: true jobs: - specs_checking: - # 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 == 'workflow_dispatch' - runs-on: macos-14 - env: - botaccess: ${{ secrets.RELEASE_TESTING_PAT }} - local_repo: specsreleasing - podspec_repo_branch: main - outputs: - matrix: ${{ steps.generate_matrix.outputs.matrix }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Generate matrix - id: generate_matrix - run: | - cd "${GITHUB_WORKSPACE}/ReleaseTooling" - swift run manifest --sdk-repo-url "${GITHUB_WORKSPACE}" --output-file-path ./output.json --for-gha-matrix-generation - echo "::set-output name=matrix::{\"include\":$( cat output.json )}" - - name: Update SpecsReleasing repo setup - run: | - podspec_repo_branch="${podspec_repo_branch}" \ - scripts/release_testing_setup.sh release_testing - - name: Clean spec repo - run: | - git clone --quiet https://"$botaccess"@github.com/Firebase/SpecsReleasing.git "${local_repo}" - cd "${local_repo}" - # Remove all unhidden dirs, i.e. all podspec dir from the spec repo. - rm -Rf -- */ - git add . - # commit without diff will throw an error. `git diff --exit-code` can avoid such error. - git diff --staged --exit-code || git commit -m "Empty spec repo." - # Attempt to push. If it fails, print a detailed error message and exit. - git push || { - echo "--------------------------------------------------------------------------------" - echo "ERROR: Failed to push to Firebase/SpecsReleasing." - echo "This is likely due to an expired Personal Access Token (PAT)." - echo "Please take the following steps to resolve this:" - echo "1. Refresh the OSS bot's scoped access token for the Firebase/SpecsReleasing repo." - echo " This can be done in the OSS bot's GitHub account settings. Ensure the token " - echo " has the 'public_repo' scope." - echo "2. Update the 'RELEASE_TESTING_PAT' secret in this repo's settings." - echo " (https://github.com/Firebase/firebase-ios-sdk/settings/secrets/actions)" - echo "--------------------------------------------------------------------------------" - exit 1 - } - - uses: actions/upload-artifact@v4 - with: - name: firebase-ios-sdk - path: | - *.podspec - *.podspec.json - - buildup_SpecsReleasing_repo_FirebaseCore: - needs: specs_checking - # Don't run on private repo unless it is a PR. - if: github.repository == 'Firebase/firebase-ios-sdk' - runs-on: macos-15 - env: - botaccess: ${{ secrets.RELEASE_TESTING_PAT }} - local_repo: specsreleasing - local_sdk_repo_dir: /tmp/test/firebase-ios-sdk - targeted_pod: FirebaseCore - steps: - - uses: actions/checkout@v4 - - name: Set Xcode version - run: sudo xcode-select -s /Applications/Xcode_16.4.app - - uses: actions/download-artifact@v4.1.7 - with: - name: firebase-ios-sdk - path: ${{ env.local_sdk_repo_dir }} - - name: Update SpecsReleasing repo - run: | - cd scripts/create_spec_repo/ - swift build - pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git - BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \ - --sdk-repo "${local_sdk_repo_dir}" \ - --local-spec-repo-name "${local_repo}" \ - --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \ - --include-pods "${targeted_pod}" --keep-repo - - name: Clean Artifacts - if: ${{ always() }} - run: pod repo remove "${local_repo}" - - buildup_SpecsReleasing_repo: - needs: [buildup_SpecsReleasing_repo_FirebaseCore, specs_checking] - # Don't run on private repo unless it is a PR. - if: github.repository == 'Firebase/firebase-ios-sdk' || github.event_name == 'workflow_dispatch' - runs-on: macos-15 - strategy: - fail-fast: false - matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}} - env: - botaccess: ${{ secrets.RELEASE_TESTING_PAT }} - local_repo: specsreleasing - local_sdk_repo_dir: /tmp/test/firebase-ios-sdk - targeted_pod: ${{ matrix.podspec }} - steps: - - uses: actions/checkout@v4 - - name: Set Xcode version - run: sudo xcode-select -s /Applications/Xcode_16.4.app - - uses: actions/download-artifact@v4.1.7 - with: - name: firebase-ios-sdk - path: ${{ env.local_sdk_repo_dir }} - # Addresses flaky pushes due to missing git config on runner. - - name: Set git config - run: | - git config --global user.email "google-oss-bot@example.com" - git config --global user.name "google-oss-bot" - - name: Update SpecsReleasing repo - run: | - [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true - cd scripts/create_spec_repo/ - swift build - pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git - # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the - # command if ${ALLOWWARNINGS} is not null. - BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \ - --sdk-repo "${local_sdk_repo_dir}" \ - --local-spec-repo-name "${local_repo}" \ - --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \ - --include-pods "${targeted_pod}" \ - --keep-repo ${ALLOWWARNINGS:+--allow-warnings} - - name: Clean Artifacts - if: ${{ always() }} - run: pod repo remove "${local_repo}" + # TODO: The functions quickstart uses Material which isn't supported by Xcode 15 + # functions_quickstart: + # # 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' || github.event_name == 'workflow_dispatch' + # needs: buildup_SpecsReleasing_repo + # env: + # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # botaccess: ${{ secrets.RELEASE_TESTING_PAT }} + # runs-on: macos-12 + # steps: + # - uses: actions/checkout@v4 + # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - name: Setup testing repo and quickstart + # run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing + # - name: install secret googleservice-info.plist + # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \ + # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret" + # - name: Setup custom URL scheme + # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist + # - name: Test objc quickstart + # run: ([ -z $plist_secret ] || + # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true) + # - name: Test swift quickstart + # run: ([ -z $plist_secret ] || + # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift) + # - name: Remove data before upload + # if: ${{ failure() }} + # run: scripts/remove_data.sh functions + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_functions + # path: quickstart-ios/ # TODO(ncooke3): Probably should separate *release workflows into # *release-cocoapods and *release (spm). @@ -190,7 +92,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 + fetch-depth: 0 # Required for pulling down repo tags. - name: Set Xcode version run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 @@ -216,37 +118,3 @@ jobs: # with: # name: quickstart_artifacts_${{ matrix.product }} # path: quickstart-ios/ - - # TODO: The functions quickstart uses Material which isn't supported by Xcode 15 - # functions_quickstart: - # # 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' || github.event_name == 'workflow_dispatch' - # needs: buildup_SpecsReleasing_repo - # env: - # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - # botaccess: ${{ secrets.RELEASE_TESTING_PAT }} - # runs-on: macos-12 - # steps: - # - uses: actions/checkout@v4 - # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - # - name: Setup testing repo and quickstart - # run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing - # - name: install secret googleservice-info.plist - # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \ - # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret" - # - name: Setup custom URL scheme - # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist - # - name: Test objc quickstart - # run: ([ -z $plist_secret ] || - # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true) - # - name: Test swift quickstart - # run: ([ -z $plist_secret ] || - # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift) - # - name: Remove data before upload - # if: ${{ failure() }} - # run: scripts/remove_data.sh functions - # - uses: actions/upload-artifact@v4 - # if: ${{ failure() }} - # with: - # name: quickstart_artifacts_functions - # path: quickstart-ios/ diff --git a/.github/workflows/release_cocoapods.yml b/.github/workflows/release_cocoapods.yml new file mode 100644 index 00000000000..c75b089802c --- /dev/null +++ b/.github/workflows/release_cocoapods.yml @@ -0,0 +1,154 @@ +name: release_cocoapods + +permissions: + contents: read + +on: + pull_request: + paths: + - 'scripts/release_testing_setup.sh' + - '.github/workflows/release_cocoapods.yml' + - 'Gemfile*' + workflow_dispatch: + schedule: + # Run every day at 10pm (PDT) / 1am (EDT) - cron uses UTC times + - cron: '0 5 * * *' + +env: + FIREBASE_CI: true + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + specs_checking: + # 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 == 'workflow_dispatch' + runs-on: macos-14 + env: + botaccess: ${{ secrets.RELEASE_TESTING_PAT }} + local_repo: specsreleasing + podspec_repo_branch: main + outputs: + matrix: ${{ steps.generate_matrix.outputs.matrix }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required for pulling down repo tags. + - name: Generate matrix + id: generate_matrix + run: | + cd "${GITHUB_WORKSPACE}/ReleaseTooling" + swift run manifest --sdk-repo-url "${GITHUB_WORKSPACE}" --output-file-path ./output.json --for-gha-matrix-generation + echo "::set-output name=matrix::{\"include\":$( cat output.json )}" + - name: Update SpecsReleasing repo setup + run: | + podspec_repo_branch="${podspec_repo_branch}" \ + scripts/release_testing_setup.sh release_testing + - name: Clean spec repo + run: | + git clone --quiet https://"$botaccess"@github.com/Firebase/SpecsReleasing.git "${local_repo}" + cd "${local_repo}" + # Remove all unhidden dirs, i.e. all podspec dir from the spec repo. + rm -Rf -- */ + git add . + # commit without diff will throw an error. `git diff --exit-code` can avoid such error. + git diff --staged --exit-code || git commit -m "Empty spec repo." + # Attempt to push. If it fails, print a detailed error message and exit. + git push || { + echo "--------------------------------------------------------------------------------" + echo "ERROR: Failed to push to Firebase/SpecsReleasing." + echo "This is likely due to an expired Personal Access Token (PAT)." + echo "Please take the following steps to resolve this:" + echo "1. Refresh the OSS bot's scoped access token for the Firebase/SpecsReleasing repo." + echo " This can be done in the OSS bot's GitHub account settings. Ensure the token " + echo " has the 'public_repo' scope." + echo "2. Update the 'RELEASE_TESTING_PAT' secret in this repo's settings." + echo " (https://github.com/Firebase/firebase-ios-sdk/settings/secrets/actions)" + echo "--------------------------------------------------------------------------------" + exit 1 + } + - uses: actions/upload-artifact@v4 + with: + name: firebase-ios-sdk + path: | + *.podspec + *.podspec.json + + buildup_SpecsReleasing_repo_FirebaseCore: + needs: specs_checking + # Don't run on private repo unless it is a PR. + if: github.repository == 'Firebase/firebase-ios-sdk' + runs-on: macos-15 + env: + botaccess: ${{ secrets.RELEASE_TESTING_PAT }} + local_repo: specsreleasing + local_sdk_repo_dir: /tmp/test/firebase-ios-sdk + targeted_pod: FirebaseCore + steps: + - uses: actions/checkout@v4 + - name: Set Xcode version + run: sudo xcode-select -s /Applications/Xcode_16.4.app + - uses: actions/download-artifact@v4.1.7 + with: + name: firebase-ios-sdk + path: ${{ env.local_sdk_repo_dir }} + - name: Update SpecsReleasing repo + run: | + cd scripts/create_spec_repo/ + swift build + pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git + BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \ + --sdk-repo "${local_sdk_repo_dir}" \ + --local-spec-repo-name "${local_repo}" \ + --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \ + --include-pods "${targeted_pod}" --keep-repo + - name: Clean Artifacts + if: ${{ always() }} + run: pod repo remove "${local_repo}" + + buildup_SpecsReleasing_repo: + needs: [buildup_SpecsReleasing_repo_FirebaseCore, specs_checking] + # Don't run on private repo unless it is a PR. + if: github.repository == 'Firebase/firebase-ios-sdk' || github.event_name == 'workflow_dispatch' + runs-on: macos-15 + strategy: + fail-fast: false + matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}} + env: + botaccess: ${{ secrets.RELEASE_TESTING_PAT }} + local_repo: specsreleasing + local_sdk_repo_dir: /tmp/test/firebase-ios-sdk + targeted_pod: ${{ matrix.podspec }} + steps: + - uses: actions/checkout@v4 + - name: Set Xcode version + run: sudo xcode-select -s /Applications/Xcode_16.4.app + - uses: actions/download-artifact@v4.1.7 + with: + name: firebase-ios-sdk + path: ${{ env.local_sdk_repo_dir }} + # Addresses flaky pushes due to missing git config on runner. + - name: Set git config + run: | + git config --global user.email "google-oss-bot@example.com" + git config --global user.name "google-oss-bot" + - name: Update SpecsReleasing repo + run: | + [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true + cd scripts/create_spec_repo/ + swift build + pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git + # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the + # command if ${ALLOWWARNINGS} is not null. + BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \ + --sdk-repo "${local_sdk_repo_dir}" \ + --local-spec-repo-name "${local_repo}" \ + --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \ + --include-pods "${targeted_pod}" \ + --keep-repo ${ALLOWWARNINGS:+--allow-warnings} + - name: Clean Artifacts + if: ${{ always() }} + run: pod repo remove "${local_repo}" From 9ae3f4aa1d6cccc68a4a07b132985eeff0d2cea2 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 11:03:38 -0400 Subject: [PATCH 29/41] maybe: capitalization --- .github/workflows/prerelease.yml | 20 ++++++++++---------- .github/workflows/release.yml | 22 ++++++++++------------ 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 279efadc0ab..7de32dfae04 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -66,25 +66,25 @@ jobs: fail-fast: false matrix: include: - - product: performance + - product: Performance run_tests: true - - product: storage + - product: Storage run_tests: true - - product: config + - product: Config run_tests: true - - product: messaging + - product: Messaging run_tests: false - - product: inappMessaging + - product: InAppMessaging run_tests: true - - product: firestore + - product: Firestore run_tests: false - - product: database + - product: Database run_tests: false - - product: authentication + - product: Authentication run_tests: false - - product: crashlytics + - product: Crashlytics run_tests: true - - product: abtesting + - product: ABTesting run_tests: true name: 'quickstart (prerelease, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})' env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8bacbf6a788..c165f2862cf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,8 +55,6 @@ jobs: # name: quickstart_artifacts_functions # path: quickstart-ios/ - # TODO(ncooke3): Probably should separate *release workflows into - # *release-cocoapods and *release (spm). quickstart: # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' @@ -64,25 +62,25 @@ jobs: fail-fast: false matrix: include: - - product: performance + - product: Performance run_tests: true - - product: storage + - product: Storage run_tests: true - - product: config + - product: Config run_tests: true - - product: messaging + - product: Messaging run_tests: false - - product: inappMessaging + - product: InAppMessaging run_tests: true - - product: firestore + - product: Firestore run_tests: false - - product: database + - product: Database run_tests: false - - product: authentication + - product: Authentication run_tests: false - - product: crashlytics + - product: Crashlytics run_tests: true - - product: abtesting + - product: ABTesting run_tests: true name: 'quickstart (release, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})' env: From 7b6c2ba0dc774e25db45b5be36efcd331ffa6514 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 13:44:43 -0400 Subject: [PATCH 30/41] Revert "maybe: capitalization" This reverts commit 9ae3f4aa1d6cccc68a4a07b132985eeff0d2cea2. --- .github/workflows/prerelease.yml | 20 ++++++++++---------- .github/workflows/release.yml | 22 ++++++++++++---------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 7de32dfae04..279efadc0ab 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -66,25 +66,25 @@ jobs: fail-fast: false matrix: include: - - product: Performance + - product: performance run_tests: true - - product: Storage + - product: storage run_tests: true - - product: Config + - product: config run_tests: true - - product: Messaging + - product: messaging run_tests: false - - product: InAppMessaging + - product: inappMessaging run_tests: true - - product: Firestore + - product: firestore run_tests: false - - product: Database + - product: database run_tests: false - - product: Authentication + - product: authentication run_tests: false - - product: Crashlytics + - product: crashlytics run_tests: true - - product: ABTesting + - product: abtesting run_tests: true name: 'quickstart (prerelease, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})' env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c165f2862cf..8bacbf6a788 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,6 +55,8 @@ jobs: # name: quickstart_artifacts_functions # path: quickstart-ios/ + # TODO(ncooke3): Probably should separate *release workflows into + # *release-cocoapods and *release (spm). quickstart: # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' @@ -62,25 +64,25 @@ jobs: fail-fast: false matrix: include: - - product: Performance + - product: performance run_tests: true - - product: Storage + - product: storage run_tests: true - - product: Config + - product: config run_tests: true - - product: Messaging + - product: messaging run_tests: false - - product: InAppMessaging + - product: inappMessaging run_tests: true - - product: Firestore + - product: firestore run_tests: false - - product: Database + - product: database run_tests: false - - product: Authentication + - product: authentication run_tests: false - - product: Crashlytics + - product: crashlytics run_tests: true - - product: ABTesting + - product: abtesting run_tests: true name: 'quickstart (release, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})' env: From 9806577bcc93a8c232441b924d83ffe34683fe6c Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 15:39:39 -0400 Subject: [PATCH 31/41] Reapply "maybe: capitalization" This reverts commit 7b6c2ba0dc774e25db45b5be36efcd331ffa6514. --- .github/workflows/prerelease.yml | 20 ++++++++++---------- .github/workflows/release.yml | 22 ++++++++++------------ 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 279efadc0ab..7de32dfae04 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -66,25 +66,25 @@ jobs: fail-fast: false matrix: include: - - product: performance + - product: Performance run_tests: true - - product: storage + - product: Storage run_tests: true - - product: config + - product: Config run_tests: true - - product: messaging + - product: Messaging run_tests: false - - product: inappMessaging + - product: InAppMessaging run_tests: true - - product: firestore + - product: Firestore run_tests: false - - product: database + - product: Database run_tests: false - - product: authentication + - product: Authentication run_tests: false - - product: crashlytics + - product: Crashlytics run_tests: true - - product: abtesting + - product: ABTesting run_tests: true name: 'quickstart (prerelease, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})' env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8bacbf6a788..c165f2862cf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,8 +55,6 @@ jobs: # name: quickstart_artifacts_functions # path: quickstart-ios/ - # TODO(ncooke3): Probably should separate *release workflows into - # *release-cocoapods and *release (spm). quickstart: # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' @@ -64,25 +62,25 @@ jobs: fail-fast: false matrix: include: - - product: performance + - product: Performance run_tests: true - - product: storage + - product: Storage run_tests: true - - product: config + - product: Config run_tests: true - - product: messaging + - product: Messaging run_tests: false - - product: inappMessaging + - product: InAppMessaging run_tests: true - - product: firestore + - product: Firestore run_tests: false - - product: database + - product: Database run_tests: false - - product: authentication + - product: Authentication run_tests: false - - product: crashlytics + - product: Crashlytics run_tests: true - - product: abtesting + - product: ABTesting run_tests: true name: 'quickstart (release, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})' env: From 5173820d7fb149afb730f7b7e99158e5984ff959 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 15:54:30 -0400 Subject: [PATCH 32/41] install xcpretty --- .github/workflows/prerelease.yml | 2 ++ .github/workflows/release.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 7de32dfae04..80fc15eb2fb 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -94,6 +94,8 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Prereqs + run: gem install xcpretty - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup testing repo and quickstart diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c165f2862cf..3b8484ee894 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,6 +91,8 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 # Required for pulling down repo tags. + - name: Prereqs + run: gem install xcpretty - name: Set Xcode version run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 From a6efbdf064dc6923e17a9ea67b40fb4e9bd9388d Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 16:12:10 -0400 Subject: [PATCH 33/41] move --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b8484ee894..8b4c69f6cfc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,11 +91,11 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 # Required for pulling down repo tags. - - name: Prereqs - run: gem install xcpretty - name: Set Xcode version run: sudo xcode-select -s /Applications/Xcode_16.4.app - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Prereqs + run: gem install xcpretty - name: Setup testing repo and quickstart run: QUICKSTART_BRANCH=nc/quickstarts scripts/setup_quickstart_spm.sh ${{ matrix.product }} nightly_release_testing - name: Install Secret GoogleService-Info.plist From 35efc7459451acbc12d7502623309d2f18cc0c12 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 16:24:24 -0400 Subject: [PATCH 34/41] storage --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8b4c69f6cfc..70b4db0beaf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,7 +65,7 @@ jobs: - product: Performance run_tests: true - product: Storage - run_tests: true + run_tests: false - product: Config run_tests: true - product: Messaging From 80750ebb2c864fe5d7854154e00b2e42e9e98904 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 16:28:03 -0400 Subject: [PATCH 35/41] prerelease, if changes, todo --- .github/workflows/prerelease.yml | 9 +++++---- .github/workflows/release.yml | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 80fc15eb2fb..006245aaee8 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -61,7 +61,9 @@ jobs: quickstart: # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' + if: | + github.repository == 'firebase/firebase-ios-sdk' && + contains(fromJSON('["schedule", "pull_request", "workflow_dispatch"]'), github.event_name) strategy: fail-fast: false matrix: @@ -69,7 +71,7 @@ jobs: - product: Performance run_tests: true - product: Storage - run_tests: true + run_tests: false - product: Config run_tests: true - product: Messaging @@ -112,8 +114,7 @@ jobs: timeout_minutes: 15 max_attempts: 3 retry_wait_seconds: 120 - # TODO(ncooke3): Remove SPM=true and instead change default value in quickstart-ios/scripts/test.sh - command: SPM=true DIR=${{ matrix.product }} scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} + command: DIR=${{ matrix.product }} scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} # Failure sequence to upload artifact. - name: Remove data before upload. # if: ${{ failure() }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 70b4db0beaf..92a71e0f392 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,8 +56,9 @@ jobs: # path: quickstart-ios/ quickstart: - # 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 == 'workflow_dispatch' || github.event_name == 'pull_request' + if: | + github.repository == 'firebase/firebase-ios-sdk' && + contains(fromJSON('["schedule", "pull_request", "workflow_dispatch"]'), github.event_name) strategy: fail-fast: false matrix: @@ -108,8 +109,7 @@ jobs: timeout_minutes: 15 max_attempts: 3 retry_wait_seconds: 120 - # TODO(ncooke3): Remove SPM=true and instead change default value in quickstart-ios/scripts/test.sh - command: SPM=true DIR=${{ matrix.product }} scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} + command: DIR=${{ matrix.product }} scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} - name: Remove data before upload # if: ${{ failure() }} run: scripts/remove_data.sh ${{ matrix.product }} From dc506ddd84227be210475077e11bf41462a37df0 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 16:59:13 -0400 Subject: [PATCH 36/41] zip testing --- .github/workflows/zip.yml | 2 +- scripts/remove_data.sh | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index b1505a3f27d..f85cc636fd9 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -32,7 +32,7 @@ on: # - https://github.com/firebase/firebase-ios-sdk/actions/runs/17335533279 description: 'Run ID of a previous successful zip workflow to use for quickstart testing' required: false - default: '' + default: '17965877651' #TODO(ncooke3): Revert back to ''. concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} diff --git a/scripts/remove_data.sh b/scripts/remove_data.sh index 04dcf25ae8f..90abf99b50b 100755 --- a/scripts/remove_data.sh +++ b/scripts/remove_data.sh @@ -16,10 +16,20 @@ set -xe SDK="$1" +if [[ -z "$SDK" ]]; then + echo "Error: SDK name not provided." >&2 + echo "Usage: $0 " >&2 + exit 1 +fi + DIR="${SDK}" -if [[ ! -z "$LEGACY" ]]; then - DIR="${SDK}/Legacy${SDK}Quickstart" +TARGET_DIR="quickstart-ios/${DIR}" + +if [ ! -d "$TARGET_DIR" ]; then + echo "Error: Directory '$TARGET_DIR' not found." >&2 + echo "Please provide a valid SDK name." >&2 + exit 1 fi -rm -f quickstart-ios/"${DIR}"/GoogleService-Info.plist +rm -f "${TARGET_DIR}"/GoogleService-Info.plist From 4b41db1fc32ab2334927afb27f91e78c3607b768 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 17:00:05 -0400 Subject: [PATCH 37/41] break --- .github/workflows/zip.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index f85cc636fd9..a237b8f6bcc 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -6,6 +6,8 @@ permissions: actions: read contents: read + break + on: pull_request: paths: From c2dd4d8d62e0d5331327376afe2199819a0a536b Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 17:01:46 -0400 Subject: [PATCH 38/41] revertable: disable upload artifact --- .github/workflows/zip.yml | 90 +++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index a237b8f6bcc..261433d276d 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -166,11 +166,11 @@ jobs: - name: Remove data before upload if: ${{ failure() }} run: scripts/remove_data.sh abtesting - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_abtesting - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_abtesting + # path: quickstart-ios/ quickstart_framework_auth: needs: package-head @@ -217,11 +217,11 @@ jobs: - name: Remove data before upload if: ${{ failure() }} run: scripts/remove_data.sh authentiation - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_auth - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_auth + # path: quickstart-ios/ quickstart_framework_config: needs: package-head @@ -266,11 +266,11 @@ jobs: - name: Remove data before upload if: ${{ failure() }} run: scripts/remove_data.sh config - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_config - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_config + # path: quickstart-ios/ quickstart_framework_crashlytics: needs: package-head @@ -332,11 +332,11 @@ jobs: - name: Remove data before upload if: ${{ failure() }} run: scripts/remove_data.sh crashlytics - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_crashlytics - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_crashlytics + # path: quickstart-ios/ quickstart_framework_database: needs: package-head @@ -384,11 +384,11 @@ jobs: - name: Remove data before upload if: ${{ failure() }} run: scripts/remove_data.sh database - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts database - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts database + # path: quickstart-ios/ quickstart_framework_firestore: needs: package-head @@ -441,11 +441,11 @@ jobs: - name: Remove data before upload and zip directory to reduce upload size. if: ${{ failure() }} run: scripts/remove_data.sh firestore; zip -r --symlinks quickstart_artifacts_firestore.zip quickstart-ios/ - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_firestore_${{ matrix.artifact }}_${{ matrix.build-env.os }} - path: quickstart_artifacts_firestore.zip + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_firestore_${{ matrix.artifact }}_${{ matrix.build-env.os }} + # path: quickstart_artifacts_firestore.zip check_framework_firestore_symbols: needs: package-head @@ -526,11 +526,11 @@ jobs: - name: Remove data before upload if: ${{ failure() }} run: scripts/remove_data.sh inappmessaging - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_inappmessaging - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_inappmessaging + # path: quickstart-ios/ quickstart_framework_messaging: needs: package-head @@ -579,11 +579,11 @@ jobs: - name: Remove data before upload if: ${{ failure() }} run: scripts/remove_data.sh messaging - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_messaging - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_messaging + # path: quickstart-ios/ quickstart_framework_storage: needs: package-head @@ -633,8 +633,8 @@ jobs: - name: Remove data before upload if: ${{ failure() }} run: scripts/remove_data.sh storage - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_storage - path: quickstart-ios/ + # - uses: actions/upload-artifact@v4 + # if: ${{ failure() }} + # with: + # name: quickstart_artifacts_storage + # path: quickstart-ios/ From b99533183cfb675d5a86d2c2d367e1df11d9076c Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 17:02:07 -0400 Subject: [PATCH 39/41] unbreak --- .github/workflows/zip.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index 261433d276d..381f925ac54 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -6,8 +6,6 @@ permissions: actions: read contents: read - break - on: pull_request: paths: From 861e6b117751483b2dbd5707947f5bf106e07707 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 17:04:49 -0400 Subject: [PATCH 40/41] open --- .github/workflows/prerelease.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 006245aaee8..b26e22cde33 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -6,7 +6,7 @@ permissions: on: pull_request: # closed will be triggered when a pull request is merged. This is to keep https://github.com/firebase/SpecsTesting up to date. - types: [closed] + # types: [closed] # TODO(ncooke3): Uncomment. paths: - '.github/workflows/prerelease.yml' workflow_dispatch: From 628d5377a9a3f8d562f1e5bb6d9d4794ba41bea6 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Wed, 24 Sep 2025 17:15:17 -0400 Subject: [PATCH 41/41] oh --- .github/workflows/zip.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index 381f925ac54..570bce868fd 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -32,7 +32,7 @@ on: # - https://github.com/firebase/firebase-ios-sdk/actions/runs/17335533279 description: 'Run ID of a previous successful zip workflow to use for quickstart testing' required: false - default: '17965877651' #TODO(ncooke3): Revert back to ''. + default: '' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}