Support to compare metadata of images added #245
This file contains hidden or 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
| name: .NET build and test | |
| env: | |
| CURRENT_VERSION: 3.2.${{ github.run_number }} | |
| LAST_COMMIT_MESSAGE: ${{ github.event.head_commit.message }} | |
| on: | |
| push: | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Check formatting | |
| run: dotnet format --verify-no-changes | |
| - name: Restore dependencies | |
| run: dotnet restore | |
| - name: Build | |
| run: dotnet build --configuration Release --no-restore | |
| - name: Publish SkiaSharpCompare.Cli (Linux) | |
| if: runner.os == 'Linux' | |
| run: | | |
| dotnet publish SkiaSharpCompare.Cli/SkiaSharpCompare.Cli.csproj -c Release -r linux-x64 --self-contained true -p:PublishSingleFile=true -o ./artifacts/cli/linux-x64 | |
| - name: Publish SkiaSharpCompare.Cli (macOS) | |
| if: runner.os == 'macOS' | |
| run: | | |
| dotnet publish SkiaSharpCompare.Cli/SkiaSharpCompare.Cli.csproj -c Release -r osx-x64 --self-contained true -p:PublishSingleFile=true -o ./artifacts/cli/osx-x64 | |
| - name: Publish SkiaSharpCompare.Cli (Windows) | |
| if: runner.os == 'Windows' | |
| shell: powershell | |
| run: | | |
| dotnet publish SkiaSharpCompare.Cli/SkiaSharpCompare.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o ./artifacts/cli/win-x64 | |
| dotnet publish SkiaSharpCompare.Cli/SkiaSharpCompare.Cli.csproj -c Release -r win-arm64 --self-contained true -p:PublishSingleFile=true -o ./artifacts/cli/win-arm64 | |
| - name: Upload CLI artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: cli-artifacts-${{ matrix.os }} | |
| path: ./artifacts/cli | |
| - name: Test | |
| run: dotnet test --no-build --verbosity normal --configuration Release | |
| deployRelease: | |
| if: startsWith(github.ref, 'refs/heads/release') | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Restore dependencies | |
| run: dotnet restore | |
| - name: Build | |
| run: dotnet build --configuration Release --no-restore | |
| - name: Download CLI artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: ./artifacts_download | |
| - name: NugetPush | |
| env: | |
| NUGET_TOKEN_EXISTS: ${{ secrets.NUGET_TOKEN }} | |
| if: env.NUGET_TOKEN_EXISTS != '' | |
| run: | | |
| dotnet nuget push ./SkiaSharpCompare/bin/Release/*.nupkg --skip-duplicate --api-key ${{secrets.NUGET_TOKEN}} --source https://api.nuget.org/v3/index.json | |
| - name: Github release | |
| shell: bash | |
| env: | |
| GITHUB_TOKEN: ${{ github.TOKEN }} | |
| if: env.GITHUB_TOKEN != '' | |
| run: | | |
| # Attach all downloaded CLI artifacts regardless of OS | |
| zip -r cli-artifacts.zip ./artifacts_download | |
| gh release create ${{env.CURRENT_VERSION}} ./SkiaSharpCompare/bin/Release/*.*nupkg cli-artifacts.zip --generate-notes | |
| deployTest: | |
| if: ${{ !startsWith(github.ref, 'refs/heads/release') }} | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Restore dependencies | |
| run: dotnet restore | |
| - name: Build | |
| run: dotnet build --configuration Release --no-restore | |
| - name: Download CLI artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: ./artifacts_download | |
| - name: NugetPush | |
| env: | |
| NUGET_TOKEN_EXISTS: ${{ secrets.NUGET_TEST_TOKEN }} | |
| if: env.NUGET_TOKEN_EXISTS != '' | |
| run: | | |
| ls ./SkiaSharpCompare/bin/Release | |
| dotnet nuget push ./SkiaSharpCompare/bin/Release/*.nupkg --skip-duplicate --api-key ${{secrets.NUGET_TEST_TOKEN}} --source https://apiint.nugettest.org/v3/index.json | |
| - name: Github prerelease | |
| shell: bash | |
| env: | |
| GITHUB_TOKEN: ${{ github.TOKEN }} | |
| if: env.GITHUB_TOKEN != '' | |
| run: | | |
| zip -r cli-artifacts.zip ./artifacts_download | |
| gh release create ${{env.CURRENT_VERSION}} ./SkiaSharpCompare/bin/Release/*.*nupkg cli-artifacts.zip --prerelease --generate-notes |