-
-
Notifications
You must be signed in to change notification settings - Fork 101
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into js/aws-options
- Loading branch information
Showing
5 changed files
with
330 additions
and
189 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,151 +1,172 @@ | ||
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: macos-latest | ||
framework: netcoreapp3.1 | ||
runtime: -x64 | ||
codecov: false | ||
- os: ubuntu-latest | ||
framework: netcoreapp3.1 | ||
runtime: -x64 | ||
codecov: false | ||
- os: windows-latest | ||
framework: netcoreapp3.1 | ||
runtime: -x64 | ||
codecov: true | ||
- os: windows-latest | ||
framework: netcoreapp2.1 | ||
runtime: -x64 | ||
codecov: false | ||
|
||
runs-on: ${{matrix.options.os}} | ||
if: "!contains(github.event.head_commit.message, '[skip ci]')" | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
# See https://github.com/actions/checkout/issues/165#issuecomment-657673315 | ||
- name: Create LFS file list | ||
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id | ||
|
||
- name: Restore LFS cache | ||
uses: actions/cache@v2 | ||
id: lfs-cache | ||
with: | ||
path: .git/lfs | ||
key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}-v1 | ||
|
||
- name: Git LFS Pull | ||
run: git lfs pull | ||
|
||
- name: Install NuGet | ||
uses: NuGet/setup-nuget@v1 | ||
|
||
- name: Setup Git | ||
shell: bash | ||
run: | | ||
git config --global core.autocrlf false | ||
git config --global core.longpaths true | ||
git fetch --prune --unshallow | ||
git submodule -q update --init --recursive | ||
- name: Setup Azurite | ||
if: matrix.options.os != 'windows-latest' | ||
shell: bash | ||
run: | | ||
sudo npm install -g azurite | ||
sudo azurite --loose & | ||
- name: Setup Azurite Windows | ||
if: matrix.options.os == 'windows-latest' | ||
shell: bash | ||
run: | | ||
npm install -g azurite | ||
azurite --loose & | ||
- name: Setup s3rver | ||
if: matrix.options.os != 'windows-latest' | ||
shell: bash | ||
run: | | ||
sudo npm install -g s3rver | ||
sudo s3rver -d . & | ||
- name: Setup s3rver Windows | ||
if: matrix.options.os == 'windows-latest' | ||
shell: bash | ||
run: | | ||
npm install -g s3rver | ||
s3rver -d . & | ||
- name: Setup NuGet 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: Build | ||
shell: pwsh | ||
run: ./ci-build.ps1 "${{matrix.options.framework}}" | ||
env: | ||
SIXLABORS_TESTING: True | ||
|
||
- name: 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.Web.Tests # Required for xunit | ||
|
||
- name: Update Codecov | ||
uses: codecov/codecov-action@v1 | ||
if: matrix.options.codecov == true && startsWith(github.repository, 'SixLabors') | ||
with: | ||
flags: unittests | ||
|
||
Publish: | ||
needs: [Build] | ||
|
||
runs-on: windows-latest | ||
|
||
if: (github.event_name == 'push') | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install NuGet | ||
uses: NuGet/setup-nuget@v1 | ||
|
||
- name: Setup Git | ||
shell: bash | ||
run: | | ||
git config --global core.autocrlf false | ||
git config --global core.longpaths true | ||
git fetch --prune --unshallow | ||
git submodule -q update --init --recursive | ||
- name: Pack | ||
shell: pwsh | ||
run: ./ci-pack.ps1 | ||
|
||
- name: Publish to MyGet | ||
shell: pwsh | ||
run: | | ||
nuget.exe push .\artifacts\*.nupkg ${{secrets.MYGET_TOKEN}} -Source https://www.myget.org/F/sixlabors/api/v2/package | ||
nuget.exe push .\artifacts\*.snupkg ${{secrets.MYGET_TOKEN}} -Source 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: macos-latest | ||
framework: netcoreapp3.1 | ||
runtime: -x64 | ||
codecov: false | ||
- os: ubuntu-latest | ||
framework: netcoreapp3.1 | ||
runtime: -x64 | ||
codecov: false | ||
- os: windows-latest | ||
framework: netcoreapp3.1 | ||
runtime: -x64 | ||
codecov: true | ||
- os: windows-latest | ||
framework: netcoreapp2.1 | ||
runtime: -x64 | ||
codecov: false | ||
|
||
runs-on: ${{matrix.options.os}} | ||
if: "!contains(github.event.head_commit.message, '[skip ci]')" | ||
|
||
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 file list | ||
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: Azurite Setup | ||
if: matrix.options.os != 'windows-latest' | ||
shell: bash | ||
run: | | ||
sudo npm install -g azurite | ||
sudo azurite --loose & | ||
- name: Azurite Setup Windows | ||
if: matrix.options.os == 'windows-latest' | ||
shell: bash | ||
run: | | ||
npm install -g azurite | ||
azurite --loose & | ||
- name: S3rver Setup | ||
if: matrix.options.os != 'windows-latest' | ||
shell: bash | ||
run: | | ||
sudo npm install -g s3rver | ||
sudo s3rver -d . & | ||
- name: S3rver Setup Windows | ||
if: matrix.options.os == 'windows-latest' | ||
shell: bash | ||
run: | | ||
npm install -g s3rver | ||
s3rver -d . & | ||
- name: DotNet Setup | ||
uses: actions/setup-dotnet@v1 | ||
with: | ||
dotnet-version: | | ||
6.0.x | ||
5.0.x | ||
3.1.x | ||
2.1.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.Web.Tests # Required for xunit | ||
|
||
- 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.