Skip to content

Commit

Permalink
More Xcode 15 CI (#12042)
Browse files Browse the repository at this point in the history
  • Loading branch information
paulb777 authored Nov 3, 2023
1 parent fa7ca72 commit aec227b
Show file tree
Hide file tree
Showing 15 changed files with 238 additions and 65 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/firebasepod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'

runs-on: macos-12
runs-on: macos-latest

steps:
- uses: actions/checkout@v3
Expand Down
40 changes: 32 additions & 8 deletions .github/workflows/functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,41 @@ jobs:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'

runs-on: macos-12
strategy:
matrix:
target: [ios, tvos, macos, watchos]
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Integration Test Server
run: FirebaseFunctions/Backend/start.sh synchronous
# The integration tests are flaky on Xcode 15 so only run the unit tests. The integration tests still run with SPM.
# - name: Integration Test Server
# run: FirebaseFunctions/Backend/start.sh synchronous
- name: Build and test
run: |
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseFunctions.podspec --platforms=${{ matrix.target }}
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseFunctions.podspec \
--test-specs=unit --platforms=${{ matrix.target }}
spm-integration:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
runs-on: macos-12
strategy:
matrix:
os: [macos-12]
include:
- os: macos-12
xcode: Xcode_14.2
runs-on: ${{ matrix.os }}
env:
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
steps:
Expand All @@ -57,8 +73,8 @@ jobs:
run: scripts/setup_spm_tests.sh
- name: Integration Test Server
run: FirebaseFunctions/Backend/start.sh synchronous
- name: Functions Unit Tests
run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFunctionsUnit iOS spm
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: iOS Swift Integration Tests (including Swift library)
run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFunctionsIntegration iOS spm
- name: iOS ObjC Integration Tests (using Swift library)
Expand All @@ -69,15 +85,23 @@ jobs:
spm-unit:
# Don't run on private repo.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
runs-on: macos-12
strategy:
matrix:
target: [iOS, tvOS, macOS, catalyst, watchOS]
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
with:
cache_key: ${{ matrix.os }}
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Initialize xcodebuild
run: scripts/setup_spm_tests.sh
- name: Unit Tests
Expand Down
22 changes: 20 additions & 2 deletions .github/workflows/inappmessaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,21 @@ jobs:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'

runs-on: macos-12
strategy:
matrix:
podspec: [FirebaseInAppMessaging.podspec, FirebaseInAppMessagingSwift.podspec --allow-warnings]
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: FirebaseInAppMessaging
Expand Down Expand Up @@ -60,12 +68,22 @@ jobs:
spm:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
runs-on: macos-12
strategy:
matrix:
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
with:
cache_key: ${{ matrix.os }}
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Initialize xcodebuild
run: scripts/setup_spm_tests.sh
- name: iOS Unit Tests
Expand Down
32 changes: 27 additions & 5 deletions .github/workflows/installations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,22 @@ jobs:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'

runs-on: macos-12
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
strategy:
matrix:
target: [ios, tvos, macos]
# TODO: macos tests are blocked by https://github.com/erikdoe/ocmock/pull/532
target: [ios, tvos, macos --skip-tests, watchos]
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
test-specs: unit,integration
# Integration tests are flaky on Xcode 15
- os: macos-13
xcode: Xcode_15.0.1
test-specs: unit
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
Expand All @@ -40,23 +50,35 @@ jobs:
- name: Get boolean for secrets available
id: secrets
run: echo "::set-output name=val::$([[ -z $plist_secret ]] && echo "0" || echo "1")"
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Build and test
run: |
export FIS_INTEGRATION_TESTS_REQUIRED=${{ steps.secrets.outputs.val }}
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseInstallations.podspec \
--platforms=${{ matrix.target }}
--platforms=${{ matrix.target }} --test-specs=--platforms=${{ matrix.test-specs }}
spm:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
runs-on: macos-12
strategy:
matrix:
target: [iOS, tvOS, macOS, catalyst, watchOS]
# TODO: macos tests are blocked by https://github.com/erikdoe/ocmock/pull/532
target: [iOS, tvOS, macOS, watchOS, catalyst]
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
with:
cache_key: ${{ matrix.os }}
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Initialize xcodebuild
run: scripts/setup_spm_tests.sh
- name: Unit Tests
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/messaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,10 @@ jobs:
include:
- os: macos-12
xcode: Xcode_14.2
tests: --test-specs=unit
- os: macos-13
xcode: Xcode_15.0.1
tests: --skip-tests
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
Expand All @@ -75,7 +77,7 @@ jobs:
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Build and test
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb ${{ matrix.podspec }} --test-specs=unit --platforms=${{ matrix.target }}
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb ${{ matrix.podspec }} ${{ matrix.tests }} --platforms=${{ matrix.target }}

spm:
# Don't run on private repo unless it is a PR.
Expand Down Expand Up @@ -186,8 +188,10 @@ jobs:
include:
- os: macos-12
xcode: Xcode_14.2
tests: --test-specs=unit
- os: macos-13
xcode: Xcode_15.0.1
tests: --skip-tests
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
Expand All @@ -197,7 +201,7 @@ jobs:
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: PodLibLint Messaging Cron
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec --test-specs=unit --platforms=${{ matrix.target }} --use-static-frameworks
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec ${{ matrix.tests }} --platforms=${{ matrix.target }} --use-static-frameworks

messaging-sample-build-test:
# Don't run on private repo unless it is a PR.
Expand Down
25 changes: 20 additions & 5 deletions .github/workflows/mlmodeldownloader.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,18 @@ concurrency:
jobs:
pod-lib-lint:
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
runs-on: macos-12
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
strategy:
matrix:
target: [ios, tvos, macos]
target: [ios, tvos, macos, watchos]
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
Expand All @@ -35,9 +41,10 @@ jobs:
mkdir FirebaseMLModelDownloader/Tests/Integration/Resources
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/MLModelDownloader/GoogleService-Info.plist.gpg \
FirebaseMLModelDownloader/Tests/Integration/Resources/GoogleService-Info.plist "$plist_secret"
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Build and test
# TODO: Disable verbose logging after flaky test investigation.
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMLModelDownloader.podspec --verbose --platforms=${{ matrix.target }})
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMLModelDownloader.podspec --platforms=${{ matrix.target }})

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

