Skip to content

Commit 78180b7

Browse files
committed
merge in base
2 parents e063c84 + c3cc79a commit 78180b7

File tree

413 files changed

+2984
-15555
lines changed

Some content is hidden

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

413 files changed

+2984
-15555
lines changed

.github/ISSUE_TEMPLATE/BUG_REPORT.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ body:
6868
multiple: true
6969
options:
7070
- AB Testing
71+
- AI Logic
7172
- Analytics
7273
- App Check
7374
- App Distribution
@@ -85,7 +86,6 @@ body:
8586
- Performance
8687
- Remote Config
8788
- Storage
88-
- VertexAI
8989
- All
9090
- Infrastructure
9191
validations:

.github/ISSUE_TEMPLATE/FEATURE_REQUEST.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: ➕ Feature Request
2-
description: File a file request if you have a suggestion for a new feature.
2+
description: File a feature request if you have a suggestion for a new feature.
33
title: "[FR]: "
44
labels: ["type: feature request"]
55
body:
@@ -48,14 +48,14 @@ body:
4848
multiple: true
4949
options:
5050
- AB Testing
51+
- AI Logic
5152
- Analytics
5253
- App Check
5354
- App Distribution
5455
- Authentication
5556
- Crashlytics
5657
- Database
5758
- Data Connect
58-
- DynamicLinks
5959
- Firestore
6060
- Functions
6161
- In-App Messaging
@@ -65,6 +65,5 @@ body:
6565
- Performance
6666
- Remote Config
6767
- Storage
68-
- Vertex AI
6968
validations:
7069
required: true

.github/workflows/abtesting.yml

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
name: abtesting
22

3+
permissions:
4+
contents: read
5+
36
on:
47
workflow_dispatch:
58
pull_request:
69
paths:
710
- 'FirebaseABTesting**'
811
- 'Interop/Analytics/Public/*.h'
912
- '.github/workflows/abtesting.yml'
13+
- '.github/workflows/common.yml'
14+
- '.github/workflows/common_cocoapods.yml'
15+
- '.github/workflows/common_catalyst.yml'
1016
- 'Gemfile*'
1117
schedule:
1218
# Run every day at 1am(PST) - cron uses UTC times
@@ -28,43 +34,10 @@ jobs:
2834
product: FirebaseABTesting
2935
target: FirebaseABTesting-Unit-unit
3036

31-
pod-lib-lint:
32-
# Don't run on private repo unless it is a PR.
33-
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
34-
35-
strategy:
36-
matrix:
37-
include:
38-
- os: macos-14
39-
xcode: Xcode_16.2
40-
target: ios
41-
- os: macos-15
42-
xcode: Xcode_16.2
43-
target: ios
44-
- os: macos-15
45-
xcode: Xcode_16.2
46-
target: tvos
47-
- os: macos-15
48-
xcode: Xcode_16.2
49-
target: macos
50-
- os: macos-15
51-
xcode: Xcode_16.2
52-
target: watchos
53-
runs-on: ${{ matrix.os }}
54-
steps:
55-
- uses: actions/checkout@v4
56-
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
57-
- name: Setup Bundler
58-
run: scripts/setup_bundler.sh
59-
- name: Xcode
60-
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
61-
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
62-
with:
63-
timeout_minutes: 120
64-
max_attempts: 3
65-
retry_on: error
66-
retry_wait_seconds: 120
67-
command: scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=${{ matrix.target }}
37+
pod_lib_lint:
38+
uses: ./.github/workflows/common_cocoapods.yml
39+
with:
40+
product: FirebaseABTesting
6841

6942
quickstart:
7043
# Don't run on private repo unless it is a PR.
@@ -136,7 +109,7 @@ jobs:
136109
flags: [
137110
'--use-static-frameworks'
138111
]
139-
needs: pod-lib-lint
112+
needs: pod_lib_lint
140113
steps:
141114
- uses: actions/checkout@v4
142115
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1

.github/workflows/analytics.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
- os: macos-14
3030
xcode: Xcode_16.2
3131
- os: macos-15
32-
xcode: Xcode_16.3
32+
xcode: Xcode_16.4
3333
runs-on: ${{ matrix.os }}
3434

3535
steps:

.github/workflows/appdistribution.yml

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
name: appdistribution
22

3+
permissions:
4+
contents: read
5+
36
on:
47
workflow_dispatch:
58
pull_request:
69
paths:
710
- 'FirebaseAppDistribution**'
811
- '.github/workflows/appdistribution.yml'
12+
- '.github/workflows/common.yml'
13+
- '.github/workflows/common_cocoapods.yml'
14+
- '.github/workflows/common_catalyst.yml'
915
- 'Gemfile*'
1016
schedule:
1117
# Run every day at 1am (PST) - cron uses UTC times
@@ -28,29 +34,11 @@ jobs:
2834
product: FirebaseAppDistribution
2935
target: FirebaseAppDistribution-Unit-unit
3036

31-
pod-lib-lint:
32-
# Don't run on private repo unless it is a PR.
33-
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
34-
35-
strategy:
36-
matrix:
37-
include:
38-
- os: macos-14
39-
xcode: Xcode_16.2
40-
- os: macos-15
41-
xcode: Xcode_16.3
42-
runs-on: ${{ matrix.os }}
43-
steps:
44-
- uses: actions/checkout@v4
45-
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
46-
- name: Setup Bundler
47-
run: scripts/setup_bundler.sh
48-
- name: Xcode
49-
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
50-
- name: Build and test
51-
run: |
52-
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAppDistribution.podspec \
53-
--platforms=ios
37+
pod_lib_lint:
38+
uses: ./.github/workflows/common_cocoapods.yml
39+
with:
40+
product: FirebaseAppDistribution
41+
platforms: iOS # App Distro only supports iOS.
5442

5543
appdistribution-cron-only:
5644
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
@@ -62,7 +50,7 @@ jobs:
6250
flags: [
6351
'--use-static-frameworks'
6452
]
65-
needs: pod-lib-lint
53+
needs: pod_lib_lint
6654
steps:
6755
- uses: actions/checkout@v4
6856
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1

.github/workflows/archiving.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
strategy:
2525
matrix:
2626
# These need to be on a single line or else the formatting won't validate.
27-
pod: ["FirebaseAppDistribution", "FirebaseDynamicLinks", "FirebaseInAppMessaging", "FirebasePerformance"]
27+
pod: ["FirebaseAppDistribution", "FirebaseInAppMessaging", "FirebasePerformance"]
2828
steps:
2929
- uses: actions/checkout@v4
3030
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126

.github/workflows/auth.yml

Lines changed: 16 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
name: auth
22

3+
permissions:
4+
contents: read
5+
36
on:
47
workflow_dispatch:
58
pull_request:
69
paths:
710
- 'FirebaseAuth**'
811
- 'FirebaseAuth/Interop/*.h'
912
- '.github/workflows/auth.yml'
13+
- '.github/workflows/common.yml'
14+
- '.github/workflows/common_cocoapods.yml'
15+
- '.github/workflows/common_catalyst.yml'
1016
- 'scripts/gha-encrypted/AuthSample/SwiftApplication.plist.gpg'
1117
- 'Gemfile*'
1218
schedule:
@@ -34,63 +40,19 @@ jobs:
3440
target: FirebaseAuth-Unit-unit
3541
buildonly: true
3642

37-
pod-lib-lint:
38-
# Don't run on private repo unless it is a PR.
39-
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
40-
43+
pod_lib_lint:
4144
strategy:
4245
matrix:
43-
podspec: [FirebaseAuthInterop.podspec, FirebaseAuth.podspec]
44-
target: [ios, tvos, macos --skip-tests, watchos]
45-
os: [macos-15]
46-
xcode: [Xcode_16.3]
47-
runs-on: ${{ matrix.os }}
48-
steps:
49-
- uses: actions/checkout@v4
50-
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
51-
- name: Setup Bundler
52-
run: scripts/setup_bundler.sh
53-
- name: Configure test keychain
54-
run: scripts/configure_test_keychain.sh
55-
- name: Xcode
56-
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
57-
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
58-
with:
59-
timeout_minutes: 120
60-
max_attempts: 3
61-
retry_on: error
62-
retry_wait_seconds: 120
63-
command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }}
64-
65-
spm-package-resolved:
66-
env:
67-
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
68-
runs-on: macos-15
69-
outputs:
70-
cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
71-
steps:
72-
- uses: actions/checkout@v4
73-
- name: Xcode
74-
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
75-
- name: Generate Swift Package.resolved
76-
id: swift_package_resolve
77-
run: |
78-
swift package resolve
79-
- name: Generate cache key
80-
id: generate_cache_key
81-
run: |
82-
cache_key="${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}"
83-
echo "cache_key=${cache_key}" >> "$GITHUB_OUTPUT"
84-
- uses: actions/cache/save@v4
85-
id: cache
86-
with:
87-
path: .build
88-
key: ${{ steps.generate_cache_key.outputs.cache_key }}
46+
product: [FirebaseAuthInterop, FirebaseAuth]
47+
uses: ./.github/workflows/common_cocoapods.yml
48+
with:
49+
product: ${{ matrix.product }}
50+
buildonly_platforms: macOS
8951

