Skip to content

Commit aec227b

Browse files
authored
More Xcode 15 CI (#12042)
1 parent fa7ca72 commit aec227b

15 files changed

+238
-65
lines changed

.github/workflows/firebasepod.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
# Don't run on private repo unless it is a PR.
2323
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
2424

25-
runs-on: macos-12
25+
runs-on: macos-latest
2626

2727
steps:
2828
- uses: actions/checkout@v3

.github/workflows/functions.yml

+32-8
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,41 @@ jobs:
2727
# Don't run on private repo unless it is a PR.
2828
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
2929

30-
runs-on: macos-12
3130
strategy:
3231
matrix:
3332
target: [ios, tvos, macos, watchos]
33+
os: [macos-12, macos-13]
34+
include:
35+
- os: macos-12
36+
xcode: Xcode_14.2
37+
- os: macos-13
38+
xcode: Xcode_15.0.1
39+
runs-on: ${{ matrix.os }}
3440
steps:
3541
- uses: actions/checkout@v3
3642
- uses: ruby/setup-ruby@v1
43+
- name: Xcode
44+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
3745
- name: Setup Bundler
3846
run: scripts/setup_bundler.sh
39-
- name: Integration Test Server
40-
run: FirebaseFunctions/Backend/start.sh synchronous
47+
# The integration tests are flaky on Xcode 15 so only run the unit tests. The integration tests still run with SPM.
48+
# - name: Integration Test Server
49+
# run: FirebaseFunctions/Backend/start.sh synchronous
4150
- name: Build and test
4251
run: |
43-
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseFunctions.podspec --platforms=${{ matrix.target }}
52+
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseFunctions.podspec \
53+
--test-specs=unit --platforms=${{ matrix.target }}
4454
4555
spm-integration:
4656
# Don't run on private repo unless it is a PR.
4757
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
48-
runs-on: macos-12
58+
strategy:
59+
matrix:
60+
os: [macos-12]
61+
include:
62+
- os: macos-12
63+
xcode: Xcode_14.2
64+
runs-on: ${{ matrix.os }}
4965
env:
5066
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
5167
steps:
@@ -57,8 +73,8 @@ jobs:
5773
run: scripts/setup_spm_tests.sh
5874
- name: Integration Test Server
5975
run: FirebaseFunctions/Backend/start.sh synchronous
60-
- name: Functions Unit Tests
61-
run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFunctionsUnit iOS spm
76+
- name: Xcode
77+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
6278
- name: iOS Swift Integration Tests (including Swift library)
6379
run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFunctionsIntegration iOS spm
6480
- name: iOS ObjC Integration Tests (using Swift library)
@@ -69,15 +85,23 @@ jobs:
6985
spm-unit:
7086
# Don't run on private repo.
7187
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
72-
runs-on: macos-12
7388
strategy:
7489
matrix:
7590
target: [iOS, tvOS, macOS, catalyst, watchOS]
91+
os: [macos-12, macos-13]
92+
include:
93+
- os: macos-12
94+
xcode: Xcode_14.2
95+
- os: macos-13
96+
xcode: Xcode_15.0.1
97+
runs-on: ${{ matrix.os }}
7698
steps:
7799
- uses: actions/checkout@v3
78100
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
79101
with:
80102
cache_key: ${{ matrix.os }}
103+
- name: Xcode
104+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
81105
- name: Initialize xcodebuild
82106
run: scripts/setup_spm_tests.sh
83107
- name: Unit Tests

.github/workflows/inappmessaging.yml

+20-2
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,21 @@ jobs:
2121
# Don't run on private repo unless it is a PR.
2222
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
2323

24-
runs-on: macos-12
2524
strategy:
2625
matrix:
2726
podspec: [FirebaseInAppMessaging.podspec, FirebaseInAppMessagingSwift.podspec --allow-warnings]
27+
os: [macos-12, macos-13]
28+
include:
29+
- os: macos-12
30+
xcode: Xcode_14.2
31+
- os: macos-13
32+
xcode: Xcode_15.0.1
33+
runs-on: ${{ matrix.os }}
2834
steps:
2935
- uses: actions/checkout@v3
3036
- uses: ruby/setup-ruby@v1
37+
- name: Xcode
38+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
3139
- name: Setup Bundler
3240
run: scripts/setup_bundler.sh
3341
- name: FirebaseInAppMessaging
@@ -60,12 +68,22 @@ jobs:
6068
spm:
6169
# Don't run on private repo unless it is a PR.
6270
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
63-
runs-on: macos-12
71+
strategy:
72+
matrix:
73+
os: [macos-12, macos-13]
74+
include:
75+
- os: macos-12
76+
xcode: Xcode_14.2
77+
- os: macos-13
78+
xcode: Xcode_15.0.1
79+
runs-on: ${{ matrix.os }}
6480
steps:
6581
- uses: actions/checkout@v3
6682
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
6783
with:
6884
cache_key: ${{ matrix.os }}
85+
- name: Xcode
86+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
6987
- name: Initialize xcodebuild
7088
run: scripts/setup_spm_tests.sh
7189
- name: iOS Unit Tests

.github/workflows/installations.yml

+27-5
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,22 @@ jobs:
1919
# Don't run on private repo unless it is a PR.
2020
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
2121

22-
runs-on: macos-12
2322
env:
2423
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
2524
strategy:
2625
matrix:
27-
target: [ios, tvos, macos]
26+
# TODO: macos tests are blocked by https://github.com/erikdoe/ocmock/pull/532
27+
target: [ios, tvos, macos --skip-tests, watchos]
28+
os: [macos-12, macos-13]
29+
include:
30+
- os: macos-12
31+
xcode: Xcode_14.2
32+
test-specs: unit,integration
33+
# Integration tests are flaky on Xcode 15
34+
- os: macos-13
35+
xcode: Xcode_15.0.1
36+
test-specs: unit
37+
runs-on: ${{ matrix.os }}
2838
steps:
2939
- uses: actions/checkout@v3
3040
- uses: ruby/setup-ruby@v1
@@ -40,23 +50,35 @@ jobs:
4050
- name: Get boolean for secrets available
4151
id: secrets
4252
run: echo "::set-output name=val::$([[ -z $plist_secret ]] && echo "0" || echo "1")"
53+
- name: Xcode
54+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
4355
- name: Build and test
4456
run: |
4557
export FIS_INTEGRATION_TESTS_REQUIRED=${{ steps.secrets.outputs.val }}
4658
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseInstallations.podspec \
47-
--platforms=${{ matrix.target }}
59+
--platforms=${{ matrix.target }} --test-specs=--platforms=${{ matrix.test-specs }}
60+
4861
spm:
4962
# Don't run on private repo unless it is a PR.
5063
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
51-
runs-on: macos-12
5264
strategy:
5365
matrix:
54-
target: [iOS, tvOS, macOS, catalyst, watchOS]
66+
# TODO: macos tests are blocked by https://github.com/erikdoe/ocmock/pull/532
67+
target: [iOS, tvOS, macOS, watchOS, catalyst]
68+
os: [macos-12, macos-13]
69+
include:
70+
- os: macos-12
71+
xcode: Xcode_14.2
72+
- os: macos-13
73+
xcode: Xcode_15.0.1
74+
runs-on: ${{ matrix.os }}
5575
steps:
5676
- uses: actions/checkout@v3
5777
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
5878
with:
5979
cache_key: ${{ matrix.os }}
80+
- name: Xcode
81+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
6082
- name: Initialize xcodebuild
6183
run: scripts/setup_spm_tests.sh
6284
- name: Unit Tests

.github/workflows/messaging.yml

+6-2
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,10 @@ jobs:
6464
include:
6565
- os: macos-12
6666
xcode: Xcode_14.2
67+
tests: --test-specs=unit
6768
- os: macos-13
6869
xcode: Xcode_15.0.1
70+
tests: --skip-tests
6971
runs-on: ${{ matrix.os }}
7072
steps:
7173
- uses: actions/checkout@v3
@@ -75,7 +77,7 @@ jobs:
7577
- name: Xcode
7678
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
7779
- name: Build and test
78-
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb ${{ matrix.podspec }} --test-specs=unit --platforms=${{ matrix.target }}
80+
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb ${{ matrix.podspec }} ${{ matrix.tests }} --platforms=${{ matrix.target }}
7981

8082
spm:
8183
# Don't run on private repo unless it is a PR.
@@ -186,8 +188,10 @@ jobs:
186188
include:
187189
- os: macos-12
188190
xcode: Xcode_14.2
191+
tests: --test-specs=unit
189192
- os: macos-13
190193
xcode: Xcode_15.0.1
194+
tests: --skip-tests
191195
runs-on: ${{ matrix.os }}
192196
steps:
193197
- uses: actions/checkout@v3
@@ -197,7 +201,7 @@ jobs:
197201
- name: Xcode
198202
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
199203
- name: PodLibLint Messaging Cron
200-
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec --test-specs=unit --platforms=${{ matrix.target }} --use-static-frameworks
204+
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec ${{ matrix.tests }} --platforms=${{ matrix.target }} --use-static-frameworks
201205

202206
messaging-sample-build-test:
203207
# Don't run on private repo unless it is a PR.

.github/workflows/mlmodeldownloader.yml

+20-5
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,18 @@ concurrency:
1717
jobs:
1818
pod-lib-lint:
1919
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
20-
runs-on: macos-12
2120
env:
2221
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
2322
strategy:
2423
matrix:
25-
target: [ios, tvos, macos]
24+
target: [ios, tvos, macos, watchos]
25+
os: [macos-12, macos-13]
26+
include:
27+
- os: macos-12
28+
xcode: Xcode_14.2
29+
- os: macos-13
30+
xcode: Xcode_15.0.1
31+
runs-on: ${{ matrix.os }}
2632
steps:
2733
- uses: actions/checkout@v3
2834
- uses: ruby/setup-ruby@v1
@@ -35,9 +41,10 @@ jobs:
3541
mkdir FirebaseMLModelDownloader/Tests/Integration/Resources
3642
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/MLModelDownloader/GoogleService-Info.plist.gpg \
3743
FirebaseMLModelDownloader/Tests/Integration/Resources/GoogleService-Info.plist "$plist_secret"
44+
- name: Xcode
45+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
3846
- name: Build and test
39-
# TODO: Disable verbose logging after flaky test investigation.
40-
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMLModelDownloader.podspec --verbose --platforms=${{ matrix.target }})
47+
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMLModelDownloader.podspec --platforms=${{ matrix.target }})
4148

