mirror of https://github.com/SixLabors/ImageSharp
committed by
GitHub
3 changed files with 274 additions and 198 deletions
@ -1,202 +1,196 @@ |
|||
name: Build |
|||
|
|||
on: |
|||
push: |
|||
branches: |
|||
- master |
|||
tags: |
|||
- "v*" |
|||
pull_request: |
|||
branches: |
|||
- master |
|||
push: |
|||
branches: |
|||
- master |
|||
tags: |
|||
- "v*" |
|||
pull_request: |
|||
branches: |
|||
- master |
|||
jobs: |
|||
Build: |
|||
strategy: |
|||
matrix: |
|||
options: |
|||
- os: ubuntu-latest |
|||
framework: net6.0 |
|||
sdk: 6.0.x |
|||
sdk-preview: true |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: macos-latest |
|||
framework: net6.0 |
|||
sdk: 6.0.x |
|||
sdk-preview: true |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: net6.0 |
|||
sdk: 6.0.x |
|||
sdk-preview: true |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: ubuntu-latest |
|||
framework: net5.0 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: macos-latest |
|||
framework: net5.0 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: net5.0 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: ubuntu-latest |
|||
framework: netcoreapp3.1 |
|||
runtime: -x64 |
|||
codecov: true |
|||
- os: macos-latest |
|||
framework: netcoreapp3.1 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: netcoreapp3.1 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: netcoreapp2.1 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: net472 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: net472 |
|||
runtime: -x86 |
|||
codecov: false |
|||
|
|||
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@v2 |
|||
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@v2 |
|||
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@v2 |
|||
id: nuget-cache |
|||
with: |
|||
path: ~/.nuget |
|||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.props', '**/*.targets') }} |
|||
restore-keys: ${{ runner.os }}-nuget- |
|||
|
|||
- name: DotNet Setup Preview |
|||
if: ${{ matrix.options.sdk-preview == true }} |
|||
uses: actions/setup-dotnet@v1 |
|||
with: |
|||
dotnet-version: ${{ matrix.options.sdk }} |
|||
include-prerelease: true |
|||
|
|||
- name: DotNet Build |
|||
if: ${{ matrix.options.sdk-preview != true }} |
|||
shell: pwsh |
|||
run: ./ci-build.ps1 "${{matrix.options.framework}}" |
|||
env: |
|||
SIXLABORS_TESTING: True |
|||
|
|||
- name: DotNet Build Preview |
|||
if: ${{ matrix.options.sdk-preview == true }} |
|||
shell: pwsh |
|||
run: ./ci-build.ps1 "${{matrix.options.framework}}" |
|||
env: |
|||
SIXLABORS_TESTING_PREVIEW: True |
|||
|
|||
- name: DotNet Test |
|||
if: ${{ matrix.options.sdk-preview != true }} |
|||
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: DotNet Test Preview |
|||
if: ${{ matrix.options.sdk-preview == true }} |
|||
shell: pwsh |
|||
run: ./ci-test.ps1 "${{matrix.options.os}}" "${{matrix.options.framework}}" "${{matrix.options.runtime}}" "${{matrix.options.codecov}}" |
|||
env: |
|||
SIXLABORS_TESTING_PREVIEW: True |
|||
XUNIT_PATH: .\tests\ImageSharp.Tests # Required for xunit |
|||
|
|||
- name: Export Failed Output |
|||
uses: actions/upload-artifact@v2 |
|||
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@v1 |
|||
if: matrix.options.codecov == true && startsWith(github.repository, 'SixLabors') |
|||
with: |
|||
flags: unittests |
|||
|
|||
Publish: |
|||
needs: [Build] |
|||
|
|||
runs-on: ubuntu-latest |
|||
|
|||
if: (github.event_name == 'push') |
|||
|
|||
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@v2 |
|||
with: |
|||
fetch-depth: 0 |
|||
submodules: recursive |
|||
|
|||
- name: NuGet Install |
|||
uses: NuGet/setup-nuget@v1 |
|||
|
|||
- name: NuGet Setup Cache |
|||
uses: actions/cache@v2 |
|||
id: nuget-cache |
|||
with: |
|||
path: ~/.nuget |
|||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.props', '**/*.targets') }} |
|||
restore-keys: ${{ runner.os }}-nuget- |
|||
|
|||
- name: DotNet Pack |
|||
shell: pwsh |
|||
run: ./ci-pack.ps1 |
|||
|
|||
- name: MyGet Publish |
|||
shell: pwsh |
|||
run: | |
|||
dotnet nuget push .\artifacts\*.nupkg -k ${{secrets.MYGET_TOKEN}} -s https://www.myget.org/F/sixlabors/api/v2/package |
|||
dotnet nuget push .\artifacts\*.snupkg -k ${{secrets.MYGET_TOKEN}} -s https://www.myget.org/F/sixlabors/api/v3/index.json |
|||
# TODO: If github.ref starts with 'refs/tags' then it was tag push and we can optionally push out package to nuget.org |
|||
Build: |
|||
strategy: |
|||
matrix: |
|||
options: |
|||
- os: ubuntu-latest |
|||
framework: net6.0 |
|||
sdk: 6.0.x |
|||
sdk-preview: true |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: macos-latest |
|||
framework: net6.0 |
|||
sdk: 6.0.x |
|||
sdk-preview: true |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: net6.0 |
|||
sdk: 6.0.x |
|||
sdk-preview: true |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: ubuntu-latest |
|||
framework: net5.0 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: macos-latest |
|||
framework: net5.0 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: net5.0 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: ubuntu-latest |
|||
framework: netcoreapp3.1 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: macos-latest |
|||
framework: netcoreapp3.1 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: netcoreapp3.1 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: netcoreapp2.1 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: net472 |
|||
runtime: -x64 |
|||
codecov: false |
|||
- os: windows-latest |
|||
framework: net472 |
|||
runtime: -x86 |
|||
codecov: false |
|||
|
|||
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@v2 |
|||
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@v2 |
|||
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@v2 |
|||
id: nuget-cache |
|||
with: |
|||
path: ~/.nuget |
|||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.props', '**/*.targets') }} |
|||
restore-keys: ${{ runner.os }}-nuget- |
|||
|
|||
- name: DotNet Setup Preview |
|||
if: ${{ matrix.options.sdk-preview == true }} |
|||
uses: actions/setup-dotnet@v1 |
|||
with: |
|||
dotnet-version: ${{ matrix.options.sdk }} |
|||
include-prerelease: true |
|||
|
|||
- name: DotNet Build |
|||
if: ${{ matrix.options.sdk-preview != true }} |
|||
shell: pwsh |
|||
run: ./ci-build.ps1 "${{matrix.options.framework}}" |
|||
env: |
|||
SIXLABORS_TESTING: True |
|||
|
|||
- name: DotNet Build Preview |
|||
if: ${{ matrix.options.sdk-preview == true }} |
|||
shell: pwsh |
|||
run: ./ci-build.ps1 "${{matrix.options.framework}}" |
|||
env: |
|||
SIXLABORS_TESTING_PREVIEW: True |
|||
|
|||
- name: DotNet Test |
|||
if: ${{ matrix.options.sdk-preview != true }} |
|||
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: DotNet Test Preview |
|||
if: ${{ matrix.options.sdk-preview == true }} |
|||
shell: pwsh |
|||
run: ./ci-test.ps1 "${{matrix.options.os}}" "${{matrix.options.framework}}" "${{matrix.options.runtime}}" "${{matrix.options.codecov}}" |
|||
env: |
|||
SIXLABORS_TESTING_PREVIEW: True |
|||
XUNIT_PATH: .\tests\ImageSharp.Tests # Required for xunit |
|||
|
|||
- name: Export Failed Output |
|||
uses: actions/upload-artifact@v2 |
|||
if: failure() |
|||
with: |
|||
name: actual_output_${{ runner.os }}_${{ matrix.options.framework }}${{ matrix.options.runtime }}.zip |
|||
path: tests/Images/ActualOutput/ |
|||
|
|||
Publish: |
|||
needs: [Build] |
|||
|
|||
runs-on: ubuntu-latest |
|||
|
|||
if: (github.event_name == 'push') |
|||
|
|||
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@v2 |
|||
with: |
|||
fetch-depth: 0 |
|||
submodules: recursive |
|||
|
|||
- name: NuGet Install |
|||
uses: NuGet/setup-nuget@v1 |
|||
|
|||
- name: NuGet Setup Cache |
|||
uses: actions/cache@v2 |
|||
id: nuget-cache |
|||
with: |
|||
path: ~/.nuget |
|||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.props', '**/*.targets') }} |
|||
restore-keys: ${{ runner.os }}-nuget- |
|||
|
|||
- name: DotNet Pack |
|||
shell: pwsh |
|||
run: ./ci-pack.ps1 |
|||
|
|||
- name: MyGet Publish |
|||
shell: pwsh |
|||
run: | |
|||
dotnet nuget push .\artifacts\*.nupkg -k ${{secrets.MYGET_TOKEN}} -s https://www.myget.org/F/sixlabors/api/v2/package |
|||
dotnet nuget push .\artifacts\*.snupkg -k ${{secrets.MYGET_TOKEN}} -s https://www.myget.org/F/sixlabors/api/v3/index.json |
|||
# TODO: If github.ref starts with 'refs/tags' then it was tag push and we can optionally push out package to nuget.org |
|||
|
|||
@ -0,0 +1,81 @@ |
|||
name: CodeCoverage |
|||
|
|||
on: |
|||
schedule: |
|||
# 2AM every Tuesday/Thursday |
|||
- cron: "0 2 * * 2,4" |
|||
jobs: |
|||
Build: |
|||
strategy: |
|||
matrix: |
|||
options: |
|||
- os: ubuntu-latest |
|||
framework: netcoreapp3.1 |
|||
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@v2 |
|||
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@v2 |
|||
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@v2 |
|||
id: nuget-cache |
|||
with: |
|||
path: ~/.nuget |
|||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.props', '**/*.targets') }} |
|||
restore-keys: ${{ runner.os }}-nuget- |
|||
|
|||
- 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@v2 |
|||
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@v1 |
|||
if: matrix.options.codecov == true && startsWith(github.repository, 'SixLabors') |
|||
with: |
|||
flags: unittests |
|||
Loading…
Reference in new issue