From 0f1c1c7a7eed5582e1bdea650abd3bd88b353393 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Mon, 24 Nov 2025 10:28:26 -0500 Subject: [PATCH 01/15] fix: messaging cron --- .github/workflows/messaging.yml | 283 ++++++++++++++++---------------- 1 file changed, 142 insertions(+), 141 deletions(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index f1ab4cb2f1f..b9e72c2a3e0 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -32,69 +32,69 @@ concurrency: cancel-in-progress: true jobs: - spm: - uses: ./.github/workflows/common.yml - with: - target: MessagingUnit - buildonly_platforms: tvOS, macOS, watchOS, catalyst, visionOS + # spm: + # uses: ./.github/workflows/common.yml + # with: + # target: MessagingUnit + # buildonly_platforms: tvOS, macOS, watchOS, catalyst, visionOS - catalyst: - uses: ./.github/workflows/common_catalyst.yml - with: - product: FirebaseMessaging - target: FirebaseMessaging-Unit-unit + # catalyst: + # uses: ./.github/workflows/common_catalyst.yml + # with: + # product: FirebaseMessaging + # target: FirebaseMessaging-Unit-unit - pod_lib_lint: - strategy: - matrix: - product: [FirebaseMessagingInterop, FirebaseMessaging] - uses: ./.github/workflows/common_cocoapods.yml - with: - product: ${{ matrix.product }} + # pod_lib_lint: + # strategy: + # matrix: + # product: [FirebaseMessagingInterop, FirebaseMessaging] + # uses: ./.github/workflows/common_cocoapods.yml + # with: + # product: ${{ matrix.product }} - # TODO(#12205) Update the build.sh script for this job from "test" instead of "build" - messaging-integration-tests: - # Don't run on private repo unless it is a PR. - if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - runs-on: macos-15 - steps: - - uses: actions/checkout@v4 - - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - with: - cache_key: integration - - name: Configure test keychain - run: scripts/configure_test_keychain.sh - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - name: Setup Bundler - run: scripts/setup_bundler.sh - - name: Install xcpretty - run: gem install xcpretty - - name: Install Secret GoogleService-Info.plist - run: | - mkdir FirebaseMessaging/Tests/IntegrationTests/Resources - scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ - FirebaseMessaging/Tests/IntegrationTests/Resources/GoogleService-Info.plist "$plist_secret" - - name: BuildAndTest - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/build.sh Messaging all) + # # TODO(#12205) Update the build.sh script for this job from "test" instead of "build" + # messaging-integration-tests: + # # Don't run on private repo unless it is a PR. + # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' + # env: + # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # runs-on: macos-15 + # steps: + # - uses: actions/checkout@v4 + # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + # with: + # cache_key: integration + # - name: Configure test keychain + # run: scripts/configure_test_keychain.sh + # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - name: Xcode + # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + # - name: Setup Bundler + # run: scripts/setup_bundler.sh + # - name: Install xcpretty + # run: gem install xcpretty + # - name: Install Secret GoogleService-Info.plist + # run: | + # mkdir FirebaseMessaging/Tests/IntegrationTests/Resources + # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ + # FirebaseMessaging/Tests/IntegrationTests/Resources/GoogleService-Info.plist "$plist_secret" + # - name: BuildAndTest + # run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/build.sh Messaging all) - quickstart: - uses: ./.github/workflows/common_quickstart.yml - with: - product: 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 - secrets: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # quickstart: + # uses: ./.github/workflows/common_quickstart.yml + # with: + # product: 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 + # secrets: + # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart-ftl-cron-only: - # Don't run on private repo. - if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' + # if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' + if: github.repository == 'Firebase/firebase-ios-sdk' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} runs-on: macos-15 @@ -107,6 +107,7 @@ jobs: - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart + # run: scripts/setup_quickstart_spm.sh messaging run: scripts/setup_quickstart.sh messaging - name: Install Secret GoogleService-Info.plist run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \ @@ -124,91 +125,91 @@ jobs: testapp_dir: quickstart-ios/build-for-testing test_type: "xctest" - messaging-cron-only: - uses: ./.github/workflows/common_cocoapods_cron.yml - with: - product: FirebaseMessaging - platforms: '[ "ios", "tvos", "macos --skip-tests", "watchos --skip-tests" ]' - flags: '[ "--use-static-frameworks" ]' + # messaging-cron-only: + # uses: ./.github/workflows/common_cocoapods_cron.yml + # with: + # product: FirebaseMessaging + # platforms: '[ "ios", "tvos", "macos --skip-tests", "watchos --skip-tests" ]' + # flags: '[ "--use-static-frameworks" ]' - messaging-sample-build-test: - # 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' - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - runs-on: macos-15 - steps: - - uses: actions/checkout@v4 - - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - with: - cache_key: sample${{ matrix.os }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - name: Setup Bundler - run: scripts/setup_bundler.sh - - name: Install Secret GoogleService-Info.plist - run: | - scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ - FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" - - name: Prereqs - run: scripts/install_prereqs.sh MessagingSample iOS - - name: Build - run: ([ -z $plist_secret ] || scripts/build.sh MessagingSample iOS) + # messaging-sample-build-test: + # # 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' + # env: + # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # runs-on: macos-15 + # steps: + # - uses: actions/checkout@v4 + # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + # with: + # cache_key: sample${{ matrix.os }} + # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - name: Xcode + # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + # - name: Setup Bundler + # run: scripts/setup_bundler.sh + # - name: Install Secret GoogleService-Info.plist + # run: | + # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ + # FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" + # - name: Prereqs + # run: scripts/install_prereqs.sh MessagingSample iOS + # - name: Build + # run: ([ -z $plist_secret ] || scripts/build.sh MessagingSample iOS) - messaging-swiftui-sample-build-test: - # 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' - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - runs-on: macos-15 - steps: - - uses: actions/checkout@v4 - - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - with: - cache_key: sample${{ matrix.os }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Setup Bundler - run: scripts/setup_bundler.sh - - name: Install Secret GoogleService-Info.plist - run: | - scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ - FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" - - name: Prereqs - run: scripts/install_prereqs.sh SwiftUISample iOS - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - name: Build - run: ([ -z $plist_secret ] || scripts/build.sh SwiftUISample iOS) + # messaging-swiftui-sample-build-test: + # # 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' + # env: + # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # runs-on: macos-15 + # steps: + # - uses: actions/checkout@v4 + # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + # with: + # cache_key: sample${{ matrix.os }} + # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - name: Setup Bundler + # run: scripts/setup_bundler.sh + # - name: Install Secret GoogleService-Info.plist + # run: | + # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ + # FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" + # - name: Prereqs + # run: scripts/install_prereqs.sh SwiftUISample iOS + # - name: Xcode + # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + # - name: Build + # run: ([ -z $plist_secret ] || scripts/build.sh SwiftUISample iOS) - messaging-watchos-standalone-sample-build-test: - # 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' - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - runs-on: macos-15 - steps: - - uses: actions/checkout@v4 - - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - with: - cache_key: watch-sample${{ matrix.os }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Setup Bundler - run: scripts/setup_bundler.sh - - name: Install Secret GoogleService-Info.plist - run: | - scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ - FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" - - name: Prereqs - run: scripts/install_prereqs.sh MessagingSampleStandaloneWatchApp watchOS - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - name: Build - run: ([ -z $plist_secret ] || scripts/build.sh MessagingSampleStandaloneWatchApp watchOS) - - name: Upload xcodebuild logs - if: failure() - uses: actions/upload-artifact@v4 - with: - name: xcodebuild-logs-${{ matrix.target }} - path: xcodebuild-*.log + # messaging-watchos-standalone-sample-build-test: + # # 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' + # env: + # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # runs-on: macos-15 + # steps: + # - uses: actions/checkout@v4 + # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + # with: + # cache_key: watch-sample${{ matrix.os }} + # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - name: Setup Bundler + # run: scripts/setup_bundler.sh + # - name: Install Secret GoogleService-Info.plist + # run: | + # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ + # FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" + # - name: Prereqs + # run: scripts/install_prereqs.sh MessagingSampleStandaloneWatchApp watchOS + # - name: Xcode + # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + # - name: Build + # run: ([ -z $plist_secret ] || scripts/build.sh MessagingSampleStandaloneWatchApp watchOS) + # - name: Upload xcodebuild logs + # if: failure() + # uses: actions/upload-artifact@v4 + # with: + # name: xcodebuild-logs-${{ matrix.target }} + # path: xcodebuild-*.log From 8d808e3717d5e7b6d52b84f0a20b1b6f35f28653 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Mon, 24 Nov 2025 10:34:26 -0500 Subject: [PATCH 02/15] fix --- .github/workflows/messaging.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index b9e72c2a3e0..5a9716aee0b 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -107,8 +107,8 @@ jobs: - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart - # run: scripts/setup_quickstart_spm.sh messaging - run: scripts/setup_quickstart.sh messaging + run: scripts/setup_quickstart_spm.sh messaging + # run: scripts/setup_quickstart.sh messaging - 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" From bc57179ed631071f0f38c5ee6bcdf5c21188241f Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Mon, 24 Nov 2025 11:18:45 -0500 Subject: [PATCH 03/15] SPM=true --- scripts/test_quickstart_ftl.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/test_quickstart_ftl.sh b/scripts/test_quickstart_ftl.sh index 76148af2c5c..4abd960f4c2 100755 --- a/scripts/test_quickstart_ftl.sh +++ b/scripts/test_quickstart_ftl.sh @@ -30,9 +30,9 @@ source scripts/check_secrets.sh if check_secrets; then cd quickstart-ios if [ "$language" = "swift" ]; then - have_secrets=true SAMPLE="$sample" SWIFT_SUFFIX="Swift" ./scripts/build-for-testing.sh + have_secrets=true SAMPLE="$sample" SPM=true SWIFT_SUFFIX="Swift" ./scripts/build-for-testing.sh else - have_secrets=true SAMPLE="$sample" ./scripts/build-for-testing.sh + have_secrets=true SAMPLE="$sample" SPM=true ./scripts/build-for-testing.sh fi fi From 1c4e0661c73b6be96f2b1cab182b6b67bb503612 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Mon, 24 Nov 2025 11:22:44 -0500 Subject: [PATCH 04/15] skip ruby, skip retry --- .github/workflows/messaging.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 5a9716aee0b..0d6268498f1 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -100,7 +100,7 @@ jobs: runs-on: macos-15 steps: - uses: actions/checkout@v4 - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - uses: actions/setup-python@v5 with: python-version: '3.11' @@ -112,12 +112,16 @@ jobs: - 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: Build objc quickstart + # run: ([ -z $plist_secret ] || + # scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging) + # - name: Build swift quickstart + # run: ([ -z $plist_secret ] || + # scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging swift) - name: Build objc quickstart - run: ([ -z $plist_secret ] || - scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging) + run: ([ -z $plist_secret ] || scripts/test_quickstart_ftl.sh Messaging) - name: Build swift quickstart - run: ([ -z $plist_secret ] || - scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging swift) + run: ([ -z $plist_secret ] || scripts/test_quickstart_ftl.sh Messaging swift) - id: ftl_test uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4 with: From 9308e5879b3d0a56f95b37512da3c5d693371bd5 Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Mon, 24 Nov 2025 11:36:18 -0500 Subject: [PATCH 05/15] fix unbounded var --- scripts/test_quickstart_ftl.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/test_quickstart_ftl.sh b/scripts/test_quickstart_ftl.sh index 4abd960f4c2..df91ca616b2 100755 --- a/scripts/test_quickstart_ftl.sh +++ b/scripts/test_quickstart_ftl.sh @@ -29,10 +29,11 @@ source scripts/check_secrets.sh if check_secrets; then cd quickstart-ios + DIR=$(echo "$sample" | tr '[:upper:]' '[:lower:]') if [ "$language" = "swift" ]; then - have_secrets=true SAMPLE="$sample" SPM=true SWIFT_SUFFIX="Swift" ./scripts/build-for-testing.sh + have_secrets=true SAMPLE="$sample" SPM=true SWIFT_SUFFIX="Swift" DIR="$DIR" ./scripts/build-for-testing.sh else - have_secrets=true SAMPLE="$sample" SPM=true ./scripts/build-for-testing.sh + have_secrets=true SAMPLE="$sample" SPM=true DIR="$DIR" ./scripts/build-for-testing.sh fi fi From 1a2af29cd5743899fa56cd9764bf2f396e6e89ad Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Mon, 24 Nov 2025 12:49:31 -0500 Subject: [PATCH 06/15] checkout pending branch --- scripts/test_quickstart_ftl.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/test_quickstart_ftl.sh b/scripts/test_quickstart_ftl.sh index df91ca616b2..f17d1bb0300 100755 --- a/scripts/test_quickstart_ftl.sh +++ b/scripts/test_quickstart_ftl.sh @@ -27,8 +27,9 @@ language="${2-}" # Source function to check if CI secrets are available. source scripts/check_secrets.sh -if check_secrets; then +if check_secrets || true; then cd quickstart-ios + git checkout nc/bft DIR=$(echo "$sample" | tr '[:upper:]' '[:lower:]') if [ "$language" = "swift" ]; then have_secrets=true SAMPLE="$sample" SPM=true SWIFT_SUFFIX="Swift" DIR="$DIR" ./scripts/build-for-testing.sh From 10ef7f9ad3c83cd1ead26e0b48089e225e909bbd Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Mon, 24 Nov 2025 13:38:07 -0500 Subject: [PATCH 07/15] remove double build --- .github/workflows/messaging.yml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 0d6268498f1..ecc3e894a1c 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -108,20 +108,12 @@ jobs: run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart_spm.sh messaging - # run: scripts/setup_quickstart.sh messaging - 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: Build objc quickstart - # run: ([ -z $plist_secret ] || - # scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging) - # - name: Build swift quickstart - # run: ([ -z $plist_secret ] || - # scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging swift) - - name: Build objc quickstart - run: ([ -z $plist_secret ] || scripts/test_quickstart_ftl.sh Messaging) - - name: Build swift quickstart - run: ([ -z $plist_secret ] || scripts/test_quickstart_ftl.sh Messaging swift) + - name: Build quickstart + run: ([ -z $plist_secret ] || + scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging) - id: ftl_test uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4 with: From 00b2918a180cf5e2c7894e3870853f56dad72249 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Mon, 24 Nov 2025 15:31:15 -0500 Subject: [PATCH 08/15] Apply suggestions from code review --- scripts/test_quickstart_ftl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/test_quickstart_ftl.sh b/scripts/test_quickstart_ftl.sh index f17d1bb0300..dfeee3cf1dc 100755 --- a/scripts/test_quickstart_ftl.sh +++ b/scripts/test_quickstart_ftl.sh @@ -27,7 +27,7 @@ language="${2-}" # Source function to check if CI secrets are available. source scripts/check_secrets.sh -if check_secrets || true; then +if check_secrets; then cd quickstart-ios git checkout nc/bft DIR=$(echo "$sample" | tr '[:upper:]' '[:lower:]') From 596ce403899d63dea7ed9062af2a6e5b2b1c3f6a Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Mon, 24 Nov 2025 15:32:35 -0500 Subject: [PATCH 09/15] Apply suggestion from @ncooke3 --- .github/workflows/messaging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index ecc3e894a1c..cbfba76dc7c 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -107,7 +107,7 @@ jobs: - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart - run: scripts/setup_quickstart_spm.sh messaging + run: QUICKSTART_REPO=nc/bft scripts/setup_quickstart_spm.sh messaging - 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" From 35514ce63aa20b9a5dece3f34d22041608410e19 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Mon, 24 Nov 2025 15:35:49 -0500 Subject: [PATCH 10/15] Apply suggestions from code review --- .github/workflows/messaging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index cbfba76dc7c..0f458409fba 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -107,7 +107,7 @@ jobs: - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart - run: QUICKSTART_REPO=nc/bft scripts/setup_quickstart_spm.sh messaging + run: QUICKSTART_BRANCH=nc/bft scripts/setup_quickstart_spm.sh messaging - 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" From 4942e0002a200fb2e8abb37dacf355817a86d626 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Mon, 24 Nov 2025 16:53:23 -0500 Subject: [PATCH 11/15] Update scripts/test_quickstart_ftl.sh --- scripts/test_quickstart_ftl.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/test_quickstart_ftl.sh b/scripts/test_quickstart_ftl.sh index dfeee3cf1dc..df91ca616b2 100755 --- a/scripts/test_quickstart_ftl.sh +++ b/scripts/test_quickstart_ftl.sh @@ -29,7 +29,6 @@ source scripts/check_secrets.sh if check_secrets; then cd quickstart-ios - git checkout nc/bft DIR=$(echo "$sample" | tr '[:upper:]' '[:lower:]') if [ "$language" = "swift" ]; then have_secrets=true SAMPLE="$sample" SPM=true SWIFT_SUFFIX="Swift" DIR="$DIR" ./scripts/build-for-testing.sh From 86865a35d915888b0f129a2892d87433254cfeef Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Mon, 24 Nov 2025 16:56:58 -0500 Subject: [PATCH 12/15] Update .github/workflows/messaging.yml --- .github/workflows/messaging.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 0f458409fba..1046f0a8b4c 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -100,7 +100,6 @@ jobs: runs-on: macos-15 steps: - uses: actions/checkout@v4 - # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - uses: actions/setup-python@v5 with: python-version: '3.11' From 8176972c490b9aeb76a03e9df54351388137ab45 Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Mon, 24 Nov 2025 16:57:04 -0500 Subject: [PATCH 13/15] Update .github/workflows/messaging.yml --- .github/workflows/messaging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 1046f0a8b4c..2a695bf8af4 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -106,7 +106,7 @@ jobs: - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart - run: QUICKSTART_BRANCH=nc/bft scripts/setup_quickstart_spm.sh messaging + run: scripts/setup_quickstart_spm.sh messaging - 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" From f8219e39f03e49f9d5363f82af472bc88f9ebc5f Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Mon, 24 Nov 2025 16:58:35 -0500 Subject: [PATCH 14/15] revert --- .github/workflows/messaging.yml | 278 ++++++++++++++++---------------- 1 file changed, 139 insertions(+), 139 deletions(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 2a695bf8af4..0f3a652c06a 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -32,65 +32,65 @@ concurrency: cancel-in-progress: true jobs: - # spm: - # uses: ./.github/workflows/common.yml - # with: - # target: MessagingUnit - # buildonly_platforms: tvOS, macOS, watchOS, catalyst, visionOS + spm: + uses: ./.github/workflows/common.yml + with: + target: MessagingUnit + buildonly_platforms: tvOS, macOS, watchOS, catalyst, visionOS - # catalyst: - # uses: ./.github/workflows/common_catalyst.yml - # with: - # product: FirebaseMessaging - # target: FirebaseMessaging-Unit-unit + catalyst: + uses: ./.github/workflows/common_catalyst.yml + with: + product: FirebaseMessaging + target: FirebaseMessaging-Unit-unit - # pod_lib_lint: - # strategy: - # matrix: - # product: [FirebaseMessagingInterop, FirebaseMessaging] - # uses: ./.github/workflows/common_cocoapods.yml - # with: - # product: ${{ matrix.product }} + pod_lib_lint: + strategy: + matrix: + product: [FirebaseMessagingInterop, FirebaseMessaging] + uses: ./.github/workflows/common_cocoapods.yml + with: + product: ${{ matrix.product }} - # # TODO(#12205) Update the build.sh script for this job from "test" instead of "build" - # messaging-integration-tests: - # # Don't run on private repo unless it is a PR. - # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' - # env: - # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - # runs-on: macos-15 - # steps: - # - uses: actions/checkout@v4 - # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - # with: - # cache_key: integration - # - name: Configure test keychain - # run: scripts/configure_test_keychain.sh - # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - # - name: Xcode - # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - # - name: Setup Bundler - # run: scripts/setup_bundler.sh - # - name: Install xcpretty - # run: gem install xcpretty - # - name: Install Secret GoogleService-Info.plist - # run: | - # mkdir FirebaseMessaging/Tests/IntegrationTests/Resources - # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ - # FirebaseMessaging/Tests/IntegrationTests/Resources/GoogleService-Info.plist "$plist_secret" - # - name: BuildAndTest - # run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/build.sh Messaging all) + # TODO(#12205) Update the build.sh script for this job from "test" instead of "build" + messaging-integration-tests: + # Don't run on private repo unless it is a PR. + if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' + env: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + with: + cache_key: integration + - name: Configure test keychain + run: scripts/configure_test_keychain.sh + - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install xcpretty + run: gem install xcpretty + - name: Install Secret GoogleService-Info.plist + run: | + mkdir FirebaseMessaging/Tests/IntegrationTests/Resources + scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ + FirebaseMessaging/Tests/IntegrationTests/Resources/GoogleService-Info.plist "$plist_secret" + - name: BuildAndTest + run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/build.sh Messaging all) - # quickstart: - # uses: ./.github/workflows/common_quickstart.yml - # with: - # product: 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 - # secrets: - # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + quickstart: + uses: ./.github/workflows/common_quickstart.yml + with: + product: 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 + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart-ftl-cron-only: # if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' @@ -120,91 +120,91 @@ jobs: testapp_dir: quickstart-ios/build-for-testing test_type: "xctest" - # messaging-cron-only: - # uses: ./.github/workflows/common_cocoapods_cron.yml - # with: - # product: FirebaseMessaging - # platforms: '[ "ios", "tvos", "macos --skip-tests", "watchos --skip-tests" ]' - # flags: '[ "--use-static-frameworks" ]' + messaging-cron-only: + uses: ./.github/workflows/common_cocoapods_cron.yml + with: + product: FirebaseMessaging + platforms: '[ "ios", "tvos", "macos --skip-tests", "watchos --skip-tests" ]' + flags: '[ "--use-static-frameworks" ]' - # messaging-sample-build-test: - # # 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' - # env: - # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - # runs-on: macos-15 - # steps: - # - uses: actions/checkout@v4 - # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - # with: - # cache_key: sample${{ matrix.os }} - # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - # - name: Xcode - # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - # - name: Setup Bundler - # run: scripts/setup_bundler.sh - # - name: Install Secret GoogleService-Info.plist - # run: | - # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ - # FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" - # - name: Prereqs - # run: scripts/install_prereqs.sh MessagingSample iOS - # - name: Build - # run: ([ -z $plist_secret ] || scripts/build.sh MessagingSample iOS) + messaging-sample-build-test: + # 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' + env: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + with: + cache_key: sample${{ matrix.os }} + - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install Secret GoogleService-Info.plist + run: | + scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ + FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" + - name: Prereqs + run: scripts/install_prereqs.sh MessagingSample iOS + - name: Build + run: ([ -z $plist_secret ] || scripts/build.sh MessagingSample iOS) - # messaging-swiftui-sample-build-test: - # # 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' - # env: - # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - # runs-on: macos-15 - # steps: - # - uses: actions/checkout@v4 - # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - # with: - # cache_key: sample${{ matrix.os }} - # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - # - name: Setup Bundler - # run: scripts/setup_bundler.sh - # - name: Install Secret GoogleService-Info.plist - # run: | - # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ - # FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" - # - name: Prereqs - # run: scripts/install_prereqs.sh SwiftUISample iOS - # - name: Xcode - # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - # - name: Build - # run: ([ -z $plist_secret ] || scripts/build.sh SwiftUISample iOS) + messaging-swiftui-sample-build-test: + # 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' + env: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + with: + cache_key: sample${{ matrix.os }} + - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install Secret GoogleService-Info.plist + run: | + scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ + FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" + - name: Prereqs + run: scripts/install_prereqs.sh SwiftUISample iOS + - name: Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - name: Build + run: ([ -z $plist_secret ] || scripts/build.sh SwiftUISample iOS) - # messaging-watchos-standalone-sample-build-test: - # # 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' - # env: - # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - # runs-on: macos-15 - # steps: - # - uses: actions/checkout@v4 - # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - # with: - # cache_key: watch-sample${{ matrix.os }} - # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - # - name: Setup Bundler - # run: scripts/setup_bundler.sh - # - name: Install Secret GoogleService-Info.plist - # run: | - # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ - # FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" - # - name: Prereqs - # run: scripts/install_prereqs.sh MessagingSampleStandaloneWatchApp watchOS - # - name: Xcode - # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - # - name: Build - # run: ([ -z $plist_secret ] || scripts/build.sh MessagingSampleStandaloneWatchApp watchOS) - # - name: Upload xcodebuild logs - # if: failure() - # uses: actions/upload-artifact@v4 - # with: - # name: xcodebuild-logs-${{ matrix.target }} - # path: xcodebuild-*.log + messaging-watchos-standalone-sample-build-test: + # 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' + env: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + with: + cache_key: watch-sample${{ matrix.os }} + - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install Secret GoogleService-Info.plist + run: | + scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ + FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" + - name: Prereqs + run: scripts/install_prereqs.sh MessagingSampleStandaloneWatchApp watchOS + - name: Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - name: Build + run: ([ -z $plist_secret ] || scripts/build.sh MessagingSampleStandaloneWatchApp watchOS) + - name: Upload xcodebuild logs + if: failure() + uses: actions/upload-artifact@v4 + with: + name: xcodebuild-logs-${{ matrix.target }} + path: xcodebuild-*.log From b8b328dbfdce3a5c93bbcd94b65a9cfd1f4fdddd Mon Sep 17 00:00:00 2001 From: Nick Cooke <36927374+ncooke3@users.noreply.github.com> Date: Mon, 24 Nov 2025 17:00:18 -0500 Subject: [PATCH 15/15] Apply suggestion from @ncooke3 --- .github/workflows/messaging.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 0f3a652c06a..596fcb80bf9 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -93,8 +93,7 @@ jobs: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart-ftl-cron-only: - # if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' - if: github.repository == 'Firebase/firebase-ios-sdk' + if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} runs-on: macos-15