Skip to content

Test with Xcode16.2 #712

Test with Xcode16.2

Test with Xcode16.2 #712

name: Testing Matrix
on:
workflow_dispatch:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
TESTS: "FunctionTests SDKTests RoomTests PublishDataTests PublishBufferCapturerTests VideoViewTests TrackTests"
jobs:
test:
strategy:
fail-fast: false
matrix:
include:
# https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md
- os: macos-13
xcode: 14.2
platform: "iOS Simulator,OS=17.2,name=iPhone 14 Pro"
- os: macos-13
xcode: 14.2
platform: "macOS"
- os: macos-13
xcode: 14.2
platform: "macOS,variant=Mac Catalyst"
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md
- os: macos-14
xcode: 15.4
platform: "iOS Simulator,OS=17.5,name=iPhone 15 Pro"
- os: macos-14
xcode: 15.4
platform: "macOS"
- os: macos-14
xcode: 15.4
platform: "macOS,variant=Mac Catalyst"
- os: macos-14
xcode: 15.4
platform: "visionOS Simulator,name=Apple Vision Pro"
- os: macos-14
xcode: 15.4
platform: "tvOS Simulator,name=Apple TV"
# https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
- os: macos-15
xcode: 16.2
platform: "iOS Simulator,OS=18.1,name=iPhone 16 Pro"
- os: macos-15
xcode: 16.2
platform: "macOS"
- os: macos-15
xcode: 16.2
platform: "macOS,variant=Mac Catalyst"
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
# Cache Homebrew and SPM dependencies
- name: Cache Homebrew
uses: actions/cache@v3
with:
path: |
~/Library/Caches/Homebrew
~/Library/Caches/Homebrew/downloads
key: ${{ runner.os }}-${{ matrix.os }}-brew-${{ hashFiles('.github/workflows/testing-matrix.yaml') }}
restore-keys: |
${{ runner.os }}-${{ matrix.os }}-brew-
- name: Cache SPM
uses: actions/cache@v3
with:
path: .build
key: ${{ runner.os }}-${{ matrix.os }}-${{ matrix.xcode }}-spm-${{ hashFiles('Package.resolved') }}
restore-keys: |
${{ runner.os }}-${{ matrix.os }}-${{ matrix.xcode }}-spm-
- name: Install LiveKit Server
run: brew install livekit
- name: Run LiveKit Server
run: livekit-server --dev &
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ matrix.xcode }}
- name: Xcode Version
run: xcodebuild -version
- name: Swift Version
run: xcrun swift --version
- name: Build
run: xcodebuild build-for-testing -scheme LiveKit -destination 'platform=${{ matrix.platform }}' | xcbeautify
# Run all tests in parallel instead of sequentially
- name: Run Tests
run: |
IFS=' ' read -r -a tests <<< "${{ env.TESTS }}"
for test in "${tests[@]}"; do
echo "::group::Running test $test"
xcodebuild test-without-building -scheme LiveKit -destination 'platform=${{ matrix.platform }}' -only-testing:LiveKitTests/$test | xcbeautify
echo "::endgroup::"
done
shell: bash