name: CI on: pull_request: branches: - main - release paths: - .github/workflows/ci.yml - Directory.Build.props - FFMpegCore/** - FFMpegCore.Test/** - FFMpegCore.Extensions.SkiaSharp/** - FFMpegCore.Extensions.System.Drawing.Common/** jobs: ci: runs-on: ${{ matrix.os }} strategy: matrix: os: [windows-latest, ubuntu-latest, macos-latest] timeout-minutes: 7 steps: - name: Checkout uses: actions/checkout@v4 - name: Prepare .NET uses: actions/setup-dotnet@v4 with: dotnet-version: '8.0.x' - if: runner.os == 'ubuntu-latest' name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - if: runner.os != 'macOS' || runner.arch != 'ARM64' uses: AnimMouse/setup-ffmpeg@v1 with: version: 7.1.1 - if: runner.os == 'macOS' && runner.arch == 'ARM64' uses: AnimMouse/setup-ffmpeg@v1 with: version: 711 - name: Test with dotnet run: dotnet test FFMpegCore.sln --collect "XPlat Code Coverage" --logger GitHubActions - if: matrix.os == 'windows-latest' name: Upload coverage reports to Codecov uses: codecov/codecov-action@v4 with: fail_ci_if_error: true directory: FFMpegCore.Test/TestResults token: ${{ secrets.CODECOV_TOKEN }} os: windows