From e73697d29f7d586ce48904242aca4ecc4811b158 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Thu, 28 Aug 2025 12:23:35 -0400 Subject: [PATCH 1/5] refactor(ci): Consolidate quickstart jobs in release.yml --- .github/workflows/release.yml | 411 ++++++++-------------------------- 1 file changed, 93 insertions(+), 318 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0c45c2b786d..9934eed97b8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -150,170 +150,99 @@ jobs: if: ${{ always() }} run: pod repo remove "${local_repo}" - abtesting_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-15 - steps: - - uses: actions/checkout@v4 - - 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 - env: - LEGACY: true - run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \ - quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret" - - name: Test swift quickstart - env: - LEGACY: true - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true) - - name: Remove data before upload - env: - LEGACY: true - if: ${{ failure() }} - run: scripts/remove_data.sh config - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_abtesting - path: quickstart-ios/ - - auth_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-15 - steps: - - uses: actions/checkout@v4 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \ - quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret" - - name: Test swift quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false) - - name: Remove data before upload - if: ${{ failure() }} - run: scripts/remove_data.sh authentication - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_auth - path: quickstart-ios/ - - crashlytics_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-15 - steps: - - uses: actions/checkout@v4 - - 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 - env: - LEGACY: true - run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing - - 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: Test swift quickstart - env: - LEGACY: true - run: | - 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/ - ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift) - - name: Remove data before upload - env: - LEGACY: true - if: ${{ failure() }} - run: scripts/remove_data.sh crashlytics - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_crashlytics - path: quickstart-ios/ - - database_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-15 - steps: - - uses: actions/checkout@v4 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \ - quickstart-ios/database/GoogleService-Info.plist "$plist_secret" - - name: Test objc quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false) - - name: Test swift quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift) - - 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/ - - firestore_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-15 - steps: - - uses: actions/checkout@v4 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \ - quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret" - - name: Test swift quickstart - run: ([ -z $plist_secret ] || - scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false) - - name: Remove data before upload - if: ${{ failure() }} - run: scripts/remove_data.sh firestore - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_firestore - 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 == 'pull_request' || github.event_name == 'workflow_dispatch' + needs: buildup_SpecsReleasing_repo + strategy: + matrix: + include: + - product: Performance + run_tests: true + swift: true + # - product: Storage + # run_tests: true + # swift: true + # - product: Config + # run_tests: true + # objc: true + # - product: Messaging + # run_tests: false + # objc: true + # swift: true + # - product: InAppMessaging + # run_tests: true + # objc: true + # swift: true + # - product: Firestore + # run_tests: false + # objc: true + # swift: false + # - product: Database + # run_tests: false + # objc: true + # swift: true + # - product: Authentication + # run_tests: false + # objc: true + # swift: false + # - product: Crashlytics + # run_tests: true + # objc: false + # swift: 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 + # objc: true + # swift: false + env: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + botaccess: ${{ secrets.RELEASE_TESTING_PAT }} + LEGACY: ${{ matrix.is_legacy && true || '' }} + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.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 Obj-C quickstart + if: matrix.objc == true + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 + with: + timeout_minutes: 15 + max_attempts: 3 + retry_wait_seconds: 120 + command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} + - name: Build Swift quickstart + if: matrix.swift == true + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 + with: + timeout_minutes: 15 + max_attempts: 3 + retry_wait_seconds: 120 + command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} swift + - name: Remove data before upload + # 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/ # TODO: The functions quickstart uses Material which isn't supported by Xcode 15 # functions_quickstart: @@ -349,157 +278,3 @@ jobs: # with: # name: quickstart_artifacts_functions # path: quickstart-ios/ - - inappmessaging_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-15 - steps: - - uses: actions/checkout@v4 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing - - name: install secret googleservice-info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \ - quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret" - - name: Test objc quickstart - run: ([ -z $plist_secret ] || - scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true) - - name: Test swift quickstart - run: ([ -z $plist_secret ] || - scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift) - - 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/ - - messaging_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-15 - steps: - - uses: actions/checkout@v4 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \ - quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret" - - name: Test objc quickstart - run: ([ -z $plist_secret ] || - scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false) - - name: Test swift quickstart - run: ([ -z $plist_secret ] || - scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift) - - 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/ - - remoteconfig_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-15 - steps: - - uses: actions/checkout@v4 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \ - quickstart-ios/config/GoogleService-Info.plist "$plist_secret" - - name: Test Swift Quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true) - - 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/ - - storage_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 }} - LEGACY: true - runs-on: macos-15 - steps: - - uses: actions/checkout@v4 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing - - 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 swift quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift) - - 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/ - - performance_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-15 - steps: - - uses: actions/checkout@v4 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \ - quickstart-ios/performance/GoogleService-Info.plist "$plist_secret" - - name: Test swift quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift) - - name: Remove data before upload - if: ${{ failure() }} - run: scripts/remove_data.sh performance - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: quickstart_artifacts_performance - path: quickstart-ios/ From e9028176eecf8a4c911a7f6d5db3764b5b0a7f2f Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Thu, 28 Aug 2025 17:19:12 -0400 Subject: [PATCH 2/5] Update release.yml --- .github/workflows/release.yml | 80 +++++++++++++++++------------------ 1 file changed, 39 insertions(+), 41 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9934eed97b8..cef32c6f6d6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -152,7 +152,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 == 'pull_request' || github.event_name == 'workflow_dispatch' + if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch' needs: buildup_SpecsReleasing_repo strategy: matrix: @@ -160,46 +160,44 @@ quickstart: - product: Performance run_tests: true swift: true - # - product: Storage - # run_tests: true - # swift: true - # - product: Config - # run_tests: true - # objc: true - # - product: Messaging - # run_tests: false - # objc: true - # swift: true - # - product: InAppMessaging - # run_tests: true - # objc: true - # swift: true - # - product: Firestore - # run_tests: false - # objc: true - # swift: false - # - product: Database - # run_tests: false - # objc: true - # swift: true - # - product: Authentication - # run_tests: false - # objc: true - # swift: false - # - product: Crashlytics - # run_tests: true - # objc: false - # swift: 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 - # objc: true - # swift: false + - product: Storage + run_tests: true + swift: true + is_legacy: true + - product: Config + run_tests: true + objc: true + - product: Messaging + run_tests: false + objc: true + swift: true + - product: InAppMessaging + run_tests: true + objc: true + swift: true + - product: Firestore + run_tests: false + objc: true + - product: Database + run_tests: false + objc: true + swift: true + - product: Authentication + run_tests: false + objc: true + - product: Crashlytics + run_tests: true + swift: 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 + objc: true + is_legacy: true env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} botaccess: ${{ secrets.RELEASE_TESTING_PAT }} From c95640ece45c10621d312cd91691e62cb1b61555 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Thu, 28 Aug 2025 17:19:47 -0400 Subject: [PATCH 3/5] Update release.yml --- .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 cef32c6f6d6..722d91fcfbd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -234,10 +234,10 @@ quickstart: retry_wait_seconds: 120 command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} swift - name: Remove data before upload - # if: ${{ failure() }} + if: ${{ failure() }} run: scripts/remove_data.sh ${{ matrix.product }} - uses: actions/upload-artifact@v4 - # if: ${{ failure() }} + if: ${{ failure() }} with: name: quickstart_artifacts_${{ matrix.product }} path: quickstart-ios/ From 925fe82f279ab44efecaab3e5aaf1e3da750115c Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Thu, 28 Aug 2025 17:22:44 -0400 Subject: [PATCH 4/5] Update release.yml --- .github/workflows/release.yml | 182 +++++++++++++++++----------------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 722d91fcfbd..fca8562220c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -150,97 +150,97 @@ jobs: if: ${{ always() }} run: pod repo remove "${local_repo}" -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 - strategy: - matrix: - include: - - product: Performance - run_tests: true - swift: true - - product: Storage - run_tests: true - swift: true - is_legacy: true - - product: Config - run_tests: true - objc: true - - product: Messaging - run_tests: false - objc: true - swift: true - - product: InAppMessaging - run_tests: true - objc: true - swift: true - - product: Firestore - run_tests: false - objc: true - - product: Database - run_tests: false - objc: true - swift: true - - product: Authentication - run_tests: false - objc: true - - product: Crashlytics - run_tests: true - swift: 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 - objc: 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 - - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.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 Obj-C quickstart - if: matrix.objc == true - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 - with: - timeout_minutes: 15 - max_attempts: 3 - retry_wait_seconds: 120 - command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} - - name: Build Swift quickstart - if: matrix.swift == true - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 - with: - timeout_minutes: 15 - max_attempts: 3 - retry_wait_seconds: 120 - command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} swift - - name: Remove data before upload - 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/ + 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 + strategy: + matrix: + include: + - product: Performance + run_tests: true + swift: true + - product: Storage + run_tests: true + swift: true + is_legacy: true + - product: Config + run_tests: true + objc: true + - product: Messaging + run_tests: false + objc: true + swift: true + - product: InAppMessaging + run_tests: true + objc: true + swift: true + - product: Firestore + run_tests: false + objc: true + - product: Database + run_tests: false + objc: true + swift: true + - product: Authentication + run_tests: false + objc: true + - product: Crashlytics + run_tests: true + swift: 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 + objc: 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 + - 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: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.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 Obj-C quickstart + if: matrix.objc == true + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 + with: + timeout_minutes: 15 + max_attempts: 3 + retry_wait_seconds: 120 + command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} + - name: Build Swift quickstart + if: matrix.swift == true + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 + with: + timeout_minutes: 15 + max_attempts: 3 + retry_wait_seconds: 120 + command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} swift + - name: Remove data before upload + 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/ # TODO: The functions quickstart uses Material which isn't supported by Xcode 15 # functions_quickstart: From 5a3f83747b22fffd47f530364156abbcabc7a862 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Fri, 29 Aug 2025 11:04:03 -0400 Subject: [PATCH 5/5] review --- .github/workflows/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fca8562220c..32c40274ecc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,5 +1,8 @@ name: release +permissions: + contents: read + on: pull_request: paths: