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