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: matrix.os == 'ubuntu-latest' name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - name: Setup FFmpeg uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: version: ${{ matrix.os != 'macos-latest' && '7.1' || '711' }} token: ${{ 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