9052
integration-tests:
9153
# Don't run on private repo unless it is a PR.
9254
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
93-
needs: [spm-package-resolved]
55+
needs: spm
9456
strategy:
9557
matrix:
9658
scheme: [ObjCApiTests, SwiftApiTests, AuthenticationExampleUITests]
@@ -103,7 +65,7 @@ jobs:
10365
- uses: actions/cache/restore@v4
10466
with:
10567
path: .build
106-
key: ${{needs.spm-package-resolved.outputs.cache_key}}
68+
key: ${{ needs.spm.outputs.cache_key }}
10769
- name: Install Secrets
10870
run: |
10971
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthCredentials.h.gpg \
@@ -121,7 +83,7 @@ jobs:
12183
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Credentials.swift.gpg \
12284
FirebaseAuth/Tests/SampleSwift/SwiftApiTests/Credentials.swift "$plist_secret"
12385
- name: Xcode
124-
run: sudo xcode-select -s /Applications/Xcode_16.3.app/Contents/Developer
86+
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
12587
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
12688
with:
12789
timeout_minutes: 120
@@ -190,7 +152,7 @@ jobs:
190152
flags: [
191153
'--use-static-frameworks'
192154
]
193-
needs: pod-lib-lint
155+
needs: pod_lib_lint
194156
steps:
195157
- uses: actions/checkout@v4
196158
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1

.github/workflows/combine.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,13 @@ on:
3333
# Rebuild on Ruby infrastructure changes.
3434
- 'Gemfile'
3535

36-
# Dependencies (Disabled to avoid building Firestore in presubmits)
37-
# - 'FirebaseCore/**'
38-
# - 'FirebaseAuth/**'
39-
# - 'FirebaseFunctions/**'
40-
# - 'Firestore/**'
41-
# - 'FirebaseStorage/**'
36+
# Dependencies
37+
- 'FirebaseCore/**'
38+
- 'FirebaseTestingSupport/**'
39+
- 'FirebaseAuth/**'
40+
- 'FirebaseFunctions/**'
41+
- 'FirebaseStorage/**'
42+
# - 'Firestore/**' # (Disabled to avoid building Firestore in presubmits)
4243

4344
schedule:
4445
# Run every day at 11pm (PST) - cron uses UTC times

.github/workflows/common.yml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,22 @@ on:
4141
required: false
4242
default: ""
4343

44+
# A command to execute before testing.
45+
#
46+
# This is useful for additional set up, like starting an emulator or
47+
# downloading test data.
48+
#
49+
# Example: `FirebaseFunctions/Backend/start.sh synchronous`
50+
setup_command:
51+
type: string
52+
required: false
53+
default: ""
54+
55+
outputs:
56+
cache_key:
57+
description: "The cache key for the Swift package resolution."
58+
value: ${{ jobs.spm-package-resolved.outputs.cache_key }}
59+
4460
jobs:
4561
spm-package-resolved:
4662
env:
@@ -54,8 +70,7 @@ jobs:
5470
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
5571
- name: Generate Swift Package.resolved
5672
id: swift_package_resolve
57-
run: |
58-
swift package resolve
73+
run: swift package resolve
5974
- name: Generate cache key
6075
id: generate_cache_key
6176
run: |
@@ -74,7 +89,7 @@ jobs:
7489
strategy:
7590
matrix:
7691
os: [macos-15]
77-
xcode: [Xcode_16.3]
92+
xcode: [Xcode_16.4]
7893
platform: [iOS, tvOS, macOS, watchOS, catalyst, visionOS]
7994
include:
8095
- os: macos-14
@@ -92,6 +107,9 @@ jobs:
92107
- name: Install visionOS, if needed.
93108
if: matrix.platform == 'visionOS'
94109
run: xcodebuild -downloadPlatform visionOS
110+
- name: Run setup command, if needed.
111+
if: inputs.setup_command != ''
112+
run: ${{ inputs.setup_command }}
95113
- name: Initialize xcodebuild
96114
run: scripts/setup_spm_tests.sh
97115
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3

0 commit comments

Comments
 (0)