Skip to content

Merge branch 'main' of github.com:Matejkob/swift-di #12

Merge branch 'main' of github.com:Matejkob/swift-di

Merge branch 'main' of github.com:Matejkob/swift-di #12

Workflow file for this run

# This workflow runs CI tests for the main package and Examples package
name: CI
# Trigger the workflow on push to main, any pull request, or manual dispatch
on:
push:
branches:
- main
pull_request:
branches:
- '*'
workflow_dispatch:
# Ensure only one workflow per ref is running at a time
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
macos:
name: macOS - ${{ matrix.package }} (Xcode ${{ matrix.xcode }})
runs-on: macos-14
strategy:
matrix:
xcode:
- '16.2'
package:
- 'main'
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: Print Swift version
run: swift --version
- name: Build package
run: swift build
- name: Run tests
run: swift test
linux:
name: Ubuntu - ${{ matrix.package }} (Swift ${{ matrix.swift }})
runs-on: ubuntu-latest
strategy:
matrix:
swift:
- '6.0'
package:
- 'main'
container: swift:${{ matrix.swift }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build package
run: swift build
- name: Run tests
run: swift test
windows:
name: Windows - ${{ matrix.package }} (Swift ${{ matrix.swift }})
runs-on: windows-latest
strategy:
matrix:
swift:
- '6.0'
package:
- 'main'
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Swift
uses: compnerd/gha-setup-swift@main
with:
branch: swift-${{ matrix.swift }}-release
tag: ${{ matrix.swift }}-RELEASE
- name: Build package
run: swift build
# Looks like tests don't work on Windows
# - name: Run tests
# run: swift test
# code-coverage:
# name: Gather Code Coverage
# needs: macos
# runs-on: macos-14
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Select latest Xcode
# run: sudo xcode-select -s /Applications/Xcode_15.4.app
# - name: Build and test with coverage
# run: swift test -Xswiftc -Xfrontend -Xswiftc -dump-macro-expansions --enable-code-coverage
# - name: Gather code coverage
# run: |
# BUILD_PATH=$(swift build --show-bin-path)
# xcrun llvm-cov report \
# $BUILD_PATH/swift-spyablePackageTests.xctest/Contents/MacOS/swift-spyablePackageTests \
# -instr-profile=$BUILD_PATH/codecov/default.profdata \
# -ignore-filename-regex=".build|Tests" -use-color
# xcrun llvm-cov export -format="lcov" \
# $BUILD_PATH/swift-spyablePackageTests.xctest/Contents/MacOS/swift-spyablePackageTests \
# -instr-profile=$BUILD_PATH/codecov/default.profdata \
# -ignore-filename-regex=".build|Tests" > coverage_report.lcov
# - name: Upload coverage reports to Codecov
# uses: codecov/codecov-action@v4
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# files: ./coverage_report.lcov
# check-macro-compatibility:
# name: Check Macro Compatibility
# runs-on: macos-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Run Swift Macro Compatibility Check
# uses: Matejkob/swift-macro-compatibility-check@v1
# with:
# run-tests: true
# major-versions-only: false