Skip to content

Commit f3e7558

Browse files
ncooke3dependabot[bot]andrewheardpaulb777google-labs-jules[bot]
authored
chore: Merge branch 'main' into nc/quickstarts (#15477)
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Heard <[email protected]> Co-authored-by: Paul Beusterien <[email protected]> Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Daniel La Rocque <[email protected]> Co-authored-by: Peter Friese <[email protected]> Co-authored-by: themiswang <[email protected]> Co-authored-by: pcfba <[email protected]> Co-authored-by: Daymon <[email protected]> Co-authored-by: Jesús Rojas <[email protected]> Co-authored-by: cherylEnkidu <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Anka <runner@sjc20-cw711-f080df3d-ebf6-4709-98e9-85b8a97486da-6EB573FF6658.local> Co-authored-by: htcgh <[email protected]> Co-authored-by: Tatsuyuki Kobayashi <[email protected]> Co-authored-by: Tushar Khandelwal <[email protected]> Co-authored-by: Seyed Mojtaba Hosseini Zeidabadi <[email protected]>
1 parent eb1d249 commit f3e7558

File tree

228 files changed

+8213
-762
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

228 files changed

+8213
-762
lines changed

.github/actions/notices_generation/Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ GEM
9898
sawyer (~> 0.8.0, >= 0.5.3)
9999
plist (3.6.0)
100100
public_suffix (4.0.6)
101-
rexml (3.4.1)
101+
rexml (3.4.2)
102102
ruby-macho (2.5.1)
103103
ruby2_keywords (0.0.2)
104104
sawyer (0.8.2)

.github/workflows/auth.yml

Lines changed: 71 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -29,69 +29,69 @@ concurrency:
2929
cancel-in-progress: true
3030

3131
jobs:
32-
# spm:
33-
# uses: ./.github/workflows/common.yml
34-
# with:
35-
# target: AuthUnit
36-
# buildonly_platforms: macOS
32+
spm:
33+
uses: ./.github/workflows/common.yml
34+
with:
35+
target: AuthUnit
36+
buildonly_platforms: macOS
3737

38-
# catalyst:
39-
# uses: ./.github/workflows/common_catalyst.yml
40-
# with:
41-
# product: FirebaseAuth
42-
# target: FirebaseAuth-Unit-unit
43-
# buildonly: true
38+
catalyst:
39+
uses: ./.github/workflows/common_catalyst.yml
40+
with:
41+
product: FirebaseAuth
42+
target: FirebaseAuth-Unit-unit
43+
buildonly: true
4444

45-
# pod_lib_lint:
46-
# strategy:
47-
# matrix:
48-
# product: [FirebaseAuthInterop, FirebaseAuth]
49-
# uses: ./.github/workflows/common_cocoapods.yml
50-
# with:
51-
# product: ${{ matrix.product }}
52-
# buildonly_platforms: macOS
45+
pod_lib_lint:
46+
strategy:
47+
matrix:
48+
product: [FirebaseAuthInterop, FirebaseAuth]
49+
uses: ./.github/workflows/common_cocoapods.yml
50+
with:
51+
product: ${{ matrix.product }}
52+
buildonly_platforms: macOS
5353

54-
# integration-tests:
55-
# # Don't run on private repo unless it is a PR.
56-
# if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
57-
# needs: spm
58-
# strategy:
59-
# matrix:
60-
# scheme: [ObjCApiTests, SwiftApiTests, AuthenticationExampleUITests]
61-
# env:
62-
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
63-
# FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
64-
# runs-on: macos-15
65-
# steps:
66-
# - uses: actions/checkout@v4
67-
# - uses: actions/cache/restore@v4
68-
# with:
69-
# path: .build
70-
# key: ${{ needs.spm.outputs.cache_key }}
71-
# - name: Install Secrets
72-
# run: |
73-
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthCredentials.h.gpg \
74-
# FirebaseAuth/Tests/SampleSwift/ObjCApiTests/AuthCredentials.h "$plist_secret"
75-
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/SwiftApplication.plist.gpg \
76-
# FirebaseAuth/Tests/SampleSwift/AuthenticationExample/SwiftApplication.plist "$plist_secret"
77-
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/AuthCredentials.h.gpg \
78-
# FirebaseAuth/Tests/SampleSwift/AuthCredentials.h "$plist_secret"
79-
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/GoogleService-Info.plist.gpg \
80-
# FirebaseAuth/Tests/SampleSwift/GoogleService-Info.plist "$plist_secret"
81-
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/GoogleService-Info_multi.plist.gpg \
82-
# FirebaseAuth/Tests/SampleSwift/GoogleService-Info_multi.plist "$plist_secret"
83-
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Sample.entitlements.gpg \
84-
# FirebaseAuth/Tests/SampleSwift/Sample.entitlements "$plist_secret"
85-
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Credentials.swift.gpg \
86-
# FirebaseAuth/Tests/SampleSwift/SwiftApiTests/Credentials.swift "$plist_secret"
87-
# - name: Xcode
88-
# run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
89-
# - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
90-
# with:
91-
# timeout_minutes: 15
92-
# max_attempts: 3
93-
# retry_wait_seconds: 120
94-
# command: ([ -z $plist_secret ] || scripts/build.sh Auth iOS ${{ matrix.scheme }})
54+
integration-tests:
55+
# Don't run on private repo unless it is a PR.
56+
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
57+
needs: spm
58+
strategy:
59+
matrix:
60+
scheme: [ObjCApiTests, SwiftApiTests, AuthenticationExampleUITests]
61+
env:
62+
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
63+
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
64+
runs-on: macos-15
65+
steps:
66+
- uses: actions/checkout@v4
67+
- uses: actions/cache/restore@v4
68+
with:
69+
path: .build
70+
key: ${{ needs.spm.outputs.cache_key }}
71+
- name: Install Secrets
72+
run: |
73+
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthCredentials.h.gpg \
74+
FirebaseAuth/Tests/SampleSwift/ObjCApiTests/AuthCredentials.h "$plist_secret"
75+
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/SwiftApplication.plist.gpg \
76+
FirebaseAuth/Tests/SampleSwift/AuthenticationExample/SwiftApplication.plist "$plist_secret"
77+
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/AuthCredentials.h.gpg \
78+
FirebaseAuth/Tests/SampleSwift/AuthCredentials.h "$plist_secret"
79+
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/GoogleService-Info.plist.gpg \
80+
FirebaseAuth/Tests/SampleSwift/GoogleService-Info.plist "$plist_secret"
81+
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/GoogleService-Info_multi.plist.gpg \
82+
FirebaseAuth/Tests/SampleSwift/GoogleService-Info_multi.plist "$plist_secret"
83+
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Sample.entitlements.gpg \
84+
FirebaseAuth/Tests/SampleSwift/Sample.entitlements "$plist_secret"
85+
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Credentials.swift.gpg \
86+
FirebaseAuth/Tests/SampleSwift/SwiftApiTests/Credentials.swift "$plist_secret"
87+
- name: Xcode
88+
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
89+
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
90+
with:
91+
timeout_minutes: 15
92+
max_attempts: 3
93+
retry_wait_seconds: 120
94+
command: ([ -z $plist_secret ] || scripts/build.sh Auth iOS ${{ matrix.scheme }})
9595

9696
quickstart:
9797
uses: ./.github/workflows/common_quickstart.yml
@@ -132,13 +132,14 @@ jobs:
132132
# testapp_dir: quickstart-ios/build-for-testing
133133
# test_type: "xctest"
134134

135-
# auth-cron-only:
136-
# needs: pod_lib_lint
137-
# uses: ./.github/workflows/common_cocoapods_cron.yml
138-
# with:
139-
# product: FirebaseAuth
140-
# platforms: '[ "ios", "tvos --skip-tests", "macos --skip-tests", "watchos --skip-tests" ]'
141-
# flags: '[ "--use-static-frameworks" ]'
142-
# setup_command: scripts/configure_test_keychain.sh
143-
# secrets:
144-
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
135+
auth-cron-only:
136+
needs: pod_lib_lint
137+
uses: ./.github/workflows/common_cocoapods_cron.yml
138+
with:
139+
product: FirebaseAuth
140+
platforms: '[ "ios", "tvos --skip-tests", "macos --skip-tests", "watchos --skip-tests" ]'
141+
flags: '[ "--use-static-frameworks" ]'
142+
setup_command: scripts/configure_test_keychain.sh
143+
ignore_deprecation_warnings: true
144+
secrets:
145+
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}

