fix: zip qs testing workflows #3948
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow tests the zip distribution of the SDK. | |
# There are three ways to configure the source of the zip file for testing: | |
# 1. To iterate on a PR: Set the `PINNED_RUN_ID` environment variable in this | |
# file to a successful zip packaging run. This is useful for avoiding | |
# re-running the packaging jobs on every commit. | |
# 2. For manual runs: Trigger the workflow via the GitHub UI (`workflow_dispatch`) | |
# and provide a "Run ID of a previous successful zip workflow" in the input. | |
# 3. By default (for scheduled and other PR runs): The workflow will build the | |
# zip from the current commit (HEAD). | |
name: zip | |
# TODO(ncooke3): Add FirebaseAI test. | |
permissions: | |
actions: read | |
contents: read | |
env: | |
# When a run_id is specified, build jobs will be skipped and the specified | |
# run's artifacts will be used for testing. | |
PINNED_RUN_ID: '17965877651' | |
on: | |
pull_request: | |
paths: | |
- 'ReleaseTooling/Sources/**' | |
- '.github/workflows/zip.yml' | |
- 'scripts/build_non_firebase_sdks.sh' | |
- 'scripts/build_zip.sh' | |
- 'scripts/setup_quickstart_framework.sh' | |
- 'Gemfile*' | |
# Don't run based on any markdown only changes. | |
- '!ReleaseTooling/*.md' | |
schedule: | |
# Run every day at 9pm (PDT) / 12am (EDT) - cron uses UTC times | |
- cron: '0 4 * * *' | |
workflow_dispatch: | |
inputs: | |
custom_spec_repos: | |
description: 'Custom Podspec repos' | |
required: true | |
default: 'https://github.com/firebase/SpecsStaging.git' | |
zip_run_id: | |
# For example, in the below URL, `17335533279` is the run ID: | |
# - https://github.com/firebase/firebase-ios-sdk/actions/runs/17335533279 | |
description: 'Run ID of a previous successful zip workflow to use for quickstart testing' | |
required: false | |
default: '' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
should_package: | |
runs-on: ubuntu-latest | |
outputs: | |
should_package: ${{ steps.check.outputs.should_package }} | |
steps: | |
- name: Check if packaging should be skipped | |
id: check | |
run: | | |
if [[ -n "${{ env.PINNED_RUN_ID }}" || -n "${{ github.event.inputs.zip_run_id }}" ]]; then | |
echo "should_package=false" >> $GITHUB_OUTPUT | |
else | |
echo "should_package=true" >> $GITHUB_OUTPUT | |
fi | |
package-release: | |
needs: should_package | |
# Don't run on private repo. | |
if: | | |
github.repository == 'firebase/firebase-ios-sdk' && | |
contains(fromJSON('["schedule", "pull_request", "workflow_dispatch"]'), github.event_name) && | |
needs.should_package.outputs.should_package == 'true' | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: package-release | |
- name: Xcode 16.2 | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Setup Bundler | |
run: ./scripts/setup_bundler.sh | |
- name: ZipBuildingTest | |
run: | | |
mkdir -p release_zip_dir | |
sh -x scripts/build_zip.sh release_zip_dir \ | |
"${{ github.event.inputs.custom_spec_repos || 'https://github.com/firebase/SpecsStaging.git' }}" \ | |
build-release \ | |
static | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Firebase-release-zip-zip | |
# Zip the entire output directory since the builder adds subdirectories we don't know the | |
# name of. | |
path: release_zip_dir | |
build: | |
needs: should_package | |
# Don't run on private repo unless it is a PR. | |
if: | | |
github.repository == 'firebase/firebase-ios-sdk' && | |
contains(fromJSON('["schedule", "pull_request", "workflow_dispatch"]'), github.event_name) && | |
needs.should_package.outputs.should_package == 'true' | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Xcode 16.2 | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- name: Build | |
run: | | |
cd ReleaseTooling | |
swift build -v | |
package-head: | |
needs: [build, should_package] | |
if: needs.should_package.outputs.should_package == 'true' | |
strategy: | |
matrix: | |
linking_type: [static, dynamic] | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: package-head | |
- name: Xcode 16.2 | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Setup Bundler | |
run: ./scripts/setup_bundler.sh | |
- name: ZipBuildingTest | |
run: | | |
mkdir -p zip_output_dir | |
sh -x scripts/build_zip.sh \ | |
zip_output_dir "${{ github.event.inputs.custom_spec_repos || 'https://github.com/firebase/SpecsStaging.git,https://github.com/firebase/SpecsDev.git' }}" \ | |
build-head \ | |
${{ matrix.linking_type }} | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: ${{ matrix.linking_type == 'static' && 'Firebase-actions-dir' || 'Firebase-actions-dir-dynamic' }} | |
# Zip the entire output directory since the builder adds subdirectories we don't know the | |
# name of. | |
path: zip_output_dir | |
packaging_done: | |
runs-on: ubuntu-latest | |
needs: [package-head] | |
if: always() | |
outputs: | |
run_id: ${{ steps.get_run_id.outputs.run_id }} | |
steps: | |
- name: Check packaging result | |
if: ${{ needs.package-head.result == 'failure' }} | |
run: | | |
echo "Packaging failed. Aborting." | |
exit 1 | |
- name: Get Run ID | |
id: get_run_id | |
run: | | |
if [[ -n "${{ github.event.inputs.zip_run_id }}" ]]; then | |
echo "run_id=${{ github.event.inputs.zip_run_id }}" >> $GITHUB_OUTPUT | |
elif [[ -n "${{ env.PINNED_RUN_ID }}" ]]; then | |
echo "run_id=${{ env.PINNED_RUN_ID }}" >> $GITHUB_OUTPUT | |
else | |
echo "run_id=${{ github.run_id }}" >> $GITHUB_OUTPUT | |
fi | |
check_framework_firestore_symbols: | |
needs: packaging_done | |
if: ${{ !cancelled() }} | |
env: | |
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1 | |
runs-on: macos-14 | |
steps: | |
- name: Xcode 16.2 | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- uses: actions/checkout@v4 | |
- name: Get framework dir | |
uses: actions/[email protected] | |
with: | |
name: Firebase-actions-dir | |
run-id: ${{ needs.packaging_done.outputs.run_id }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Setup Bundler | |
run: ./scripts/setup_bundler.sh | |
- name: Install xcpretty | |
run: gem install xcpretty | |
- name: Move frameworks | |
run: | | |
mkdir -p "${HOME}"/ios_frameworks/ | |
find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} + | |
- uses: actions/checkout@v4 | |
- name: Check linked Firestore.xcframework for unlinked symbols. | |
run: | | |
scripts/check_firestore_symbols.sh \ | |
$(pwd) \ | |
"${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/FirebaseFirestoreInternal.xcframework | |
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/[email protected] | |
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/ {} + | |
- uses: actions/checkout@v4 | |
- 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}") | |
- name: Remove data before upload | |
if: always() | |
run: scripts/remove_data.sh abtesting | |
# - uses: actions/upload-artifact@v4 | |
# if: failure() | |
# with: | |
# name: quickstart_artifacts_abtesting | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: quickstart_artifacts_abtesting | |
path: | | |
quickstart-ios/ | |
!quickstart-ios/**/GoogleService-Info.plist | |
quickstart_framework_auth: | |
needs: packaging_done | |
if: ${{ !cancelled() }} | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
SDK: "Authentication" | |
strategy: | |
matrix: | |
os: [macos-15] | |
artifact: [Firebase-actions-dir] | |
include: | |
- os: macos-15 | |
xcode: Xcode_16.4 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get framework dir | |
uses: actions/[email protected] | |
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 | |
path: | | |
quickstart-ios/ | |
!quickstart-ios/**/GoogleService-Info.plist | |
quickstart_framework_config: | |
needs: packaging_done | |
if: ${{ !cancelled() }} | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
SDK: "Config" | |
strategy: | |
matrix: | |
artifact: [Firebase-actions-dir] | |
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/[email protected] | |
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}") | |
- name: Remove data before upload | |
if: always() | |
run: scripts/remove_data.sh config | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: quickstart_artifacts_config | |
path: quickstart-ios/ | |
quickstart_framework_crashlytics: | |
needs: packaging_done | |
if: ${{ !cancelled() }} | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
SDK: "Crashlytics" | |
strategy: | |
matrix: | |
artifact: [Firebase-actions-dir] | |
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/[email protected] | |
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/ {} + | |
- uses: actions/checkout@v4 | |
- name: Setup quickstart | |
run: | | |
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 \ | |
"${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 | |
# TODO(#8057): Restore Swift Quickstart | |
# - name: Setup swift quickstart | |
# env: | |
# LEGACY: true | |
# run: | | |
# SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" NON_FIREBASE_SDKS="ReachabilitySwift" scripts/setup_quickstart_framework.sh \ | |
# "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* | |
- 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}") | |
# TODO(#8057): Restore Swift Quickstart | |
# - name: Test Swift Quickstart | |
# env: | |
# LEGACY: true | |
# run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift) | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: quickstart_artifacts_crashlytics | |
path: | | |
quickstart-ios/ | |
!quickstart-ios/**/GoogleService-Info.plist | |
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] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get framework dir | |
uses: actions/[email protected] | |
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/ {} + | |
- uses: actions/checkout@v4 | |
- 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 | |
path: | | |
quickstart-ios/ | |
!quickstart-ios/**/GoogleService-Info.plist | |
quickstart_framework_firestore: | |
needs: packaging_done | |
if: ${{ !cancelled() }} | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
SDK: "Firestore" | |
strategy: | |
matrix: | |
artifact: [Firebase-actions-dir] | |
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/[email protected] | |
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/ {} + | |
- uses: actions/checkout@v4 | |
- 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 | |
quickstart_framework_inappmessaging: | |
needs: packaging_done | |
if: ${{ !cancelled() }} | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
SDK: "InAppMessaging" | |
strategy: | |
matrix: | |
artifact: [Firebase-actions-dir] | |
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/[email protected] | |
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/ {} + | |
- uses: actions/checkout@v4 | |
- 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: Setup swift quickstart | |
run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh | |
- name: Install Secret GoogleService-Info.plist | |
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \ | |
quickstart-ios/inappmessaging/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: Test Swift Quickstart | |
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift) | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: quickstart_artifacts_inappmessaging | |
path: | | |
quickstart-ios/ | |
!quickstart-ios/**/GoogleService-Info.plist | |
quickstart_framework_messaging: | |
needs: packaging_done | |
if: ${{ !cancelled() }} | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
SDK: "Messaging" | |
strategy: | |
matrix: | |
artifact: [Firebase-actions-dir] | |
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/[email protected] | |
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/ {} + | |
- uses: actions/checkout@v4 | |
- 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: Setup swift quickstart | |
run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh | |
- name: Install Secret GoogleService-Info.plist | |
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-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}") | |
- name: Test Swift Quickstart | |
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift) | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: quickstart_artifacts_messaging | |
path: | | |
quickstart-ios/ | |
!quickstart-ios/**/GoogleService-Info.plist | |
quickstart_framework_storage: | |
needs: packaging_done | |
if: ${{ !cancelled() }} | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
SDK: "Storage" | |
strategy: | |
matrix: | |
artifact: [Firebase-actions-dir] | |
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/[email protected] | |
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/ {} + | |
- uses: actions/checkout@v4 | |
- 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: Setup swift quickstart | |
run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh | |
- name: Install Secret GoogleService-Info.plist | |
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \ | |
quickstart-ios/storage/GoogleService-Info.plist "$plist_secret" | |
- name: Test Quickstart | |
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 | |
path: | | |
quickstart-ios/ | |
!quickstart-ios/**/GoogleService-Info.plist |