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
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
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
0 commit comments