name: CodeCoverage on: schedule: # 2AM every Tuesday/Thursday - cron: "0 2 * * 2,4" jobs: Build: strategy: matrix: options: - os: ubuntu-latest framework: net6.0 runtime: -x64 codecov: true runs-on: ${{matrix.options.os}} steps: - name: Git Config shell: bash run: | git config --global core.autocrlf false git config --global core.longpaths true - name: Git Checkout uses: actions/checkout@v3 with: fetch-depth: 0 submodules: recursive # See https://github.com/actions/checkout/issues/165#issuecomment-657673315 - name: Git Create LFS FileList run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id - name: Git Setup LFS Cache uses: actions/cache@v3 id: lfs-cache with: path: .git/lfs key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}-v1 - name: Git Pull LFS run: git lfs pull - name: NuGet Install uses: NuGet/setup-nuget@v1 - name: NuGet Setup Cache uses: actions/cache@v3 id: nuget-cache with: path: ~/.nuget key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.props', '**/*.targets') }} restore-keys: ${{ runner.os }}-nuget- - name: DotNet Setup uses: actions/setup-dotnet@v2 with: dotnet-version: | 6.0.x - name: DotNet Build shell: pwsh run: ./ci-build.ps1 "${{matrix.options.framework}}" env: SIXLABORS_TESTING: True - name: DotNet Test shell: pwsh run: ./ci-test.ps1 "${{matrix.options.os}}" "${{matrix.options.framework}}" "${{matrix.options.runtime}}" "${{matrix.options.codecov}}" env: SIXLABORS_TESTING: True XUNIT_PATH: .\tests\ImageSharp.Tests # Required for xunit - name: Export Failed Output uses: actions/upload-artifact@v3 if: failure() with: name: actual_output_${{ runner.os }}_${{ matrix.options.framework }}${{ matrix.options.runtime }}.zip path: tests/Images/ActualOutput/ - name: Codecov Update uses: codecov/codecov-action@v3 if: matrix.options.codecov == true && startsWith(github.repository, 'SixLabors') with: flags: unittests