.github/workflows/common_cocoapods.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,12 @@ on:
7575
required: false
7676
default: true
7777

78+
# Whether to lint with `--verbose`. Defaults to false.
79+
verbose:
80+
type: boolean
81+
required: false
82+
default: false
83+
7884
# Whether to additionally build with Swift 6. Defaults to false.
7985
supports_swift6:
8086
type: boolean
@@ -151,6 +157,7 @@ jobs:
151157
command: |
152158
scripts/pod_lib_lint.rb ${{ inputs.product }}.podspec --platforms=${{ matrix.platform }} \
153159
${{ inputs.allow_warnings == true && '--allow-warnings' || '' }} \
160+
${{ inputs.verbose == true && '--verbose' || '' }} \
154161
${{ inputs.analyze == false && '--no-analyze' || '' }} \
155162
${{ inputs.test_specs != '' && format('--test-specs={0}', inputs.test_specs) || '' }} \
156163
${{ (contains(inputs.buildonly_platforms, matrix.platform) || contains(inputs.buildonly_platforms, 'all')) && '--skip-tests' || '' }}

.github/workflows/common_cocoapods_cron.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,11 @@ on:
4646
required: false
4747
default: "macos-15"
4848

49-
env:
50-
FIREBASE_CI: true
49+
# Whether to ignore deprecation warnings by setting FIREBASE_CI.
50+
ignore_deprecation_warnings:
51+
type: boolean
52+
required: false
53+
default: false
5154

