Skip to content

Added GetReadOnlyArea to IPixelCollection (#1456) #612

Added GetReadOnlyArea to IPixelCollection (#1456)

Added GetReadOnlyArea to IPixelCollection (#1456) #612

Workflow file for this run

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:6.0
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- 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:6.0-alpine
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- 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
with:
fetch-depth: 1
- 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:6.0-focal-arm64v8 /Magick.NET/build/linux-arm64/github-actions.sh
macos:
name: 'MacOS (Q8/Q16/Q16-HDRI)'
runs-on: macos-11
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install dependencies
run: build/osx-x64/install.dependencies.sh
- name: Install .NET 6.0
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- 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
windows:
name: Windows
runs-on: windows-2022
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-depth: 0
- 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: Sign library (Magick.NET)
if: ${{ github.event_name != 'pull_request' }}
uses: dlemstra/code-sign-action@v1
with:
certificate: '${{ secrets.IMAGEMAGICK_CERTIFICATE }}'
password: '${{ secrets.IMAGEMAGICK_CERTIFICATE_PASSWORD }}'
folder: src/Magick.NET/bin
recursive: 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: Sign NuGet package
if: ${{ github.event_name != 'pull_request' }}
uses: dlemstra/code-sign-action@v1
with:
certificate: '${{ secrets.IMAGEMAGICK_CERTIFICATE }}'
password: '${{ secrets.IMAGEMAGICK_CERTIFICATE_PASSWORD }}'
folder: publish/output
- name: Upload library
uses: actions/upload-artifact@v3
with:
name: packages
path: publish/output
libraries:
name: Library
runs-on: windows-2022
strategy:
matrix:
libraryName: [Core, SystemDrawing, SystemWindowsMedia]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- 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: 'Sign library (Magick.NET.${{ matrix.libraryName }})'
if: ${{ github.event_name != 'pull_request' }}
uses: dlemstra/code-sign-action@v1
with:
certificate: '${{ secrets.IMAGEMAGICK_CERTIFICATE }}'
password: '${{ secrets.IMAGEMAGICK_CERTIFICATE_PASSWORD }}'
folder: 'src/Magick.NET.${{ matrix.libraryName }}/bin'
recursive: 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: Sign NuGet package
if: ${{ github.event_name != 'pull_request' }}
uses: dlemstra/code-sign-action@v1
with:
certificate: '${{ secrets.IMAGEMAGICK_CERTIFICATE }}'
password: '${{ secrets.IMAGEMAGICK_CERTIFICATE_PASSWORD }}'
folder: publish/output
- name: Upload library
uses: actions/upload-artifact@v3
with:
name: packages
path: publish/output