Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
9038ada
feat(infra): Add script to set up SPM-based quickstarts (#15338)
ncooke3 Sep 22, 2025
8a9676e
chore(ci): Update dependency on WIP QS branch
ncooke3 Sep 22, 2025
9569aa4
refactor: Remove is_legacy QS testing flags (#15353)
ncooke3 Sep 24, 2025
5349b87
fix: zip qs testing workflows (#15358)
ncooke3 Oct 16, 2025
f7a8628
fix(ci): Resolve syntax error in zip.yml (#15425)
ncooke3 Oct 22, 2025
ca0ae6b
fix: Fixes to artifact uploads and scheme name-related issues (#15437)
ncooke3 Oct 28, 2025
9c40066
chore: Remove duplicate action/checkout invocations (#15450)
ncooke3 Oct 28, 2025
eb1d249
chore: Remove outdated TODO (#15451)
ncooke3 Oct 28, 2025
883da48
Merge branch 'main' into nc/quickstarts
ncooke3 Nov 10, 2025
26536b9
chore: Revert debugging code in nc/quickstarts branch (#15479)
ncooke3 Nov 10, 2025
ea22b5b
fix: commit fetching bug in scripts/update_firebase_spm_dependency.sh
ncooke3 Nov 10, 2025
bc38218
fix: Remove test action for prerelease x fiam job
ncooke3 Nov 10, 2025
02f1552
Apply suggestions from code review
ncooke3 Nov 11, 2025
c8517c4
Apply suggestion from @gemini-code-assist[bot]
ncooke3 Nov 11, 2025
aeb934d
Merge branch 'main' into nc/quickstarts
ncooke3 Nov 11, 2025
9490884
Apply suggestions from code review
ncooke3 Nov 12, 2025
ce73bed
Merge branch 'main' into nc/quickstarts
ncooke3 Nov 12, 2025
55f340a
Apply suggestion from @ncooke3
ncooke3 Nov 12, 2025
3113261
Apply suggestion from @ncooke3
ncooke3 Nov 12, 2025
b2ae0f1
Apply suggestion from @ncooke3
ncooke3 Nov 12, 2025
557490f
upload
ncooke3 Nov 12, 2025
eeeb0ac
Merge branch 'main' into nc/quickstarts
ncooke3 Nov 12, 2025
6a1b0c9
Update .github/workflows/release_cocoapods.yml
ncooke3 Nov 12, 2025
905ea7d
Update .github/workflows/zip.yml
ncooke3 Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions .github/workflows/abtesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,9 @@ jobs:
uses: ./.github/workflows/common_quickstart.yml
with:
product: ABTesting
is_legacy: true
setup_command: scripts/setup_quickstart.sh abtesting
plist_src_path: scripts/gha-encrypted/qs-database.plist.gpg
plist_dst_path: quickstart-ios/database/GoogleService-Info.plist
setup_command: scripts/setup_quickstart_spm.sh abtesting
plist_src_path: scripts/gha-encrypted/qs-abtesting.plist.gpg
plist_dst_path: quickstart-ios/abtesting/GoogleService-Info.plist
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}

Expand All @@ -66,17 +65,13 @@ jobs:
with:
python-version: '3.11'
- name: Setup quickstart
env:
LEGACY: true
run: scripts/setup_quickstart.sh abtesting
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Build swift quickstart
env:
LEGACY: true
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh ABTesting)
- id: ftl_test
uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/auth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,7 @@ jobs:
uses: ./.github/workflows/common_quickstart.yml
with:
product: Authentication
is_legacy: false
setup_command: scripts/setup_quickstart.sh authentication
setup_command: scripts/setup_quickstart_spm.sh authentication
plist_src_path: scripts/gha-encrypted/qs-authentication.plist.gpg
plist_dst_path: quickstart-ios/authentication/GoogleService-Info.plist
run_tests: false
Expand Down Expand Up @@ -141,6 +140,5 @@ jobs:
platforms: '[ "ios", "tvos --skip-tests", "macos --skip-tests", "watchos --skip-tests" ]'
flags: '[ "--use-static-frameworks" ]'
setup_command: scripts/configure_test_keychain.sh
ignore_deprecation_warnings: true
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
30 changes: 13 additions & 17 deletions .github/workflows/common_quickstart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,12 @@ on:
type: string
required: true

# Whether to test the legacy version of the quickstart.
is_legacy:
type: boolean
required: true
# The branch to checkout in the quickstart repo.
quickstart_branch:
type: string
required: false
# default: 'main' # TODO: Revert to main before merging.
default: 'nc/quickstarts'

# The path to the encrypted `GoogleService-Info.plist` file.
plist_src_path:
Expand All @@ -44,14 +46,6 @@ on:
type: string
required: true

# The type of quickstart to test.
#
# Options: [swift, objc]
quickstart_type:
type: string
required: false
default: objc

# Whether to run tests or just build. Defaults to true.
run_tests:
type: boolean
Expand All @@ -68,15 +62,18 @@ on:

jobs:
quickstart:
name: quickstart (${{ inputs.product }})
# Run on the main repo's scheduled jobs or pull requests and manual workflow invocations.
if: (github.repository == 'firebase/firebase-ios-sdk' && github.event_name == 'schedule') || contains(fromJSON('["pull_request", "workflow_dispatch"]'), github.event_name)
env:
plist_secret: ${{ secrets.plist_secret }}
LEGACY: ${{ inputs.is_legacy && true || '' }}
QUICKSTART_BRANCH: ${{ inputs.quickstart_branch }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Prereqs
run: gem install xcpretty
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Run setup command.
Expand All @@ -87,17 +84,16 @@ jobs:
${{ inputs.plist_src_path }} \
${{ inputs.plist_dst_path }} \
"$plist_secret"
- name: Build ${{ inputs.product }} Quickstart (${{ inputs.quickstart_type }} / ${{ inputs.is_legacy && 'Legacy' || 'Non-Legacy' }})
- name: Build ${{ inputs.product }} Quickstart
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: |
scripts/test_quickstart.sh \
SPM=true DIR=${{ inputs.product }} scripts/test_quickstart.sh \
${{ inputs.product }} \
${{ inputs.run_tests }} \
${{ inputs.quickstart_type }}
${{ inputs.run_tests }}
# Failure sequence to upload artifact.
- id: lowercase_product
if: failure()
Expand Down
17 changes: 1 addition & 16 deletions .github/workflows/crashlytics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,7 @@ jobs:
uses: ./.github/workflows/common_quickstart.yml
with:
product: Crashlytics
is_legacy: true
quickstart_type: swift
setup_command: |
scripts/setup_quickstart.sh crashlytics
mkdir quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
# Set the deployed pod location of run and upload-symbols with the development pod version.
cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
setup_command: scripts/setup_quickstart_spm.sh crashlytics
plist_src_path: scripts/gha-encrypted/qs-crashlytics.plist.gpg
plist_dst_path: quickstart-ios/crashlytics/GoogleService-Info.plist
secrets:
Expand All @@ -77,20 +70,12 @@ jobs:
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Setup quickstart
run: scripts/setup_quickstart.sh crashlytics
env:
LEGACY: true
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
- name: Build swift quickstart
run: |
mkdir quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
# Set the deployed pod location of run and upload-symbols with the development pod version.
cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Crashlytics swift)
env:
LEGACY: true
- id: ftl_test
uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4
with:
Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,16 +72,11 @@ jobs:

quickstart:
uses: ./.github/workflows/common_quickstart.yml
strategy:
matrix:
quickstart_type: [objc, swift]
with:
product: Database
is_legacy: false
setup_command: scripts/setup_quickstart.sh database
setup_command: scripts/setup_quickstart_spm.sh database
plist_src_path: scripts/gha-encrypted/qs-database.plist.gpg
plist_dst_path: quickstart-ios/database/GoogleService-Info.plist
quickstart_type: ${{ matrix.quickstart_type }}
run_tests: false
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/firestore.yml
Original file line number Diff line number Diff line change
Expand Up @@ -605,8 +605,7 @@ jobs:
# uses: ./.github/workflows/common_quickstart.yml
# with:
# product: Firestore
# is_legacy: true
# setup_command: scripts/setup_quickstart.sh firestore
# setup_command: scripts/setup_quickstart_spm.sh firestore
# plist_src_path: scripts/gha-encrypted/qs-firestore.plist.gpg
# plist_dst_path: quickstart-ios/firestore/GoogleService-Info.plist
# run_tests: false
Expand Down
18 changes: 1 addition & 17 deletions .github/workflows/functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,7 @@ jobs:
with:
target: FirebaseFunctionsUnit

# TODO: The legacy quickstart uses material which doesn't build on Xcode 15.
# quickstart:
# uses: ./.github/workflows/common_quickstart.yml
# strategy:
# matrix:
# quickstart_type: [objc, swift]
# with:
# product: Functions
# is_legacy: true
# setup_command: |
# scripts/setup_quickstart.sh functions
# sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
# plist_src_path: scripts/gha-encrypted/qs-functions.plist.gpg
# plist_dst_path: quickstart-ios/functions/GoogleService-Info.plist
# quickstart_type: ${{ matrix.quickstart_type }}
# secrets:
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
# TODO(ncooke3): Add a Functions quickstart test.

# quickstart-ftl-cron-only:
# # Don't run on private repo
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/inappmessaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,11 @@ jobs:

quickstart:
uses: ./.github/workflows/common_quickstart.yml
strategy:
matrix:
quickstart_type: [objc, swift]
with:
product: InAppMessaging
is_legacy: false
quickstart_type: ${{ matrix.quickstart_type }}
setup_command: scripts/setup_quickstart.sh inappmessaging
setup_command: scripts/setup_quickstart_spm.sh inappmessaging
plist_src_path: scripts/gha-encrypted/qs-inappmessaging.plist.gpg
plist_dst_path: quickstart-ios/inappmessaging/GoogleService-Info.plist
run_tests: false
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
7 changes: 1 addition & 6 deletions .github/workflows/installations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,11 @@ jobs:

quickstart:
uses: ./.github/workflows/common_quickstart.yml
strategy:
matrix:
quickstart_type: [objc, swift]
with:
product: Installations
is_legacy: false
setup_command: scripts/setup_quickstart.sh installations
setup_command: scripts/setup_quickstart_spm.sh installations
plist_src_path: scripts/gha-encrypted/Installations/GoogleService-Info.plist.gpg
plist_dst_path: quickstart-ios/installations/GoogleService-Info.plist
quickstart_type: ${{ matrix.quickstart_type }}
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}

Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/messaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,14 +83,9 @@ jobs:

quickstart:
uses: ./.github/workflows/common_quickstart.yml
strategy:
matrix:
quickstart_type: [objc, swift]
with:
product: Messaging
is_legacy: false
quickstart_type: ${{ matrix.quickstart_type }}
setup_command: scripts/setup_quickstart.sh messaging
setup_command: scripts/setup_quickstart_spm.sh messaging
plist_src_path: scripts/gha-encrypted/qs-messaging.plist.gpg
plist_dst_path: quickstart-ios/messaging/GoogleService-Info.plist
run_tests: false
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/performance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,11 @@ jobs:
#TODO: tests are not supported with Xcode 15 because the test spec depends on the iOS 8 GDCWebServer
buildonly_platforms: iOS, tvOS

# TODO: The legacy ObjC quickstarts don't run with Xcode 15, re-able if we get these working.
quickstart:
uses: ./.github/workflows/common_quickstart.yml
with:
product: Performance
is_legacy: false
quickstart_type: swift
setup_command: scripts/setup_quickstart.sh performance
setup_command: scripts/setup_quickstart_spm.sh performance
plist_src_path: scripts/gha-encrypted/qs-performance.plist.gpg
plist_dst_path: quickstart-ios/performance/GoogleService-Info.plist
secrets:
Expand Down
Loading
Loading