Skip to content

Commit bc2c2d4

Browse files
authored
GHA updates: visionOS and Xcode 16 - Part 1 (#13697)
1 parent 2bff4d4 commit bc2c2d4

19 files changed

+152
-98
lines changed

.github/workflows/abtesting.yml

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,8 @@ jobs:
2424
matrix:
2525
# TODO: macos tests are blocked by https://github.com/erikdoe/ocmock/pull/532
2626
target: [ios, tvos, macos --skip-tests, watchos]
27-
os: [macos-14, macos-13]
28-
include:
29-
- os: macos-14
30-
xcode: Xcode_15.3
31-
- os: macos-13
32-
xcode: Xcode_15.2
27+
os: [macos-14]
28+
xcode: [Xcode_15.2, Xcode_16]
3329
runs-on: ${{ matrix.os }}
3430
steps:
3531
- uses: actions/checkout@v4
@@ -46,30 +42,43 @@ jobs:
4642
retry_wait_seconds: 120
4743
command: scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=${{ matrix.target }}
4844

45+
spm-package-resolved:
46+
runs-on: macos-14
47+
outputs:
48+
cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
49+
steps:
50+
- uses: actions/checkout@v4
51+
- name: Generate Swift Package.resolved
52+
id: swift_package_resolve
53+
run: |
54+
swift package resolve
55+
- name: Generate cache key
56+
id: generate_cache_key
57+
run: |
58+
cache_key="${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}"
59+
echo "cache_key=${cache_key}" >> "$GITHUB_OUTPUT"
60+
- uses: actions/cache/save@v4
61+
id: cache
62+
with:
63+
path: .build
64+
key: ${{ steps.generate_cache_key.outputs.cache_key }}
65+
4966
spm:
5067
# Don't run on private repo unless it is a PR.
5168
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
69+
needs: [spm-package-resolved]
5270
strategy:
53-
max-parallel: 1
5471
matrix:
5572
target: [iOS, tvOS, macOS, catalyst, watchOS]
56-
os: [macos-13, macos-14]
57-
include:
58-
- os: macos-14
59-
xcode: Xcode_15.3
60-
- os: macos-13
61-
xcode: Xcode_15.2
62-
- os: macos-14
63-
xcode: Xcode_15.2
64-
- os: macos-14
65-
xcode: Xcode_15.2
66-
target: visionOS
73+
os: [macos-14]
74+
xcode: [Xcode_15.2, Xcode_16]
6775
runs-on: ${{ matrix.os }}
6876
steps:
6977
- uses: actions/checkout@v4
70-
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
78+
- uses: actions/cache/restore@v4
7179
with:
72-
cache_key: spm${{ matrix.os }}-${{ matrix.xcode }}-${{ matrix.target }}
80+
path: .build
81+
key: ${{needs.spm-package-resolved.outputs.cache_key}}
7382
- name: Xcode
7483
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
7584
- name: Initialize xcodebuild
@@ -137,7 +146,7 @@ jobs:
137146
steps:
138147
- uses: actions/checkout@v4
139148
- uses: ruby/setup-ruby@v1
140-
- uses: actions/setup-python@v4
149+
- uses: actions/setup-python@v5
141150
with:
142151
python-version: '3.11'
143152
- name: Setup quickstart

.github/workflows/api_diff_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
echo "file_list=$(git diff --name-only -r HEAD^1 HEAD | tr '\n' ' ')" >> $GITHUB_OUTPUT
3535
3636
- name: Setup python
37-
uses: actions/setup-python@v4
37+
uses: actions/setup-python@v5
3838
with:
3939
python-version: '3.10'
4040

.github/workflows/appdistribution.yml

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,8 @@ jobs:
2222
strategy:
2323
matrix:
2424
target: [ios]
25-
os: [macos-14, macos-13]
26-
include:
27-
- os: macos-14
28-
xcode: Xcode_15.3
29-
- os: macos-13
30-
xcode: Xcode_15.2
25+
os: [macos-14]
26+
xcode: [Xcode_15.2, Xcode_16]
3127
runs-on: ${{ matrix.os }}
3228
steps:
3329
- uses: actions/checkout@v4
@@ -41,25 +37,42 @@ jobs:
4137
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAppDistribution.podspec \
4238
--platforms=${{ matrix.target }}
4339
40+
spm-package-resolved:
41+
runs-on: macos-14
42+
outputs:
43+
cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
44+
steps:
45+
- uses: actions/checkout@v4
46+
- name: Generate Swift Package.resolved
47+
id: swift_package_resolve
48+
run: |
49+
swift package resolve
50+
- name: Generate cache key
51+
id: generate_cache_key
52+
run: |
53+
cache_key="${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}"
54+
echo "cache_key=${cache_key}" >> "$GITHUB_OUTPUT"
55+
- uses: actions/cache/save@v4
56+
id: cache
57+
with:
58+
path: .build
59+
key: ${{ steps.generate_cache_key.outputs.cache_key }}
60+
4461
spm:
4562
# Don't run on private repo unless it is a PR.
4663
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
47-
64+
needs: [spm-package-resolved]
4865
strategy:
49-
max-parallel: 1
5066
matrix:
51-
os: [macos-14, macos-13]
52-
include:
53-
- os: macos-14
54-
xcode: Xcode_15.3
55-
- os: macos-13
56-
xcode: Xcode_15.2
67+
os: [macos-14]
68+
xcode: [Xcode_15.2, Xcode_16]
5769
runs-on: ${{ matrix.os }}
5870
steps:
5971
- uses: actions/checkout@v4
60-
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
72+
- uses: actions/cache/restore@v4
6173
with:
62-
cache_key: spm${{ matrix.os }}-${{ matrix.xcode }}
74+
path: .build
75+
key: ${{needs.spm-package-resolved.outputs.cache_key}}
6376
- name: Xcode
6477
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
6578
- name: Initialize xcodebuild

.github/workflows/auth.yml

Lines changed: 61 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,9 @@ jobs:
2828
strategy:
2929
matrix:
3030
podspec: [FirebaseAuthInterop.podspec, FirebaseAuth.podspec]
31-
# TODO: macos tests are blocked by https://github.com/erikdoe/ocmock/pull/532
3231
target: [ios, tvos, macos --skip-tests, watchos]
33-
os: [macos-14, macos-13]
34-
include:
35-
- os: macos-14
36-
xcode: Xcode_15.3
37-
tests: --skip-tests
38-
- os: macos-13
39-
xcode: Xcode_15.2
40-
tests:
32+
os: [macos-14]
33+
xcode: [Xcode_15.2]
4134
runs-on: ${{ matrix.os }}
4235
steps:
4336
- uses: actions/checkout@v4
@@ -48,7 +41,6 @@ jobs:
4841
run: scripts/configure_test_keychain.sh
4942
- name: Xcode
5043
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
51-
#TODO: Restore warnings check after resolution of #11693
5244
- uses: nick-fields/retry@v3
5345
with:
5446
timeout_minutes: 120
@@ -57,6 +49,35 @@ jobs:
5749
retry_wait_seconds: 120
5850
command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }}
5951

