Add PngWriteDefines to Magick.NET #942
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
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
name: main | |
jobs: | |
linux: | |
name: 'Linux (Q8/Q16/Q16-HDRI, x64)' | |
container: | |
image: mcr.microsoft.com/dotnet/sdk:8.0 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: build/linux-x64/install.dependencies.sh | |
- name: Install Magick.Native | |
run: 'build/shared/install.Magick.Native.sh "dlemstra" "${{ secrets.GITHUB_TOKEN }}" linux x64' | |
- name: Build | |
run: build/shared/build.Magick.NET.sh | |
- name: Test | |
run: build/shared/test.Magick.NET.sh | |
- name: Build OpenMP | |
run: build/shared/build.Magick.NET.sh OpenMP | |
- name: Test OpenMP | |
run: build/shared/test.Magick.NET.sh OpenMP | |
linux_musl: | |
name: 'Linux musl (Q8/Q16/Q16-HDRI, x64)' | |
container: | |
image: mcr.microsoft.com/dotnet/sdk:8.0-alpine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: build/linux-musl-x64/install.dependencies.sh | |
- name: Install Magick.Native | |
run: 'build/shared/install.Magick.Native.sh "dlemstra" "${{ secrets.GITHUB_TOKEN }}" linux-musl x64' | |
- name: Build | |
run: build/shared/build.Magick.NET.sh | |
- name: Test | |
run: build/shared/test.Magick.NET.sh | |
- name: Build OpenMP | |
run: build/shared/build.Magick.NET.sh OpenMP | |
- name: Test OpenMP | |
run: build/shared/test.Magick.NET.sh OpenMP | |
# linux_arm64: | |
# name: 'Linux (Q8/Q16/Q16-HDRI, arm64)' | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout | |
# uses: actions/checkout@v4 | |
# - name: Install Magick.Native | |
# run: 'build/shared/install.Magick.Native.sh "dlemstra" "${{ secrets.GITHUB_TOKEN }}" linux arm64' | |
# - name: Set up QEMU | |
# uses: docker/setup-qemu-action@master | |
# with: | |
# platforms: arm64 | |
# - name: Test | |
# run: | | |
# export path=$(pwd) | |
# docker run -v $path:/Magick.NET mcr.microsoft.com/dotnet/sdk:8.0-jammy-arm64v8 /Magick.NET/build/linux-arm64/github-actions.sh | |
macos: | |
name: 'MacOS (Q8/Q16/Q16-HDRI)' | |
runs-on: macos-12 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: build/macos-x64/install.dependencies.sh | |
- name: Install Magick.Native | |
run: 'build/shared/install.Magick.Native.sh "dlemstra" "${{ secrets.GITHUB_TOKEN }}" macos x64' | |
- name: Build | |
run: build/shared/build.Magick.NET.sh | |
- name: Test | |
run: build/shared/test.Magick.NET.sh | |
macos_arm64: | |
name: 'MacOS (Q8/Q16/Q16-HDRI, arm64)' | |
runs-on: macos-14 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: build/macos-arm64/install.dependencies.sh | |
- name: Install Magick.Native | |
run: 'build/shared/install.Magick.Native.sh "dlemstra" "${{ secrets.GITHUB_TOKEN }}" macos arm64' | |
- name: Build | |
run: build/shared/build.Magick.NET.sh | |
- name: Test | |
run: build/shared/test.Magick.NET.sh | |
windows: | |
name: Windows | |
runs-on: windows-2022 | |
permissions: | |
id-token: write | |
contents: read | |
packages: read | |
strategy: | |
matrix: | |
quantumName: [Q8, Q8-OpenMP, Q16, Q16-OpenMP, Q16-HDRI, Q16-HDRI-OpenMP] | |
platformName: [x86, x64, arm64, Any CPU] | |
exclude: | |
- quantumName: Q8-OpenMP | |
platformName: x86 | |
- quantumName: Q16-OpenMP | |
platformName: x86 | |
- quantumName: Q16-HDRI-OpenMP | |
platformName: x86 | |
- quantumName: Q8-OpenMP | |
platformName: Any CPU | |
- quantumName: Q16-OpenMP | |
platformName: Any CPU | |
- quantumName: Q16-HDRI-OpenMP | |
platformName: Any CPU | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
- name: Install dependencies | |
run: ./install.dependencies.cmd | |
working-directory: build/windows | |
- name: Create nuget.config | |
run: './create-nuget-config.cmd "dlemstra" "${{ secrets.GITHUB_TOKEN }}"' | |
working-directory: src/Magick.Native | |
- name: Install Magick.Native | |
run: ./install.cmd | |
working-directory: src/Magick.Native | |
- name: Build Magick.NET (Test) | |
if: ${{ matrix.platformName != 'arm64' }} | |
run: './build.Magick.NET.cmd ${{ matrix.quantumName }} "${{ matrix.platformName }}" Test' | |
working-directory: build/windows | |
- name: Test Magick.NET | |
if: ${{ matrix.platformName != 'arm64' }} | |
run: './test.Magick.NET.cmd ${{ matrix.quantumName }} "${{ matrix.platformName }}"' | |
working-directory: build/windows | |
- name: Build Magick.NET (Release) | |
run: './build.Magick.NET.cmd ${{ matrix.quantumName }} "${{ matrix.platformName }}" Release' | |
working-directory: build/windows | |
- name: 'Azure CLI login with federated credential' | |
if: github.event_name != 'pull_request' | |
uses: azure/login@v2 | |
with: | |
client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
- name: Sign binaries | |
if: github.event_name != 'pull_request' | |
uses: azure/[email protected] | |
with: | |
endpoint: https://eus.codesigning.azure.net/ | |
trusted-signing-account-name: ImageMagick | |
certificate-profile-name: ImageMagick | |
files-folder: 'src/Magick.NET/bin' | |
files-folder-filter: dll | |
files-folder-recurse: true | |
- name: Set NuGet version | |
run: ./set.version.ps1 | |
working-directory: publish | |
- name: Create NuGet package | |
run: './publish.cmd ${{ matrix.quantumName }} "${{ matrix.platformName }}"' | |
working-directory: publish | |
- name: Upload library | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'Magick.NET-${{ matrix.quantumName }}-${{ matrix.platformName }}' | |
path: publish/output | |
libraries: | |
name: Library | |
runs-on: windows-2022 | |
permissions: | |
id-token: write | |
contents: read | |
packages: read | |
strategy: | |
matrix: | |
libraryName: [Core, SystemDrawing, SystemWindowsMedia] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
- name: Install dependencies | |
run: ./install.dependencies.cmd | |
working-directory: build/windows | |
- name: Create nuget.config | |
run: './create-nuget-config.cmd "dlemstra" "${{ secrets.GITHUB_TOKEN }}"' | |
working-directory: src/Magick.Native | |
- name: Install Magick.Native | |
run: ./install.cmd | |
working-directory: src/Magick.Native | |
- name: 'Build Magick.NET.${{ matrix.libraryName }} (Release)' | |
run: './build.Magick.NET.cmd "Q8" "Any CPU" Release' | |
working-directory: build/windows | |
- name: 'Azure CLI login with federated credential' | |
if: github.event_name != 'pull_request' | |
uses: azure/login@v2 | |
with: | |
client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
- name: Sign binaries | |
if: github.event_name != 'pull_request' | |
uses: azure/[email protected] | |
with: | |
endpoint: https://eus.codesigning.azure.net/ | |
trusted-signing-account-name: ImageMagick | |
certificate-profile-name: ImageMagick | |
files-folder: 'src/Magick.NET.${{ matrix.libraryName }}/bin' | |
files-folder-filter: dll | |
files-folder-recurse: true | |
- name: Set NuGet version | |
run: ./set.version.ps1 | |
working-directory: publish | |
- name: Create NuGet package | |
run: './publish.library.cmd "Magick.NET.${{ matrix.libraryName }}"' | |
working-directory: publish | |
- name: Upload library | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'Magick.NET.${{ matrix.libraryName }}' | |
path: publish/output |