spm:
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
runs-on: macos-12
strategy:
matrix:
target: [iOS, tvOS, macOS, catalyst, watchOS]
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
with:
cache_key: ${{ matrix.os }}
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Initialize xcodebuild
run: scripts/setup_spm_tests.sh
- name: Unit Tests
Expand Down
40 changes: 20 additions & 20 deletions .github/workflows/performance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ jobs:
run: scripts/setup_bundler.sh
- name: Install xcpretty
run: gem install xcpretty
#TODO: Xcode 15 tests are blocked by #11903
- name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10
run: scripts/third_party/travis/retry.sh scripts/build.sh Performance ${{ matrix.target }} ${{ matrix.test }}

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

runs-on: macos-12
strategy:
matrix:
target: [ios, tvos]
os: [macos-12, macos-13]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Build
#TODO: tests are not supported with Xcode 15 because the test spec depends on the iOS 8 GDCWebServer
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebasePerformance.podspec --skip-tests --platforms=${{ matrix.target }}

quickstart:
Expand Down Expand Up @@ -112,32 +122,22 @@ jobs:
spm:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
runs-on: macos-12
strategy:
matrix:
target: [iOS]
steps:
- uses: actions/checkout@v3
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
with:
cache_key: ${{ matrix.os }}
- name: Initialize xcodebuild
run: scripts/setup_spm_tests.sh
- name: Unit Tests
run: scripts/third_party/travis/retry.sh ./scripts/build.sh PerformanceUnit ${{ matrix.target }} spm

spm-cron:
# Don't run on private repo.
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
runs-on: macos-12
strategy:
matrix:
target: [tvOS]
target: [iOS, tvOS]
include:
- os: macos-12
xcode: Xcode_14.2
- os: macos-13
xcode: Xcode_15.0.1
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
with:
cache_key: ${{ matrix.os }}
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Initialize xcodebuild
run: scripts/setup_spm_tests.sh
- name: Unit Tests
Expand Down
Loading

0 comments on commit aec227b

Please sign in to comment.