diff --git a/.github/workflows/abtesting.yml b/.github/workflows/abtesting.yml index 5a69d6f17fe..ab2b77aa8d6 100644 --- a/.github/workflows/abtesting.yml +++ b/.github/workflows/abtesting.yml @@ -61,11 +61,15 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install xcpretty + run: gem install xcpretty - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Setup quickstart - run: scripts/setup_quickstart.sh abtesting + run: scripts/setup_quickstart_spm.sh abtesting - 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" diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index b2456256c9c..4af29b0f68b 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -96,7 +96,7 @@ jobs: xcode: Xcode_16.2 platform: iOS - os: macos-26 - xcode: Xcode_26.0 + xcode: Xcode_26.1 platform: iOS runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/common_quickstart_framework.yml b/.github/workflows/common_quickstart_framework.yml new file mode 100644 index 00000000000..80de366f4fa --- /dev/null +++ b/.github/workflows/common_quickstart_framework.yml @@ -0,0 +1,93 @@ +name: common_quickstart_framework + +permissions: + contents: read + +on: + workflow_call: + inputs: + # The product to test be tested (e.g. `ABTesting`). + product: + required: true + type: string + # The Run ID of a successful zip packaging workflow. + zip_run_id: + required: true + type: string + # The name of the artifact from the zip packaging workflow to download. + artifact_name: + required: true + type: string + # A command to execute before testing. + # + # Example: `scripts/setup_quickstart.sh functions` + setup_command: + required: true + type: string + # The path to the encrypted `GoogleService-Info.plist` file. + plist_src_path: + required: true + type: string + # The destination path for the decrypted `GoogleService-Info.plist` file. + plist_dst_path: + required: true + type: string + # The runner to use. + os: + required: false + type: string + default: macos-15 + # The version of Xcode to use. + xcode: + required: false + type: string + default: Xcode_16.4 + secrets: + # The passphrase for decrypting the GoogleService-Info.plist. + plist_secret: + required: true + +jobs: + quickstart_framework: + if: ${{ !cancelled() }} + env: + plist_secret: ${{ secrets.plist_secret }} + SDK: ${{ inputs.product }} + runs-on: ${{ inputs.os }} + steps: + - uses: actions/checkout@v4 + - name: Get framework dir + uses: actions/download-artifact@v4.1.7 + with: + name: ${{ inputs.artifact_name }} + run-id: ${{ inputs.zip_run_id }} + github-token: ${{ secrets.github_token }} + - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Xcode + run: sudo xcode-select -s /Applications/${{ inputs.xcode }}.app/Contents/Developer + - name: Setup Bundler + run: ./scripts/setup_bundler.sh + - name: Move frameworks + run: | + mkdir -p "${HOME}"/ios_frameworks/ + find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + + - name: Setup quickstart + run: ${{ inputs.setup_command }} + - name: Install Secret GoogleService-Info.plist + run: scripts/decrypt_gha_secret.sh ${{ inputs.plist_src_path }} \ + ${{ inputs.plist_dst_path }} "$plist_secret" + - name: Test Quickstart + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 + with: + timeout_minutes: 15 + max_attempts: 2 + retry_wait_seconds: 120 + command: ([ -z $plist_secret ] || scripts/test_quickstart_framework.sh "${SDK}") + # Failure sequence to upload artifact. + - uses: actions/upload-artifact@v4 + if: failure() + with: + name: quickstart_artifacts_${{ inputs.product }}_${{ inputs.artifact_name }} + path: | + quickstart-ios/ + !quickstart-ios/**/GoogleService-Info.plist diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index 8e074482d08..165376fbfbe 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -25,37 +25,38 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true -jobs: - spm: - uses: ./.github/workflows/common.yml - with: - target: FirebaseCrashlyticsUnit - - catalyst: - uses: ./.github/workflows/common_catalyst.yml - with: - product: FirebaseCrashlytics - target: FirebaseCrashlytics-Unit-unit - - pod_lib_lint: - uses: ./.github/workflows/common_cocoapods.yml - with: - product: FirebaseCrashlytics - buildonly_platforms: tvOS, macOS, watchOS - - quickstart: - uses: ./.github/workflows/common_quickstart.yml - with: - product: Crashlytics - setup_command: scripts/setup_quickstart_spm.sh crashlytics - plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg - plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist - secrets: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} +#jobs: +# spm: +# uses: ./.github/workflows/common.yml +# with: +# target: FirebaseCrashlyticsUnit +# +# catalyst: +# uses: ./.github/workflows/common_catalyst.yml +# with: +# product: FirebaseCrashlytics +# target: FirebaseCrashlytics-Unit-unit +# +# pod_lib_lint: +# uses: ./.github/workflows/common_cocoapods.yml +# with: +# product: FirebaseCrashlytics +# buildonly_platforms: tvOS, macOS, watchOS +# +# quickstart: +# uses: ./.github/workflows/common_quickstart.yml +# with: +# product: Crashlytics +# setup_command: scripts/setup_quickstart_spm.sh crashlytics +# plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg +# plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist +# secrets: +# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} +jobs: quickstart-ftl-cron-only: # Don't run on private repo. - if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' + if: github.repository == 'Firebase/firebase-ios-sdk' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} @@ -63,13 +64,17 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install xcpretty + run: gem install xcpretty - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart - run: scripts/setup_quickstart.sh crashlytics + run: QUICKSTART_BRANCH=nc/strg-tests scripts/setup_quickstart_spm.sh crashlytics - name: Install Secret GoogleService-Info.plist run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \ quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret" @@ -83,10 +88,10 @@ jobs: testapp_dir: quickstart-ios/build-for-testing test_type: "xctest" - crashlytics-cron-only: - needs: pod_lib_lint - uses: ./.github/workflows/common_cocoapods_cron.yml - with: - product: FirebaseCrashlytics - platforms: '[ "ios", "tvos", "macos", "watchos --skip-tests" ]' - flags: '[ "--use-static-frameworks", "--use-modular-headers --skip-tests" ]' + # crashlytics-cron-only: + # needs: pod_lib_lint + # uses: ./.github/workflows/common_cocoapods_cron.yml + # with: + # product: FirebaseCrashlytics + # platforms: '[ "ios", "tvos", "macos", "watchos --skip-tests" ]' + # flags: '[ "--use-static-frameworks", "--use-modular-headers --skip-tests" ]' diff --git a/.github/workflows/firebaseai.yml b/.github/workflows/firebaseai.yml index eab6b595610..1f3cde4a26a 100644 --- a/.github/workflows/firebaseai.yml +++ b/.github/workflows/firebaseai.yml @@ -46,7 +46,7 @@ jobs: xcode: Xcode_16.4 - os: macos-26 target: iOS - xcode: Xcode_26.0 + xcode: Xcode_26.1 runs-on: ${{ matrix.os }} needs: spm env: @@ -88,7 +88,7 @@ jobs: - os: macos-15 xcode: Xcode_16.4 - os: macos-26 - xcode: Xcode_26.0 + xcode: Xcode_26.1 runs-on: ${{ matrix.os }} env: BRANCH_NAME: ${{ github.head_ref || github.ref_name || 'main' }} diff --git a/.github/workflows/installations.yml b/.github/workflows/installations.yml index 1d236e40983..6037a762d2c 100644 --- a/.github/workflows/installations.yml +++ b/.github/workflows/installations.yml @@ -62,24 +62,25 @@ jobs: quickstart-ftl-cron-only: # Don't run on private repo. if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' - runs-on: macos-15 steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install xcpretty + run: gem install xcpretty - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart - run: scripts/setup_quickstart.sh installations + run: scripts/setup_quickstart_spm.sh installations - name: Copy mock plist run: cp quickstart-ios/mock-GoogleService-Info.plist quickstart-ios/installations/GoogleService-Info.plist - - name: Build objc quickstart + - name: Build quickstart run: scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Installations - - name: Build swift quickstart - run: scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Installations swift - id: ftl_test uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4 with: diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 19a6e044a73..197793f2e4d 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -33,77 +33,81 @@ concurrency: cancel-in-progress: true jobs: - spm: - uses: ./.github/workflows/common.yml - with: - target: PerformanceUnit - platforms: iOS, tvOS + # spm: + # uses: ./.github/workflows/common.yml + # with: + # target: PerformanceUnit + # platforms: iOS, tvOS - catalyst: - uses: ./.github/workflows/common_catalyst.yml - with: - product: FirebasePerformance - target: - buildonly: true + # catalyst: + # uses: ./.github/workflows/common_catalyst.yml + # with: + # product: FirebasePerformance + # target: + # buildonly: true - # Build and run the unit tests for Firebase performance SDK. - performance: - # Don't run on private repo unless it is a PR. - if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' - runs-on: macos-15 - strategy: - matrix: - target: [iOS, tvOS] - test: [unit, proddev] - steps: - - uses: actions/checkout@v4 - - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 - with: - cache_key: ${{ matrix.target }}${{ matrix.test }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - - name: Setup Bundler - run: scripts/setup_bundler.sh - - name: Install xcpretty - run: gem install xcpretty - - name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10 - run: scripts/third_party/travis/retry.sh scripts/build.sh Performance ${{ matrix.target }} ${{ matrix.test }} + # # Build and run the unit tests for Firebase performance SDK. + # performance: + # # Don't run on private repo unless it is a PR. + # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' + # runs-on: macos-15 + # strategy: + # matrix: + # target: [iOS, tvOS] + # test: [unit, proddev] + # steps: + # - uses: actions/checkout@v4 + # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 + # with: + # cache_key: ${{ matrix.target }}${{ matrix.test }} + # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + # - name: Xcode + # run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + # - name: Setup Bundler + # run: scripts/setup_bundler.sh + # - name: Install xcpretty + # run: gem install xcpretty + # - name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10 + # run: scripts/third_party/travis/retry.sh scripts/build.sh Performance ${{ matrix.target }} ${{ matrix.test }} - pod_lib_lint: - uses: ./.github/workflows/common_cocoapods.yml - with: - product: FirebasePerformance - platforms: iOS, tvOS - #TODO: tests are not supported with Xcode 15 because the test spec depends on the iOS 8 GDCWebServer - buildonly_platforms: iOS, tvOS + # pod_lib_lint: + # uses: ./.github/workflows/common_cocoapods.yml + # with: + # product: FirebasePerformance + # platforms: iOS, tvOS + # #TODO: tests are not supported with Xcode 15 because the test spec depends on the iOS 8 GDCWebServer + # buildonly_platforms: iOS, tvOS - quickstart: - uses: ./.github/workflows/common_quickstart.yml - with: - product: Performance - setup_command: scripts/setup_quickstart_spm.sh performance - plist_src_path: scripts/gha-encrypted/qs-performance.plist.gpg - plist_dst_path: quickstart-ios/performance/GoogleService-Info.plist - secrets: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # quickstart: + # uses: ./.github/workflows/common_quickstart.yml + # with: + # product: Performance + # setup_command: scripts/setup_quickstart_spm.sh performance + # plist_src_path: scripts/gha-encrypted/qs-performance.plist.gpg + # plist_dst_path: quickstart-ios/performance/GoogleService-Info.plist + # secrets: + # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart-ftl-cron-only: - if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' - + # if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' + if: github.repository == 'Firebase/firebase-ios-sdk' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} runs-on: macos-15 steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Setup Bundler + run: scripts/setup_bundler.sh + - name: Install xcpretty + run: gem install xcpretty - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Xcode run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart - run: scripts/setup_quickstart.sh performance + run: scripts/setup_quickstart_spm.sh performance - name: Install Secret GoogleService-Info.plist run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \ quickstart-ios/performance/GoogleService-Info.plist "$plist_secret" @@ -118,10 +122,10 @@ jobs: testapp_dir: quickstart-ios/build-for-testing test_type: "xctest" - performance-cron-only: - needs: pod_lib_lint - uses: ./.github/workflows/common_cocoapods_cron.yml - with: - product: FirebasePerformance - platforms: '[ "ios", "tvos" ]' - flags: '[ "--skip-tests --use-static-frameworks" ]' + # performance-cron-only: + # needs: pod_lib_lint + # uses: ./.github/workflows/common_cocoapods_cron.yml + # with: + # product: FirebasePerformance + # platforms: '[ "ios", "tvos" ]' + # flags: '[ "--skip-tests --use-static-frameworks" ]' diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index db5055fb93e..325e836c1b2 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -23,6 +23,7 @@ on: paths: - 'ReleaseTooling/Sources/**' - '.github/workflows/zip.yml' + - '.github/workflows/common_quickstart_framework.yml' - 'scripts/build_non_firebase_sdks.sh' - 'scripts/build_zip.sh' - 'scripts/setup_quickstart_framework.sh' @@ -56,6 +57,11 @@ jobs: outputs: should_package: ${{ steps.check.outputs.should_package }} steps: + - name: Fail workflow if PINNED_RUN_ID is set on a schedule + if: github.event_name == 'schedule' && env.PINNED_RUN_ID != '' + run: | + echo "ERROR: PINNED_RUN_ID is set for a scheduled run. Unset it to allow the workflow to proceed." + exit 1 - name: Check if packaging should be skipped id: check run: | @@ -203,60 +209,35 @@ jobs: quickstart_framework_abtesting: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "ABTesting" strategy: matrix: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 xcode: Xcode_16.4 - runs-on: ${{ matrix.build-env.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup quickstart - run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \ - "${HOME}"/ios_frameworks/Firebase/FirebaseRemoteConfig/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseCore.xcframework \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseCoreInternal.xcframework \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FBLPromises.xcframework \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseInstallations.xcframework \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/GoogleUtilities.xcframework - - 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 Quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - - uses: actions/upload-artifact@v4 - if: failure() - with: - name: quickstart_artifacts_abtesting_${{ matrix.artifact }} - path: | - quickstart-ios/ - !quickstart-ios/**/GoogleService-Info.plist + uses: ./.github/workflows/common_quickstart_framework.yml + with: + product: "ABTesting" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | + SAMPLE="ABTesting" TARGET="ABTestingExample" scripts/setup_quickstart_framework.sh \ + "${HOME}"/ios_frameworks/Firebase/FirebaseRemoteConfig/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseCore.xcframework \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseCoreInternal.xcframework \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FBLPromises.xcframework \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseInstallations.xcframework \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/GoogleUtilities.xcframework + plist_src_path: scripts/gha-encrypted/qs-abtesting.plist.gpg + plist_dst_path: quickstart-ios/abtesting/GoogleService-Info.plist + os: ${{ matrix.build-env.os }} + xcode: ${{ matrix.build-env.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart_framework_auth: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "Authentication" strategy: matrix: os: [macos-15] @@ -264,198 +245,112 @@ jobs: include: - os: macos-15 xcode: Xcode_16.4 - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup Swift Quickstart - run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="FBSDKLoginKit FBSDKCoreKit FBSDKCoreKit_Basics FBAEMKit" scripts/setup_quickstart_framework.sh \ - "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \ - "${HOME}"/ios_frameworks/Firebase/GoogleSignIn/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* - - name: Install Secret GoogleService-Info.plist - run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-authentication.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_framework.sh "${SDK}") - - uses: actions/upload-artifact@v4 - if: failure() - with: - name: quickstart_artifacts_auth_${{ matrix.artifact }} - path: | - quickstart-ios/ - !quickstart-ios/**/GoogleService-Info.plist + uses: ./.github/workflows/common_quickstart_framework.yml + with: + product: "Authentication" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | + SAMPLE="Authentication" TARGET="AuthenticationExample" NON_FIREBASE_SDKS="FBSDKLoginKit FBSDKCoreKit FBSDKCoreKit_Basics FBAEMKit" scripts/setup_quickstart_framework.sh \ + "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \ + "${HOME}"/ios_frameworks/Firebase/GoogleSignIn/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* + plist_src_path: scripts/gha-encrypted/qs-authentication.plist.gpg + plist_dst_path: quickstart-ios/authentication/GoogleService-Info.plist + os: ${{ matrix.os }} + xcode: ${{ matrix.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart_framework_config: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "Config" strategy: matrix: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 xcode: Xcode_16.4 - runs-on: ${{ matrix.build-env.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup Swift Quickstart - - run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \ - "${HOME}"/ios_frameworks/Firebase/FirebaseRemoteConfig/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* - - 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_framework.sh "${SDK}") - - uses: actions/upload-artifact@v4 - if: failure() - with: - name: quickstart_artifacts_config_${{ matrix.artifact }} - path: | - quickstart-ios/ - !quickstart-ios/**/GoogleService-Info.plist + uses: ./.github/workflows/common_quickstart_framework.yml + with: + product: "Config" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | + SAMPLE="Config" TARGET="ConfigExample" scripts/setup_quickstart_framework.sh \ + "${HOME}"/ios_frameworks/Firebase/FirebaseRemoteConfig/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* + plist_src_path: scripts/gha-encrypted/qs-config.plist.gpg + plist_dst_path: quickstart-ios/config/GoogleService-Info.plist + os: ${{ matrix.build-env.os }} + xcode: ${{ matrix.build-env.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart_framework_crashlytics: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "Crashlytics" strategy: matrix: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 xcode: Xcode_16.4 - runs-on: ${{ matrix.build-env.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup quickstart - run: | + uses: ./.github/workflows/common_quickstart_framework.yml + with: + product: "Crashlytics" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | rm -rf "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseAnalytics* rm -rf "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/GoogleAppMeasurement* rm -rf "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/GoogleAds* - SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \ + SAMPLE="Crashlytics" TARGET="CrashlyticsExample" scripts/setup_quickstart_framework.sh \ "${HOME}"/ios_frameworks/Firebase/FirebaseCrashlytics/* \ "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* - - name: Add frameworks to Crashlytics watchOS target - run: | - cd quickstart-ios/crashlytics - "${GITHUB_WORKSPACE}"/quickstart-ios/scripts/add_framework_script.rb --sdk "Crashlytics" --target "CrashlyticsExample_(watchOS)_Extension" --framework_path Firebase/ - - name: Patch Crashlytics Run Script Path - run: scripts/patch_crashlytics_run_path.rb - - 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 Quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - - uses: actions/upload-artifact@v4 - if: failure() - with: - name: quickstart_artifacts_crashlytics_${{ matrix.artifact }} - path: | - quickstart-ios/ - !quickstart-ios/**/GoogleService-Info.plist + cd quickstart-ios/crashlytics + "${GITHUB_WORKSPACE}"/quickstart-ios/scripts/add_framework_script.rb --sdk "Crashlytics" \ + --target "CrashlyticsExample_(watchOS)_Extension" \ + --framework_path Firebase/ + cd ../../ + scripts/patch_crashlytics_run_path.rb + plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg + plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist + os: ${{ matrix.build-env.os }} + xcode: ${{ matrix.build-env.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart_framework_database: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "Database" strategy: matrix: os: [macos-14] xcode: [Xcode_16.2] artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup quickstart - run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="FirebaseDatabaseUI" scripts/setup_quickstart_framework.sh \ - "${HOME}"/ios_frameworks/Firebase/FirebaseDatabase/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ - "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* - - 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 Quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - - uses: actions/upload-artifact@v4 - if: failure() - with: - name: quickstart_artifacts_database_${{ matrix.artifact }} - path: | - quickstart-ios/ - !quickstart-ios/**/GoogleService-Info.plist + uses: ./.github/workflows/common_quickstart_framework.yml + with: + product: "Database" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | + SAMPLE="Database" TARGET="DatabaseExample" NON_FIREBASE_SDKS="FirebaseDatabaseUI" scripts/setup_quickstart_framework.sh \ + "${HOME}"/ios_frameworks/Firebase/FirebaseDatabase/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ + "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* + plist_src_path: scripts/gha-encrypted/qs-database.plist.gpg + plist_dst_path: quickstart-ios/database/GoogleService-Info.plist + os: ${{ matrix.os }} + xcode: ${{ matrix.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} + # TODO(ncooke3): Migrate to use shared workflow after fixing AI scheme names. quickstart_framework_firebaseai: needs: packaging_done if: ${{ !cancelled() }} @@ -512,201 +407,107 @@ jobs: quickstart_framework_firestore: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "Firestore" strategy: matrix: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 xcode: Xcode_16.4 - runs-on: ${{ matrix.build-env.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup quickstart - run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="SDWebImage FirebaseAuthUI FirebaseEmailAuthUI" scripts/setup_quickstart_framework.sh \ - "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* - - name: Upload build logs on failure - if: failure() - uses: actions/upload-artifact@v4 - with: - name: build_logs_firestore_${{ matrix.artifact }}_${{ matrix.build-env.os }} - path: sdk_zip/build_logs/ - - 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 Quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - - name: Remove data before upload and zip directory to reduce upload size. - if: always() - 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: ./.github/workflows/common_quickstart_framework.yml + with: + product: "Firestore" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | + SAMPLE="Firestore" TARGET="FirestoreExample" NON_FIREBASE_SDKS="SDWebImage FirebaseAuthUI FirebaseEmailAuthUI" scripts/setup_quickstart_framework.sh \ + "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* + plist_src_path: scripts/gha-encrypted/qs-firestore.plist.gpg + plist_dst_path: quickstart-ios/firestore/GoogleService-Info.plist + os: ${{ matrix.build-env.os }} + xcode: ${{ matrix.build-env.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart_framework_inappmessaging: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "InAppMessaging" strategy: matrix: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 xcode: Xcode_16.4 - runs-on: ${{ matrix.build-env.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup quickstart - run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \ - "${HOME}"/ios_frameworks/Firebase/FirebaseInAppMessaging/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* - - 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 Swift Quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - - uses: actions/upload-artifact@v4 - if: failure() - with: - name: quickstart_artifacts_inappmessaging_${{ matrix.artifact }} - path: | - quickstart-ios/ - !quickstart-ios/**/GoogleService-Info.plist + uses: ./.github/workflows/common_quickstart_framework.yml + with: + product: "InAppMessaging" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | + SAMPLE="InAppMessaging" TARGET="InAppMessagingExample" scripts/setup_quickstart_framework.sh \ + "${HOME}"/ios_frameworks/Firebase/FirebaseInAppMessaging/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* + plist_src_path: scripts/gha-encrypted/qs-inappmessaging.plist.gpg + plist_dst_path: quickstart-ios/inappmessaging/GoogleService-Info.plist + os: ${{ matrix.build-env.os }} + xcode: ${{ matrix.build-env.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart_framework_messaging: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "Messaging" strategy: matrix: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 xcode: Xcode_16.4 - runs-on: ${{ matrix.build-env.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup quickstart - run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \ - "${HOME}"/ios_frameworks/Firebase/FirebaseMessaging/* \ - "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* - - name: Add frameworks to notification extension target - run: | + uses: ./.github/workflows/common_quickstart_framework.yml + with: + product: "Messaging" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | + SAMPLE="Messaging" TARGET="MessagingExample" scripts/setup_quickstart_framework.sh \ + "${HOME}"/ios_frameworks/Firebase/FirebaseMessaging/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* cd quickstart-ios/messaging - "${GITHUB_WORKSPACE}"/quickstart-ios/scripts/add_framework_script.rb --sdk "Messaging" --target "NotificationServiceExtension" --framework_path Firebase/ - - 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 Quickstart - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - - uses: actions/upload-artifact@v4 - if: failure() - with: - name: quickstart_artifacts_messaging_${{ matrix.artifact }} - path: | - quickstart-ios/ - !quickstart-ios/**/GoogleService-Info.plist + "${GITHUB_WORKSPACE}"/quickstart-ios/scripts/add_framework_script.rb \ + --sdk "Messaging" \ + --target "NotificationServiceExtension" \ + --framework_path Firebase/ + plist_src_path: scripts/gha-encrypted/qs-messaging.plist.gpg + plist_dst_path: quickstart-ios/messaging/GoogleService-Info.plist + os: ${{ matrix.build-env.os }} + xcode: ${{ matrix.build-env.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} quickstart_framework_storage: needs: packaging_done if: ${{ !cancelled() }} - env: - plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - SDK: "Storage" strategy: matrix: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 xcode: Xcode_16.4 - runs-on: ${{ matrix.build-env.os }} - steps: - - uses: actions/checkout@v4 - - name: Get framework dir - uses: actions/download-artifact@v4.1.7 - with: - name: ${{ matrix.artifact }} - run-id: ${{ needs.packaging_done.outputs.run_id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - - name: Setup Bundler - run: ./scripts/setup_bundler.sh - - name: Move frameworks - run: | - mkdir -p "${HOME}"/ios_frameworks/ - find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + - - name: Setup quickstart - 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: 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 - run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}") - - uses: actions/upload-artifact@v4 - if: failure() - with: - name: quickstart_artifacts_storage_${{ matrix.artifact }} - path: | - quickstart-ios/ - !quickstart-ios/**/GoogleService-Info.plist + uses: ./.github/workflows/common_quickstart_framework.yml + with: + product: "Storage" + zip_run_id: ${{ needs.packaging_done.outputs.run_id }} + artifact_name: ${{ matrix.artifact }} + setup_command: | + SAMPLE="Storage" TARGET="StorageExample" scripts/setup_quickstart_framework.sh \ + "${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ + "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* + plist_src_path: scripts/gha-encrypted/qs-storage.plist.gpg + plist_dst_path: quickstart-ios/storage/GoogleService-Info.plist + os: ${{ matrix.build-env.os }} + xcode: ${{ matrix.build-env.xcode }} + secrets: + plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} diff --git a/FirebasePerformance/Tests/TestApp/Source/Networking/NetworkConnection.h b/FirebasePerformance/Tests/TestApp/Source/Networking/NetworkConnection.h index 594e67877e7..fbf460230c9 100644 --- a/FirebasePerformance/Tests/TestApp/Source/Networking/NetworkConnection.h +++ b/FirebasePerformance/Tests/TestApp/Source/Networking/NetworkConnection.h @@ -14,7 +14,7 @@ #import -typedef void (^SuccessNetworkCallback)(); +typedef void (^SuccessNetworkCallback)(void); typedef void (^FailureNetworkCallback)(NSError *error); /** A protocol for network connection tasks. */