264 lines
10 KiB
YAML
264 lines
10 KiB
YAML
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'ChangeLog'
|
|
|
|
name: release
|
|
jobs:
|
|
release_windows_installer:
|
|
name: 'Windows ${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.platform}} (${{matrix.type}})'
|
|
runs-on: windows-latest
|
|
|
|
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_alias: x64
|
|
- platform: x86
|
|
bit: 32
|
|
platform_alias: Win32
|
|
- type: dll
|
|
type_flag: dmt
|
|
- type: static
|
|
type_flag: smtd
|
|
- hdri: HDRI
|
|
hdri_flag: '-HDRI'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: ImageMagick/ImageMagick-Windows
|
|
path: ImageMagick-Windows
|
|
ref: refs/heads/main
|
|
fetch-depth: 1
|
|
|
|
- name: Clone repositories
|
|
shell: cmd
|
|
run: |
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows
|
|
CloneRepositories.cmd https://github.com/ImageMagick shallow
|
|
|
|
- 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 %GITHUB_WORKSPACE%\ImageMagick-Windows\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 %GITHUB_WORKSPACE%\ImageMagick-Windows\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: Build configure
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
|
|
devenv /upgrade configure.vcxproj
|
|
msbuild configure.sln /m /t:Rebuild /p:Configuration=Release,Platform=Win32
|
|
|
|
- name: Configure ImageMagick
|
|
shell: cmd
|
|
run: |
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
|
|
configure.exe /noWizard /VS2019 /includeOptional /installedSupport /deprecated /${{matrix.hdri}} /${{matrix.quantum}} /${{matrix.platform}} /${{matrix.type_flag}}
|
|
|
|
- name: Build ImageMagick
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick
|
|
set /p solution=<solution
|
|
msbuild %solution% /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.platform_alias}}
|
|
|
|
- name: Build PerlMagick
|
|
if: ${{matrix.type == 'dll'}}
|
|
shell: cmd
|
|
run: |
|
|
set PATH=
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows\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 }}'
|
|
folder: 'ImageMagick-Windows\VisualMagick\bin'
|
|
|
|
- name: Create installer
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
"C:\Program Files (x86)\Inno Setup 6\iscc.exe" %GITHUB_WORKSPACE%\ImageMagick-Windows\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 }}'
|
|
folder: 'ImageMagick-Windows\VisualMagick\installer\output'
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: installers
|
|
path: 'ImageMagick-Windows\VisualMagick\installer\output'
|
|
|
|
release_windows_source:
|
|
name: 'Windows source'
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: ImageMagick/ImageMagick-Windows
|
|
path: ImageMagick-Windows
|
|
ref: refs/heads/main
|
|
fetch-depth: 1
|
|
|
|
- name: Clone repositories
|
|
shell: cmd
|
|
run: |
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows
|
|
CloneRepositories.cmd https://github.com/ImageMagick source
|
|
|
|
- name: Create source archive
|
|
shell: cmd
|
|
run: |
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows
|
|
7z a ImageMagick-Windows.7z .\source\*
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ImageMagick-Windows
|
|
path: 'ImageMagick-Windows\ImageMagick-Windows.7z'
|
|
|
|
release_windows_portable:
|
|
name: 'Windows portable ${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.platform}}'
|
|
runs-on: windows-latest
|
|
|
|
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_alias: x64
|
|
- platform: x86
|
|
bit: 32
|
|
platform_alias: Win32
|
|
- hdri: HDRI
|
|
hdri_flag: '-HDRI'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: ImageMagick/ImageMagick-Windows
|
|
path: ImageMagick-Windows
|
|
ref: refs/heads/main
|
|
fetch-depth: 1
|
|
|
|
- name: Clone repositories
|
|
shell: cmd
|
|
run: |
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows
|
|
CloneRepositories.cmd https://github.com/ImageMagick shallow
|
|
|
|
- name: Install FFmpeg
|
|
shell: cmd
|
|
run: |
|
|
powershell Invoke-WebRequest -Uri https://github.com/ImageMagick/ImageMagick-Windows/releases/download/20160630/ffmpeg-4.2-win${{matrix.bit}}.exe -OutFile ffmpeg.exe
|
|
copy /Y ffmpeg.exe %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick\bin
|
|
|
|
- name: Build configure
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
|
|
devenv /upgrade configure.vcxproj
|
|
msbuild configure.sln /m /t:Rebuild /p:Configuration=Release,Platform=Win32
|
|
|
|
- name: Configure ImageMagick
|
|
shell: cmd
|
|
run: |
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
|
|
configure.exe /noWizard /VS2019 /noOpenMP /${{matrix.hdri}} /${{matrix.quantum}} /${{matrix.platform}} /smt
|
|
|
|
- name: Build ImageMagick
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick
|
|
set /p solution=<solution
|
|
msbuild %solution% /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.platform_alias}}
|
|
|
|
- name: Sign exectables
|
|
uses: dlemstra/code-sign-action@v1
|
|
with:
|
|
certificate: '${{ secrets.CERTIFICATE }}'
|
|
folder: 'ImageMagick-Windows\VisualMagick\bin'
|
|
|
|
- name: Copy Files
|
|
id: package
|
|
shell: powershell
|
|
run: |
|
|
[void](New-Item -Name "portable" -ItemType directory)
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\*.exe" "portable"
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\config\colors.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\config\english.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\config\locale.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\config\log.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\config\mime.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\config\quantization-table.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\configure.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\ImageMagick.rdf" "portable"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\delegates.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\policy.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\sRGB.icc" "portable"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\thresholds.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\type-ghostscript.xml" "portable"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\bin\type.xml" "portable"
|
|
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\ChangeLog" "portable"
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\LICENSE" "portable\LICENSE.txt"
|
|
Copy-Item "ImageMagick-Windows\VisualMagick\NOTICE.txt" "portable"
|
|
Copy-Item "ImageMagick-Windows\ImageMagick\README.txt" "portable"
|
|
|
|
$version = (cat "ImageMagick-Windows\VisualMagick\installer\inc\version.isx" | Select-String "MagickPackageVersion") | Out-String
|
|
$version = ($version | Select-String '".*"' -AllMatches | Select -Expand Matches | Select -Expand Value | Out-String)
|
|
$version = $version -Replace "`n|`r|""",""
|
|
Write-Host "::set-output name=version::$version"
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: 'ImageMagick-${{steps.package.outputs.version}}-portable-${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.platform}}'
|
|
path: portable |