Also download Ghostcript from the GitHub release. #1021
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: 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: 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 NuGet package | |
if: ${{ github.event_name != 'pull_request' }} | |
run: sign code trusted-signing *.nupkg ` | |
--trusted-signing-account ImageMagick ` | |
--trusted-signing-certificate-profile ImageMagick ` | |
--trusted-signing-endpoint https://eus.codesigning.azure.net ` | |
--verbosity information | |
working-directory: publish/output | |
- 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: 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: 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 NuGet package | |
if: ${{ github.event_name != 'pull_request' }} | |
run: sign code trusted-signing *.nupkg ` | |
--trusted-signing-account ImageMagick ` | |
--trusted-signing-certificate-profile ImageMagick ` | |
--trusted-signing-endpoint https://eus.codesigning.azure.net ` | |
--verbosity information | |
working-directory: publish/output | |
- name: Upload library | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'Magick.NET.${{ matrix.libraryName }}' | |
path: publish/output |