daily #2
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: | |
workflow_dispatch: | |
schedule: | |
- cron: 0 6 * * * | |
push: | |
branches: | |
- main | |
paths: | |
- '.github/workflows/daily.yml' | |
pull_request: | |
branches: | |
- main | |
paths: | |
- '.github/workflows/daily.yml' | |
name: daily | |
jobs: | |
change_log: | |
name: 'Create ChangeLog.md' | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
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 | |
build_linux: | |
name: 'Linux Q${{matrix.quantum}}-x64 hdri=${{matrix.hdri}} (${{matrix.modules}}) (${{ matrix.compiler }})' | |
container: | |
image: ubuntu:20.04 | |
runs-on: ubuntu-24.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: [ gcc, clang ] | |
quantum: [ 8, 16, 32, 64 ] | |
hdri: [ yes, no ] | |
modules: [ 'with-modules', 'without-modules' ] | |
exclude: | |
- quantum: 8 | |
hdri: yes | |
- quantum: 32 | |
hdri: no | |
- quantum: 64 | |
hdri: no | |
include: | |
- compiler: gcc | |
cxx_compiler: g++ | |
compiler_flags: -Wall -Wextra -Werror -Wno-builtin-declaration-mismatch | |
packages: gcc g++ | |
- compiler: clang | |
cxx_compiler: clang++ | |
compiler_flags: -Wall -Wextra -Werror -Wno-unused-function -Wno-incompatible-library-redeclaration | |
packages: clang | |
steps: | |
- name: Install dependencies | |
run: | | |
set -e | |
export DEBIAN_FRONTEND=noninteractive | |
apt update | |
apt-get install -y autoconf libfontconfig1-dev libfreetype6-dev libltdl-dev make pkg-config ${{ matrix.packages }} | |
- name: Clone msttcorefonts | |
uses: actions/checkout@v4 | |
with: | |
repository: ImageMagick/msttcorefonts | |
ref: refs/heads/main | |
- name: Install msttcorefonts | |
run: | | |
set -e | |
./install.sh | |
- uses: actions/checkout@v4 | |
- name: Configure ImageMagick | |
env: | |
CC: ${{ matrix.compiler }} | |
CXX: ${{ matrix.cxx_compiler }} | |
CFLAGS: ${{ matrix.compiler_flags }} | |
CXXFLAGS: ${{ matrix.compiler_flags }} | |
run: | | |
./configure --with-perl --with-quantum-depth=${{matrix.quantum}} --enable-hdri=${{matrix.hdri}} --${{matrix.modules}} | |
- name: Build ImageMagick | |
run: | | |
make install | |
- name: Test ImageMagick | |
run: | | |
make check || exit_code=$? | |
if [ "$exit_code" != "0" ] ; then cat ./test-suite.log ; fi | |
exit $exit_code | |
- name: Test PerlMagick | |
run: | | |
cd PerlMagick | |
make test TEST_VERBOSE=1 | |
build_windows: | |
name: 'Windows Q${{matrix.quantum}}-${{matrix.platform}} hdri=${{matrix.hdri}} (${{matrix.buildType}})' | |
needs: | |
- change_log | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
matrix: | |
quantum: [ 8, 16, 32, 64 ] | |
hdri: [ yes, no ] | |
buildType: [ dmt, smtd ] | |
platform: [ x64, x86, arm64 ] | |
exclude: | |
- quantum: 8 | |
hdri: yes | |
- quantum: 32 | |
hdri: no | |
- quantum: 64 | |
hdri: no | |
steps: | |
- name: Clone ImageMagick | |
uses: actions/checkout@v4 | |
with: | |
path: ImageMagick | |
- name: Clone ImageMagick-Windows | |
uses: actions/checkout@v4 | |
with: | |
repository: ImageMagick/ImageMagick-Windows | |
path: ImageMagick-Windows | |
ref: refs/heads/main | |
- name: Clone repositories | |
shell: cmd | |
run: | | |
cd ImageMagick-Windows | |
CloneRepositories.IM7.cmd | |
- name: Download ChangeLog.md | |
uses: actions/download-artifact@v4 | |
with: | |
name: ChangeLog | |
path: ImageMagick-Windows\ImageMagick | |
- name: Build configure | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
cd ImageMagick-Windows\Configure | |
msbuild Configure.sln /m /t:Rebuild /p:Configuration=Release,Platform=x64 | |
- name: Configure ImageMagick | |
shell: cmd | |
run: | | |
cd ImageMagick-Windows\Configure | |
Configure.exe /noWizard /VS2022 /includeOptional /incompatibleLicense /deprecated /${{matrix.platform}} /${{matrix.buildType}} | |
- name: Build ImageMagick | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
cd ImageMagick-Windows | |
msbuild /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.platform}} | |
build_windows_zero_configuration: | |
name: 'Windows Q16-x64 hdri=yes (zero configuration ${{matrix.buildType}})' | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
matrix: | |
buildType: [ dmt, smtd ] | |
steps: | |
- name: Clone ImageMagick | |
uses: actions/checkout@v4 | |
with: | |
path: ImageMagick | |
- name: Clone ImageMagick-Windows | |
uses: actions/checkout@v4 | |
with: | |
repository: ImageMagick/ImageMagick-Windows | |
path: ImageMagick-Windows | |
ref: refs/heads/main | |
- name: Clone repositories | |
shell: cmd | |
run: | | |
cd ImageMagick-Windows | |
CloneRepositories.IM7.cmd | |
- name: Build configure | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
cd ImageMagick-Windows\Configure | |
msbuild Configure.sln /m /t:Rebuild /p:Configuration=Release,Platform=x64 | |
- name: Configure ImageMagick | |
shell: cmd | |
run: | | |
cd ImageMagick-Windows\Configure | |
Configure.exe /noWizard /VS2022 /x64 /${{matrix.buildType}} /zeroConfigurationSupport | |
- name: Build ImageMagick | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" | |
cd ImageMagick-Windows | |
msbuild /m /t:Rebuild /p:Configuration=Release,Platform=x64 | |
build_msys2: | |
name: 'Windows Q16-${{matrix.toolchain}} hdri=yes (MSYS2)' | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
include: [ | |
{ msystem: ucrt64, toolchain: ucrt-x86_64 }, | |
{ msystem: mingw64, toolchain: x86_64 }, | |
{ msystem: mingw32, toolchain: i686 } | |
] | |
fail-fast: false | |
steps: | |
- name: Prepare git | |
run: git config --global core.autocrlf false | |
- uses: actions/checkout@v4 | |
- uses: actions/checkout@v4 | |
with: | |
repository: ImageMagick/ImageMagick-Windows | |
path: ImageMagick-Windows | |
ref: refs/heads/main | |
- uses: msys2/setup-msys2@v2 | |
with: | |
install: mingw-w64-${{ matrix.toolchain }}-toolchain base-devel binutils | |
update: true | |
- name: Building ImageMagick | |
run: cd ImageMagick-Windows/Build/MSYS2 && makepkg-mingw --noconfirm --syncdeps | |
env: | |
MINGW_ARCH: ${{ matrix.msystem }} | |
PKGEXT: ".pkg.tar.xz" | |
shell: msys2 {0} |