name: CI on: push: branches: - main paths: - .github/workflows/ci.yml - Directory.Build.props - FFMpegCore/** - FFMpegCore.Test/** - FFMpegCore.Extensions.SkiaSharp/** - FFMpegCore.Extensions.System.Drawing.Common/** 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-13] timeout-minutes: 7 steps: - name: Checkout uses: actions/checkout@v4 - name: Prepare .NET uses: actions/setup-dotnet@v4 with: dotnet-version: '8.0.x' - name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - name: Prepare FFMpeg uses: FedericoCarboni/setup-ffmpeg@v3 with: token: ${{ secrets.GITHUB_TOKEN }} - 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