Skip to content

release

release #484

Workflow file for this run

on:
workflow_dispatch:
push:
branches:
- main
paths:
- 'configure'
- 'm4/version.m4'
name: release
jobs:
change_log:
name: 'Create ChangeLog.md'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
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@v3
with:
name: ChangeLog
path: artifacts
release_windows_installer:
name: 'Windows ${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.platform}} (${{matrix.type}})'
needs:
- change_log
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
platform: [ x64, x86 ]
type: [ dll, static ]
quantum: [ Q8, Q16 ]
hdri: [ HDRI, noHDRI ]
exclude:
- quantum: Q8
hdri: HDRI
include:
- platform: x64
bit: 64
- platform: x86
bit: 32
- type: dll
type_flag: dmt
- type: static
type_flag: smtd
- hdri: HDRI
hdri_flag: '-HDRI'
steps:
- uses: actions/checkout@v3
with:
repository: ImageMagick/ImageMagick-Windows6
path: ImageMagick-Windows6
ref: refs/heads/main
- name: Clone repositories
shell: cmd
run: |
cd ImageMagick-Windows6
CloneRepositories.cmd https://github.com/ImageMagick shallow
- name: Download ChangeLog.md
uses: actions/download-artifact@v3
with:
name: ChangeLog
path: ImageMagick-Windows6\ImageMagick
- name: Download FFmpeg
shell: cmd
run: |
powershell Invoke-WebRequest -Uri https://github.com/ImageMagick/ImageMagick-Windows/releases/download/20200615/ffmpeg-4.2.3-win${{matrix.bit}}.exe -OutFile ffmpeg.exe
copy /Y ffmpeg.exe ImageMagick-Windows6\VisualMagick\bin
- name: Download hp2xx
shell: cmd
run: |
powershell Invoke-WebRequest -Uri https://github.com/ImageMagick/ImageMagick-Windows/releases/download/20200615/hp2xx.exe -OutFile hp2xx.exe
copy /Y hp2xx.exe ImageMagick-Windows6\VisualMagick\bin
- name: Install Strawberry Perl
if: ${{matrix.type == 'dll'}}
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: Build configure
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
cd ImageMagick-Windows6\VisualMagick\configure
msbuild configure.2022.sln /m /t:Rebuild /p:Configuration=Release,Platform=x64
- name: Configure ImageMagick
shell: cmd
run: |
cd ImageMagick-Windows6\VisualMagick\configure
configure.exe /noWizard /VS2022 /includeOptional /installedSupport /deprecated /${{matrix.hdri}} /${{matrix.quantum}} /${{matrix.platform}} /${{matrix.type_flag}}
- name: Build ImageMagick
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
cd ImageMagick-Windows6\VisualMagick
set /p solution=<solution
msbuild %solution% /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.platform}}
- name: Build PerlMagick
if: ${{matrix.type == 'dll'}}
shell: cmd
run: |
set PATH=
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
cd ImageMagick-Windows6\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: Sign binaries
uses: dlemstra/code-sign-action@v1
with:
certificate: '${{ secrets.CERTIFICATE }}'
password: '${{ secrets.CERTIFICATE_PASSWORD }}'
folder: 'ImageMagick-Windows6\VisualMagick\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" ImageMagick-Windows6\VisualMagick\installer\im-${{matrix.platform}}${{matrix.hdri_flag}}-${{matrix.type}}-${{matrix.quantum}}.iss
- name: Sign installer
uses: dlemstra/code-sign-action@v1
with:
certificate: '${{ secrets.CERTIFICATE }}'
password: '${{ secrets.CERTIFICATE_PASSWORD }}'
folder: 'ImageMagick-Windows6\VisualMagick\installer\output'
- uses: actions/upload-artifact@v3
with:
name: installers
path: 'ImageMagick-Windows6\VisualMagick\installer\output'
release_windows_source:
name: 'Windows source'
needs:
- change_log
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
repository: ImageMagick/ImageMagick-Windows6
path: ImageMagick-Windows6
ref: refs/heads/main
- name: Clone repositories
shell: cmd
run: |
cd ImageMagick-Windows6
CloneRepositories.cmd https://github.com/ImageMagick source
- name: Download ChangeLog.md
uses: actions/download-artifact@v3
with:
name: ChangeLog
path: ImageMagick-Windows6\ImageMagick
- name: Create source archive
shell: cmd
run: |
cd ImageMagick-Windows6
7z a ImageMagick6-Windows.7z .\source\*
- uses: actions/upload-artifact@v3
with:
name: ImageMagick-Windows6
path: 'ImageMagick-Windows6\ImageMagick6-Windows.7z'
release_windows_portable:
name: 'Windows portable ${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.platform}}'
needs:
- change_log
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
platform: [ x64, x86 ]
quantum: [ Q8, Q16 ]
hdri: [ HDRI, noHDRI ]
exclude:
- quantum: Q8
hdri: HDRI
include:
- platform: x64
bit: 64
- platform: x86
bit: 32
- hdri: HDRI
hdri_flag: '-HDRI'
steps:
- uses: actions/checkout@v3
with:
repository: ImageMagick/ImageMagick-Windows6
path: ImageMagick-Windows6
ref: refs/heads/main
- name: Clone repositories
shell: cmd
run: |
cd ImageMagick-Windows6
CloneRepositories.cmd https://github.com/ImageMagick shallow
- name: Download ChangeLog.md
uses: actions/download-artifact@v3
with:
name: ChangeLog
path: ImageMagick-Windows6\ImageMagick
- name: Install FFmpeg
shell: cmd
run: |
powershell Invoke-WebRequest -Uri https://github.com/ImageMagick/ImageMagick-Windows/releases/download/20200615/ffmpeg-4.2.3-win${{matrix.bit}}.exe -OutFile ffmpeg.exe
copy /Y ffmpeg.exe ImageMagick-Windows6\VisualMagick\bin
- name: Build configure
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
cd ImageMagick-Windows6\VisualMagick\configure
msbuild configure.2022.sln /m /t:Rebuild /p:Configuration=Release,Platform=x64
- name: Configure ImageMagick
shell: cmd
run: |
cd ImageMagick-Windows6\VisualMagick\configure
configure.exe /noWizard /VS2022 /${{matrix.hdri}} /${{matrix.quantum}} /${{matrix.platform}} /smt
- name: Build ImageMagick
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
cd ImageMagick-Windows6\VisualMagick
set /p solution=<solution
msbuild %solution% /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.platform}}
- name: Sign executables
uses: dlemstra/code-sign-action@v1
with:
certificate: '${{ secrets.CERTIFICATE }}'
password: '${{ secrets.CERTIFICATE_PASSWORD }}'
folder: 'ImageMagick-Windows6\VisualMagick\bin'
- name: Copy Files
id: package
shell: powershell
run: |
[void](New-Item -Name "portable" -ItemType directory)
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\*.exe" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\config\colors.xml" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\config\english.xml" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\config\locale.xml" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\config\log.xml" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\config\mime.xml" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\config\quantization-table.xml" "portable"
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\configure.xml" "portable"
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\ImageMagick.rdf" "portable"
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\delegates.xml" "portable"
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\policy.xml" "portable"
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\sRGB.icc" "portable"
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\thresholds.xml" "portable"
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\type-ghostscript.xml" "portable"
Copy-Item "ImageMagick-Windows6\VisualMagick\bin\type.xml" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\ChangeLog.md" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\LICENSE" "portable\LICENSE.txt"
Copy-Item "ImageMagick-Windows6\VisualMagick\NOTICE.txt" "portable"
Copy-Item "ImageMagick-Windows6\ImageMagick\README.txt" "portable"
$version = (cat "ImageMagick-Windows6\VisualMagick\installer\inc\version.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 " ","-"
Write-Host "::set-output name=version::$version"
- uses: actions/upload-artifact@v3
with:
name: 'ImageMagick-${{steps.package.outputs.version}}-portable-${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.platform}}'
path: portable