Modernize CI workflows for current Xcode and Swift versions with Xcode 16.4 #239
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - '*' | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| library-tests: | |
| name: Library Tests | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-14, macos-15] | |
| xcode: ['15.4', '16.1'] | |
| config: ['debug', 'release'] | |
| exclude: | |
| # Xcode 16.1 is not available on macOS 14 | |
| - os: macos-14 | |
| xcode: '16.1' | |
| # Xcode 15.4 is not available on macOS 15 | |
| - os: macos-15 | |
| xcode: '15.4' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Select Xcode ${{ matrix.xcode }} | |
| run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app | |
| - name: Run ${{ matrix.config }} tests | |
| run: CONFIG=${{ matrix.config }} make test-library | |
| - name: Build platforms ${{ matrix.config }} | |
| run: CONFIG=${{ matrix.config }} make build-all-platforms | |
| library-evolution: | |
| name: Library Evolution | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Select Xcode 16.1 | |
| run: sudo xcode-select -s /Applications/Xcode_16.1.app | |
| - name: Build for library evolution | |
| run: make build-for-library-evolution | |
| swift-package-tests: | |
| name: Swift Package Tests | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Select Xcode 16.1 | |
| run: sudo xcode-select -s /Applications/Xcode_16.1.app | |
| - name: Run swift package tests | |
| run: make test-swift | |