5255
jobs:
5356
cron-job:
@@ -67,6 +70,9 @@ jobs:
6770
run: scripts/setup_bundler.sh
6871
- name: Xcode
6972
run: sudo xcode-select -s /Applications/${{ inputs.xcode }}.app/Contents/Developer
73+
- name: Set FIREBASE_CI, if needed.
74+
if: inputs.ignore_deprecation_warnings == true
75+
run: echo "FIREBASE_CI=true" >> $GITHUB_ENV
7076
- name: Run setup command, if needed.
7177
if: inputs.setup_command != ''
7278
env:

.github/workflows/crashlytics.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ on:
1818
- 'Interop/Analytics/Public/*.h'
1919
- 'Gemfile*'
2020
schedule:
21-
# Run every day at 7pm (PDT) / 10pm (EDT) - cron uses UTC times
22-
- cron: '0 2 * * *'
21+
# Run every day at 11pm (PDT) / 2am (EDT) - cron uses UTC times
22+
- cron: '0 6 * * *'
2323

2424
concurrency:
2525
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}

.github/workflows/firebaseai.yml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@ permissions:
2727

2828
jobs:
2929
spm:
30+
strategy:
31+
matrix:
32+
target: [FirebaseAILogicUnit, FirebaseAIUnit]
3033
uses: ./.github/workflows/common.yml
3134
with:
32-
target: FirebaseAIUnit
35+
target: ${{ matrix.target }}
3336
setup_command: scripts/update_vertexai_responses.sh
3437

3538
testapp-integration:
@@ -56,13 +59,13 @@ jobs:
5659
path: .build
5760
key: ${{ needs.spm.outputs.cache_key }}
5861
- name: Install Secret GoogleService-Info.plist
59-
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/VertexAI/TestApp-GoogleService-Info.plist.gpg \
62+
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FirebaseAI/TestApp-GoogleService-Info.plist.gpg \
6063
FirebaseAI/Tests/TestApp/Resources/GoogleService-Info.plist "$secrets_passphrase"
6164
- name: Install Secret GoogleService-Info-Spark.plist
62-
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/VertexAI/TestApp-GoogleService-Info-Spark.plist.gpg \
65+
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FirebaseAI/TestApp-GoogleService-Info-Spark.plist.gpg \
6366
FirebaseAI/Tests/TestApp/Resources/GoogleService-Info-Spark.plist "$secrets_passphrase"
6467
- name: Install Secret Credentials.swift
65-
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/VertexAI/TestApp-Credentials.swift.gpg \
68+
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FirebaseAI/TestApp-Credentials.swift.gpg \
6669
FirebaseAI/Tests/TestApp/Tests/Integration/Credentials.swift "$secrets_passphrase"
6770
- name: Xcode
6871
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
@@ -77,9 +80,12 @@ jobs:
7780
retention-days: 2
7881

7982
pod_lib_lint:
83+
strategy:
84+
matrix:
85+
product: [FirebaseAILogic, FirebaseAI]
8086
uses: ./.github/workflows/common_cocoapods.yml
8187
with:
82-
product: FirebaseAI
88+
product: ${{ matrix.product }}
8389
supports_swift6: true
8490
setup_command: scripts/update_vertexai_responses.sh
8591

.github/workflows/spm.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ jobs:
8585
max_attempts: 3
8686
retry_wait_seconds: 120
8787
command: scripts/build.sh Firebase-Package iOS ${{ matrix.test }}
88+
- uses: actions/upload-artifact@v4
89+
if: ${{ failure() }}
90+
with:
91+
name: spm-build-run-${{ matrix.os }}-${{ matrix.xcode }}-logs
92+
path: xcodebuild-*.log
93+
if-no-files-found: error
8894

8995
# Test iOS Device build since some Firestore dependencies build different files.
9096
iOS-Device:
@@ -113,6 +119,12 @@ jobs:
113119
run: scripts/setup_spm_tests.sh
114120
- name: iOS Device and Test Build
115121
run: scripts/third_party/travis/retry.sh ./scripts/build.sh Firebase-Package iOS-device spmbuildonly
122+
- uses: actions/upload-artifact@v4
123+
if: ${{ failure() }}
124+
with:
125+
name: spm-ios-device-${{ matrix.os }}-${{ matrix.xcode }}-logs
126+
path: xcodebuild-*.log
127+
if-no-files-found: error
116128

