name: CI on: push: branches: - main paths: - .github/workflows/ci.yml - FFMpegCore/** - FFMpegCore.Test/** - FFMpegCore.Extensions.SkiaSharp/** - FFMpegCore.Extensions.System.Drawing.Common/** pull_request: branches: - main - release paths: - .github/workflows/ci.yml - 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@v3 - name: Prepare .NET uses: actions/setup-dotnet@v3 with: dotnet-version: '7.0.x' - name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - name: Prepare FFMpeg uses: FedericoCarboni/setup-ffmpeg@v2 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@v3 with: directory: FFMpegCore.Test/TestResults fail_ci_if_error: true