Skip to content

Remove legacy build scripts and migrate CI to SPM-only #557

Remove legacy build scripts and migrate CI to SPM-only

Remove legacy build scripts and migrate CI to SPM-only #557

Workflow file for this run

name: CombineExt
on: [push, pull_request, workflow_dispatch]
jobs:
spm-tests:
name: "Swift ${{ matrix.swift }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-13, macos-14, macos-latest]
swift: ["5.9", "6.0"]
exclude:
- os: macos-13
swift: "6.0"
steps:
- uses: actions/checkout@v4
- name: Select Xcode version
if: matrix.swift == '5.9'
run: sudo xcode-select -s /Applications/Xcode_15.2.app
- name: Run tests
run: swift test --enable-code-coverage
- name: Generate coverage report
if: matrix.os == 'macos-latest' && matrix.swift == '6.0'
run: xcrun llvm-cov export -format="lcov" .build/debug/CombineExtPackageTests.xctest/Contents/MacOS/CombineExtPackageTests -instr-profile .build/debug/codecov/default.profdata > coverage.lcov
- name: Upload coverage to Codecov
if: matrix.os == 'macos-latest' && matrix.swift == '6.0'
uses: codecov/codecov-action@v4
with:
files: coverage.lcov
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
platform-tests:
name: "Test ${{ matrix.platform }}"
runs-on: macos-latest
strategy:
matrix:
platform: [iOS, tvOS, watchOS]
include:
- platform: iOS
destination: "platform=iOS Simulator,name=iPhone 15"
- platform: tvOS
destination: "platform=tvOS Simulator,name=Apple TV"
- platform: watchOS
destination: "platform=watchOS Simulator,name=Apple Watch Series 9 (45mm)"
steps:
- uses: actions/checkout@v4
- name: Run tests
run: |
set -o pipefail
xcodebuild test \
-scheme CombineExt \
-destination "${{ matrix.destination }}" \
-enableCodeCoverage NO \
| xcbeautify --renderer github-actions || true