52+
# TODO: Fix warnings on Xcode 16 and move into matrix above.
53+
pod-lib-lint-xc16:
54+
# Don't run on private repo unless it is a PR.
55+
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
56+
57+
strategy:
58+
matrix:
59+
podspec: [FirebaseAuthInterop.podspec, FirebaseAuth.podspec]
60+
target: [ios, tvos, macos --skip-tests --allow-warnings, watchos]
61+
os: [macos-14]
62+
xcode: [Xcode_16]
63+
runs-on: ${{ matrix.os }}
64+
steps:
65+
- uses: actions/checkout@v4
66+
- uses: ruby/setup-ruby@v1
67+
- name: Setup Bundler
68+
run: scripts/setup_bundler.sh
69+
- name: Configure test keychain
70+
run: scripts/configure_test_keychain.sh
71+
- name: Xcode
72+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
73+
- uses: nick-fields/retry@v3
74+
with:
75+
timeout_minutes: 120
76+
max_attempts: 3
77+
retry_on: error
78+
retry_wait_seconds: 120
79+
command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }} --allow-warnings
80+
6081
integration-tests:
6182
# Don't run on private repo unless it is a PR.
6283
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
@@ -99,31 +120,43 @@ jobs:
99120
retry_wait_seconds: 120
100121
command: ([ -z $plist_secret ] || scripts/build.sh Auth iOS ${{ matrix.scheme }})
101122