117129
platforms:
118130
# Don't run on private repo unless it is a PR.
@@ -148,3 +160,10 @@ jobs:
148160
run: scripts/third_party/travis/retry.sh ./scripts/build.sh version-test ${{ matrix.target }} spm
149161
- name: Analytics Build Tests
150162
run: scripts/third_party/travis/retry.sh ./scripts/build.sh analytics-import-test ${{ matrix.target }} spm
163+
- uses: actions/upload-artifact@v4
164+
if: ${{ failure() }}
165+
with:
166+
name: spm-platforms-${{ matrix.target }}-${{ matrix.os }}-${{ matrix.xcode }}-logs
167+
path: xcodebuild-*.log
168+
if-no-files-found: error
169+

.github/workflows/zip.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,57 @@ jobs:
457457
quickstart-ios/
458458
!quickstart-ios/**/GoogleService-Info.plist
459459
460+
quickstart_framework_firebaseai:
461+
needs: package-head
462+
if: ${{ !cancelled() && (success() || github.event.inputs.zip_run_id != '') }}
463+
env:
464+
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
465+
SDK: "FirebaseAI"
466+
# This is a workaround to use the FirebaseAIExampleZip scheme that does not have the SPM dependency.
467+
SWIFT_SUFFIX: "Zip"
468+
strategy:
469+
matrix:
470+
artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
471+
build-env:
472+
- os: macos-15
473+
xcode: Xcode_16.4
474+
runs-on: ${{ matrix.build-env.os }}
475+
steps:
476+
- uses: actions/checkout@v4
477+
- name: Get framework dir
478+
uses: actions/[email protected]
479+
with:
480+
name: ${{ matrix.artifact }}
481+
run-id: ${{ github.event.inputs.zip_run_id || github.run_id }}
482+
github-token: ${{ secrets.GITHUB_TOKEN }}
483+
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
484+
- name: Xcode
485+
run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
486+
- name: Setup Bundler
487+
run: ./scripts/setup_bundler.sh
488+
- name: Move frameworks
489+
run: |
490+
mkdir -p "${HOME}"/ios_frameworks/
491+
find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
492+
- uses: actions/checkout@v4
493+
- name: Setup quickstart
494+
run: SAMPLE="$SDK" TARGET="${SDK}ExampleZip" scripts/setup_quickstart_framework.sh \
495+
"${HOME}"/ios_frameworks/Firebase/FirebaseAILogic/* \
496+
"${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
497+
- name: Install Secret GoogleService-Info.plist
498+
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FirebaseAI/TestApp-GoogleService-Info.plist.gpg \
499+
quickstart-ios/firebaseai/GoogleService-Info.plist "$plist_secret"
500+
- name: Test Quickstart
501+
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
502+
- name: Remove data before upload
503+
if: ${{ failure() }}
504+
run: scripts/remove_data.sh firebaseai
505+
- uses: actions/upload-artifact@v4
506+
if: ${{ failure() }}
507+
with:
508+
name: quickstart_artifacts_firebaseai
509+
path: quickstart-ios/
510+
460511
quickstart_framework_firestore:
461512
needs: packaging_done
462513
if: ${{ !cancelled() }}
@@ -594,6 +645,12 @@ jobs:
594645
run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
595646
"${HOME}"/ios_frameworks/Firebase/FirebaseMessaging/* \
596647
"${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
648+
# - name: Setup swift quickstart
649+
# run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
650+
# - name: Add frameworks to Crashlytics watchOS target
651+
# run: |
652+
# cd quickstart-ios/messaging
653+
# "${GITHUB_WORKSPACE}"/quickstart-ios/scripts/add_framework_script.rb --sdk Messaging --target NotificationServiceExtension --framework_path Firebase/
597654
- name: Install Secret GoogleService-Info.plist
598655
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
599656
quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"

Carthage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Firebase components that you want to include in your app. Note that
3131

3232
```
3333
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseABTestingBinary.json"
34-
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAIBinary.json"
34+
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAILogicBinary.json"
3535
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAdMobBinary.json"
3636
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
3737
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAppCheckBinary.json"

CoreOnly/NOTICES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ AppCheckCore
22
Firebase
33
FirebaseABTesting
44
FirebaseAI
5+
FirebaseAILogic
56
FirebaseAppCheck
67
FirebaseAppCheckInterop
78
FirebaseAppDistribution

0 commit comments

Comments
 (0)