name: CI on: push: branches: - main paths: - '**.swift' - '**.yml' pull_request: workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }}-ci cancel-in-progress: true jobs: macOS: runs-on: macos-14 timeout-minutes: 15 steps: - name: Checkout uses: actions/checkout@v4 - name: SPM tests run: swift test --enable-code-coverage - name: Convert coverage files run: | xcrun llvm-cov export -format "lcov" \ .build/debug/swift-mustachePackageTests.xctest/Contents/MacOs/swift-mustachePackageTests \ -ignore-filename-regex="\/Tests\/" \ -ignore-filename-regex="\/Benchmarks\/" \ -instr-profile=.build/debug/codecov/default.profdata > info.lcov - name: Upload to codecov.io uses: codecov/codecov-action@v4 with: file: info.lcov linux: runs-on: ubuntu-latest timeout-minutes: 15 strategy: matrix: image: ["swift:5.9", "swift:5.10", "swift:6.0"] container: image: ${{ matrix.image }} steps: - name: Checkout uses: actions/checkout@v4 - name: Test run: | swift test --enable-code-coverage - name: Convert coverage files run: | llvm-cov export -format="lcov" \ .build/debug/swift-mustachePackageTests.xctest \ -ignore-filename-regex="\/Tests\/" \ -ignore-filename-regex="\/Benchmarks\/" \ -instr-profile .build/debug/codecov/default.profdata > info.lcov - name: Upload to codecov.io uses: codecov/codecov-action@v4 with: file: info.lcov windows: runs-on: windows-latest strategy: matrix: swift-version: ["6.0"] steps: - uses: compnerd/gha-setup-swift@main with: branch: swift-${{ matrix.swift-version }}-release tag: ${{ matrix.swift-version }}-RELEASE - uses: actions/checkout@v4 - run: swift test