beta release #103
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
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
paths: | |
- 'configure' | |
- 'm4/version.m4' | |
- '.github/build/windows/download-configure.sh' | |
- '.github/build/windows/download-dependencies.sh' | |
- '.github/workflows/windows-release.yml' | |
pull_request: | |
branches: | |
- main | |
paths: | |
- '.github/workflows/windows-release.yml' | |
name: windows release | |
jobs: | |
change_log: | |
name: Create ChangeLog.md | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v5 | |
with: | |
fetch-depth: 0 | |
- name: Install dependencies | |
run: npm install -g auto-changelog | |
- name: Create ChangeLog.md | |
run: | | |
export NEXT_VERSION=$(grep -oP "PACKAGE_VERSION='\K[0-9\.-]*" configure) | |
git tag $NEXT_VERSION | |
auto-changelog --sort-commits date | |
mkdir artifacts | |
mv ChangeLog.md artifacts/ChangeLog.md | |
- name: Upload ChangeLog.md | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ChangeLog | |
path: artifacts | |
release_windows_installer: | |
name: Windows ${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.architecture}} (${{matrix.typeName}}) | |
needs: | |
- change_log | |
runs-on: windows-2022 | |
permissions: | |
id-token: write | |
contents: read | |
strategy: | |
fail-fast: false | |
matrix: | |
architecture: [ x64, x86 ] | |
buildType: [ dynamic, static ] | |
quantum: [ Q8, Q16 ] | |
hdri: [ hdri, noHdri ] | |
exclude: | |
- quantum: Q8 | |
hdri: hdri | |
include: | |
- architecture: x64 | |
bit: 64 | |
- architecture: x86 | |
bit: 32 | |
- buildType: dynamic | |
typeName: dll | |
- buildType: static | |
typeName: static | |
- hdri: hdri | |
hdri_flag: '-HDRI' | |
steps: | |
- name: Clone ImageMagick6 | |
uses: actions/checkout@v5 | |
with: | |
path: ImageMagick | |
- name: Download configure | |
shell: cmd | |
run: | | |
ImageMagick\.github\build\windows\download-configure.cmd | |
- name: Download dependencies | |
shell: cmd | |
run: | | |
ImageMagick\.github\build\windows\download-dependencies.cmd windows-${{matrix.architecture}}-${{matrix.buildType}}-openMP.zip | |
- name: Download ChangeLog.md | |
uses: actions/download-artifact@v5 | |
with: | |
name: ChangeLog | |
path: ImageMagick | |
- name: Install Strawberry Perl | |
if: ${{matrix.buildType == 'dynamic'}} | |
shell: cmd | |
run: | | |
powershell Invoke-WebRequest -Uri https://github.com/ImageMagick/ImageMagick-Windows/releases/download/20200615/strawberry-perl-5.30.2.1-${{matrix.bit}}bit.msi -OutFile strawberry-perl-5.30.2.1-${{matrix.bit}}bit.msi | |
msiexec /i strawberry-perl-5.30.2.1-${{matrix.bit}}bit.msi /qn INSTALLDIR="C:\Strawberry${{matrix.bit}}" | |
mv "C:\Strawberry" "C:\Strawberry64" | |
- name: Install Inno Setup | |
shell: cmd | |
run: | | |
powershell Invoke-WebRequest -Uri https://github.com/ImageMagick/ImageMagick-Windows/releases/download/20200615/innosetup-6.2.0.exe -OutFile innosetup-6.2.0.exe | |
innosetup-6.2.0.exe /SILENT /SUPPRESSMSGBOXES /NORESTART /SP- | |
- name: Configure ImageMagick | |
shell: cmd | |
working-directory: Configure | |
run: | | |
Configure.Release.x64.exe /noWizard /VS2022 /installedSupport /deprecated /${{matrix.hdri}} /${{matrix.quantum}} /${{matrix.architecture}} /${{matrix.buildType}} | |
- name: Build ImageMagick | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
msbuild /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.architecture}} | |
- name: Build PerlMagick | |
if: ${{matrix.buildType == 'dynamic'}} | |
shell: cmd | |
run: | | |
set PATH= | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
cd ImageMagick\PerlMagick | |
set PATH=%PATH%;C:\Strawberry${{matrix.bit}}\c\bin;C:\Strawberry${{matrix.bit}}\perl\site\bin;C:\Strawberry${{matrix.bit}}\perl\bin;C:\WINDOWS\System32\WindowsPowerShell\v1.0 | |
perl "Makefile.PL" "MAKE=nmake" | |
nmake | |
nmake release | |
- 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: Install sign cli | |
if: github.event_name != 'pull_request' | |
run: dotnet tool install --global sign --prerelease | |
- name: Sign executables and libraries | |
if: github.event_name != 'pull_request' | |
run: sign code trusted-signing ` | |
--trusted-signing-account ImageMagick ` | |
--trusted-signing-certificate-profile ImageMagick ` | |
--trusted-signing-endpoint https://eus.codesigning.azure.net ` | |
--azure-credential-type azure-cli ` | |
--verbosity information ` | |
*.exe *.dll | |
working-directory: Artifacts/bin | |
- name: Create installer | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
"C:\Program Files (x86)\Inno Setup 6\iscc.exe" Configure\Installer\Inno\ImageMagick.iss | |
- name: Sign installer | |
if: github.event_name != 'pull_request' | |
run: sign code trusted-signing ` | |
--trusted-signing-account ImageMagick ` | |
--trusted-signing-certificate-profile ImageMagick ` | |
--trusted-signing-endpoint https://eus.codesigning.azure.net ` | |
--azure-credential-type azure-cli ` | |
--verbosity information ` | |
*.exe | |
working-directory: Configure/Installer/Inno/Artifacts | |
- name: Get version | |
id: version | |
shell: pwsh | |
run: | | |
$version = (cat "Configure\Installer\Inno\config.isx" | Select-String "MagickPackageFullVersionText") | Out-String | |
$version = ($version | Select-String '".*"' -AllMatches | Select -Expand Matches | Select -Expand Value | Out-String) | |
$version = $version -Replace "`n|`r|""","" | |
$version = $version -Replace " ","-" | |
echo "version=$version" >> $env:GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: 'ImageMagick-${{steps.version.outputs.version}}-${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.typeName}}-${{matrix.architecture}}' | |
path: 'Configure\Installer\Inno\Artifacts' | |
release_windows_source: | |
name: Windows source | |
needs: | |
- change_log | |
runs-on: windows-2022 | |
steps: | |
- name: Clone ImageMagick/Windows | |
uses: actions/checkout@v5 | |
with: | |
repository: ImageMagick/Windows | |
ref: refs/heads/main | |
- name: Clone repositories | |
shell: cmd | |
run: | | |
clone-repositories-im6.cmd | |
- name: Download ChangeLog.md | |
uses: actions/download-artifact@v5 | |
with: | |
name: ChangeLog | |
path: ImageMagick | |
- name: Create source archive | |
shell: cmd | |
run: | | |
mkdir Source | |
move Configure Source | |
move Dependencies Source | |
move ImageMagick Source | |
7z a ImageMagick6-Windows.7z .\Source\* | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ImageMagick6-Windows | |
path: ImageMagick6-Windows.7z | |
release_windows_portable: | |
name: Windows portable ${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.architecture}} | |
needs: | |
- change_log | |
runs-on: windows-2022 | |
permissions: | |
id-token: write | |
contents: read | |
strategy: | |
fail-fast: false | |
matrix: | |
architecture: [ x64, x86 ] | |
quantum: [ Q8, Q16 ] | |
hdri: [ hdri, noHdri ] | |
exclude: | |
- quantum: Q8 | |
hdri: hdri | |
include: | |
- architecture: x64 | |
bit: 64 | |
- architecture: arm64 | |
bit: 64 | |
- architecture: x86 | |
bit: 32 | |
- hdri: hdri | |
hdri_flag: '-HDRI' | |
steps: | |
- name: Clone ImageMagick6 | |
uses: actions/checkout@v5 | |
with: | |
path: ImageMagick | |
- name: Download configure | |
shell: cmd | |
run: | | |
ImageMagick\.github\build\windows\download-configure.cmd | |
- name: Download dependencies | |
shell: cmd | |
run: | | |
ImageMagick\.github\build\windows\download-dependencies.cmd windows-${{matrix.architecture}}-static-openMP.zip | |
- name: Download ChangeLog.md | |
uses: actions/download-artifact@v5 | |
with: | |
name: ChangeLog | |
path: ImageMagick | |
- name: Configure ImageMagick | |
shell: cmd | |
working-directory: Configure | |
run: | | |
Configure.Release.x64.exe /noWizard /VS2022 /${{matrix.hdri}} /${{matrix.quantum}} /${{matrix.architecture}} /static | |
- name: Build ImageMagick | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
msbuild /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.architecture}} | |
- 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: Install sign cli | |
if: github.event_name != 'pull_request' | |
run: dotnet tool install --global sign --prerelease | |
- name: Sign executables | |
if: github.event_name != 'pull_request' | |
run: sign code trusted-signing ` | |
--trusted-signing-account ImageMagick ` | |
--trusted-signing-certificate-profile ImageMagick ` | |
--trusted-signing-endpoint https://eus.codesigning.azure.net ` | |
--azure-credential-type azure-cli ` | |
--verbosity information ` | |
*.exe | |
working-directory: Artifacts/bin | |
- name: Copy Files | |
id: package | |
shell: pwsh | |
run: | | |
[void](New-Item -Name "portable" -ItemType directory) | |
Copy-Item "Artifacts\bin\*.exe" "portable" | |
Copy-Item "Artifacts\bin\*.xml" "portable" | |
Copy-Item "Artifacts\bin\sRGB.icc" "portable" | |
Copy-Item "Artifacts\NOTICE.txt" "portable" | |
Copy-Item "ImageMagick\ChangeLog.md" "portable" | |
Copy-Item "ImageMagick\README.txt" "portable" | |
Copy-Item "ImageMagick\LICENSE" "portable\LICENSE.txt" | |
$version = (cat "Configure\Installer\Inno\config.isx" | Select-String "MagickPackageFullVersionText") | Out-String | |
$version = ($version | Select-String '".*"' -AllMatches | Select -Expand Matches | Select -Expand Value | Out-String) | |
$version = $version -Replace "`n|`r|""","" | |
$version = $version -Replace " ","-" | |
echo "version=$version" >> $env:GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: 'ImageMagick-${{steps.package.outputs.version}}-portable-${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.architecture}}' | |
path: portable |