4249
mlmodeldownloader-cron-only:
4350
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
@@ -65,15 +72,23 @@ jobs:
6572

6673
spm:
6774
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
68-
runs-on: macos-12
6975
strategy:
7076
matrix:
7177
target: [iOS, tvOS, macOS, catalyst, watchOS]
78+
os: [macos-12, macos-13]
79+
include:
80+
- os: macos-12
81+
xcode: Xcode_14.2
82+
- os: macos-13
83+
xcode: Xcode_15.0.1
84+
runs-on: ${{ matrix.os }}
7285
steps:
7386
- uses: actions/checkout@v3
7487
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
7588
with:
7689
cache_key: ${{ matrix.os }}
90+
- name: Xcode
91+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
7792
- name: Initialize xcodebuild
7893
run: scripts/setup_spm_tests.sh
7994
- name: Unit Tests

.github/workflows/performance.yml

+20-20
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
run: scripts/setup_bundler.sh
4444
- name: Install xcpretty
4545
run: gem install xcpretty
46+
#TODO: Xcode 15 tests are blocked by #11903
4647
- name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10
4748
run: scripts/third_party/travis/retry.sh scripts/build.sh Performance ${{ matrix.target }} ${{ matrix.test }}
4849

@@ -51,16 +52,25 @@ jobs:
5152
# Don't run on private repo unless it is a PR.
5253
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
5354