123+
spm-package-resolved:
124+
runs-on: macos-14
125+
outputs:
126+
cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
127+
steps:
128+
- uses: actions/checkout@v4
129+
- name: Generate Swift Package.resolved
130+
id: swift_package_resolve
131+
run: |
132+
swift package resolve
133+
- name: Generate cache key
134+
id: generate_cache_key
135+
run: |
136+
cache_key="${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}"
137+
echo "cache_key=${cache_key}" >> "$GITHUB_OUTPUT"
138+
- uses: actions/cache/save@v4
139+
id: cache
140+
with:
141+
path: .build
142+
key: ${{ steps.generate_cache_key.outputs.cache_key }}
143+
102144
spm:
103145
# Don't run on private repo unless it is a PR.
104146
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
147+
needs: [spm-package-resolved]
105148
strategy:
106-
max-parallel: 1
107149
matrix:
108-
target: [iOS, tvOS, macOS, catalyst, watchOS]
109-
os: [macos-13, macos-14]
110-
include:
111-
- os: macos-13
112-
xcode: Xcode_15.2
113-
test: spmbuildonly
114-
- os: macos-14
115-
xcode: Xcode_15.3
116-
test: spmbuildonly
117-
- os: macos-14
118-
xcode: Xcode_15.3
119-
target: visionOS
120-
test: spm
150+
target: [iOS spm, tvOS spm, macOS spmbuildonly, catalyst spm, watchOS spm]
151+
os: [macos-14]
152+
xcode: [Xcode_15.2, Xcode_16]
121153
runs-on: ${{ matrix.os }}
122154
steps:
123155
- uses: actions/checkout@v4
124-
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
156+
- uses: actions/cache/restore@v4
125157
with:
126-
cache_key: spm${{ matrix.os }}-${{ matrix.xcode }}-${{ matrix.target }}
158+
path: .build
159+
key: ${{needs.spm-package-resolved.outputs.cache_key}}
127160
- name: Xcode
128161
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
129162
- name: Initialize xcodebuild
@@ -134,7 +167,7 @@ jobs:
134167
max_attempts: 3
135168
retry_on: error
136169
retry_wait_seconds: 120
137-
command: scripts/third_party/travis/retry.sh ./scripts/build.sh AuthUnit ${{ matrix.target }} ${{ matrix.test }}
170+
command: scripts/third_party/travis/retry.sh ./scripts/build.sh AuthUnit ${{ matrix.target }}
138171

139172
catalyst:
140173
# Don't run on private repo unless it is a PR.
@@ -187,7 +220,7 @@ jobs:
187220
# steps:
188221
# - uses: actions/checkout@v4
189222
# - uses: ruby/setup-ruby@v1
190-
# - uses: actions/setup-python@v4
223+
# - uses: actions/setup-python@v5
191224
# with:
192225
# python-version: '3.11'
193226
# - name: Setup quickstart

.github/workflows/check.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ jobs:
2121
steps:
2222
- uses: actions/checkout@v4
2323

24-
- uses: actions/setup-python@v4
24+
- uses: actions/setup-python@v5
2525
with:
2626
python-version: 3.11
2727

2828
- name: Cache Mint packages
29-
uses: actions/cache@v3
29+
uses: actions/cache@v4
3030
with:
3131
path: ${{ env.MINT_PATH }}
3232
key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }}

.github/workflows/crashlytics.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ jobs:
147147
steps:
148148
- uses: actions/checkout@v4
149149
- uses: ruby/setup-ruby@v1
150-
- uses: actions/setup-python@v4
150+
- uses: actions/setup-python@v5
151151
with:
152152
python-version: '3.11'
153153
- name: Setup quickstart

.github/workflows/dynamiclinks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ jobs:
121121
steps:
122122
- uses: actions/checkout@v4
123123
- uses: ruby/setup-ruby@v1
124-
- uses: actions/setup-python@v4
124+
- uses: actions/setup-python@v5
125125
with:
126126
python-version: '3.11'
127127
- name: Setup quickstart

.github/workflows/firestore-nightly.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
steps:
2828
- uses: actions/checkout@v3
2929

30-
- uses: actions/setup-python@v4
30+
- uses: actions/setup-python@v5
3131
with:
3232
python-version: 3.11
3333

@@ -55,21 +55,21 @@ jobs:
5555
- uses: actions/checkout@v3
5656

5757
- name: Prepare ccache
58-
uses: actions/cache@v3
58+
uses: actions/cache@v4
5959
with:
6060
path: ${{ runner.temp }}/ccache
6161
key: firestore-ccache-${{ matrix.databaseId }}-${{ runner.os }}-${{ github.sha }}
6262
restore-keys: |
6363
firestore-ccache-${{ matrix.databaseId }}-${{ runner.os }}-
6464
6565
- name: Cache Mint packages
66-
uses: actions/cache@v3
66+
uses: actions/cache@v4
6767
with:
6868
path: ${{ env.MINT_PATH }}
6969
key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }}
7070
restore-keys: ${{ runner.os }}-mint-
7171

72-
- uses: actions/setup-python@v4
72+
- uses: actions/setup-python@v5
7373
with:
7474
python-version: '3.7'
7575

0 commit comments

Comments
 (0)