54-
runs-on: macos-12
5555
strategy:
5656
matrix:
5757
target: [ios, tvos]
58+
os: [macos-12, macos-13]
59+
include:
60+
- os: macos-12
61+
xcode: Xcode_14.2
62+
- os: macos-13
63+
xcode: Xcode_15.0.1
64+
runs-on: ${{ matrix.os }}
5865
steps:
5966
- uses: actions/checkout@v3
6067
- uses: ruby/setup-ruby@v1
6168
- name: Setup Bundler
6269
run: scripts/setup_bundler.sh
70+
- name: Xcode
71+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
6372
- name: Build
73+
#TODO: tests are not supported with Xcode 15 because the test spec depends on the iOS 8 GDCWebServer
6474
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebasePerformance.podspec --skip-tests --platforms=${{ matrix.target }}
6575

6676
quickstart:
@@ -112,32 +122,22 @@ jobs:
112122
spm:
113123
# Don't run on private repo unless it is a PR.
114124
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
115-
runs-on: macos-12
116-
strategy:
117-
matrix:
118-
target: [iOS]
119-
steps:
120-
- uses: actions/checkout@v3
121-
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
122-
with:
123-
cache_key: ${{ matrix.os }}
124-
- name: Initialize xcodebuild
125-
run: scripts/setup_spm_tests.sh
126-
- name: Unit Tests
127-
run: scripts/third_party/travis/retry.sh ./scripts/build.sh PerformanceUnit ${{ matrix.target }} spm
128-
129-
spm-cron:
130-
# Don't run on private repo.
131-
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
132-
runs-on: macos-12
133125
strategy:
134126
matrix:
135-
target: [tvOS]
127+
target: [iOS, tvOS]
128+
include:
129+
- os: macos-12
130+
xcode: Xcode_14.2
131+
- os: macos-13
132+
xcode: Xcode_15.0.1
133+
runs-on: ${{ matrix.os }}
136134
steps:
137135
- uses: actions/checkout@v3
138136
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
139137
with:
140138
cache_key: ${{ matrix.os }}
139+
- name: Xcode
140+
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
141141
- name: Initialize xcodebuild
142142
run: scripts/setup_spm_tests.sh
143143
- name: Unit Tests

0 commit comments

Comments
 (0)