192 lines
6.5 KiB
YAML
192 lines
6.5 KiB
YAML
name: Build and Test on Debian
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
release:
|
|
types: [created]
|
|
|
|
jobs:
|
|
test_basic:
|
|
name: basic PHP ${{ matrix.php }} - I ${{ matrix.imagemagick }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
php: [ 8.5 ]
|
|
imagemagick: [
|
|
7.1.0-13,
|
|
6.8.7-0,
|
|
]
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
|
|
- name: Apt install required packages
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y fonts-urw-base35 || true
|
|
sudo apt-get install -y libfreetype6-dev || true
|
|
sudo apt-get install -y texlive-fonts-recommended || true
|
|
|
|
- name: Cache ImageMagick
|
|
uses: actions/cache@v4
|
|
env:
|
|
cache-name: cache-ImageMagick
|
|
with:
|
|
path: ~/im/imagemagick-${{ matrix.imagemagick }}
|
|
key: ${{ runner.os }}-ImageMagick-${{ matrix.imagemagick }}
|
|
|
|
- name: Sanity check package.xml and install ImageMagick
|
|
run: |
|
|
for file in tests/*.phpt; do grep $(basename $file) package.xml >/dev/null || (echo "Missing $file from package.xml" ; exit 1); done
|
|
bash ./imagemagick_dependency.sh "${{ matrix.imagemagick }}" $(pwd)
|
|
|
|
- name: Configure, install, and basic checks
|
|
run: |
|
|
export NO_INTERACTION=1
|
|
export REPORT_EXIT_STATUS=1
|
|
export SKIP_SLOW_TESTS=1
|
|
export PHP_IMAGICK_VERSION=$(php -r '$sxe = simplexml_load_file ("package.xml"); echo (string) $sxe->version->release;')
|
|
export CFLAGS=$(php util/calculate_cflags.php "${{ matrix.php }}" "${{ matrix.imagemagick }}")
|
|
echo "CFLAGS are ${CFLAGS}"
|
|
phpize
|
|
./configure --with-imagick="${HOME}/im/imagemagick-${{ matrix.imagemagick }}"
|
|
sudo make install
|
|
php -d extension=imagick.so util/check_fonts.php
|
|
|
|
- name: Run Imagick tests
|
|
run: |
|
|
export TEST_PHP_EXECUTABLE=`which php`
|
|
php run-tests.php -d extension=imagick.so -d extension_dir=modules -n ./*.phpt --show-diff -g FAIL,BORK,WARN,LEAK
|
|
export JOBS=$(php util/calculate_test_jobs.php)
|
|
php run-tests.php ${JOBS} -d extension=imagick.so -d extension_dir=modules -n ./tests/*.phpt --show-diff -g FAIL,BORK,WARN,LEAK
|
|
for i in `ls tests/*.diff 2>/dev/null`; do echo "-- START ${i}"; cat $i; echo "-- END"; done
|
|
php ./util/check_version.php
|
|
|
|
test_all:
|
|
name: Full PHP ${{ matrix.php }} - I ${{ matrix.imagemagick }}
|
|
needs: test_basic
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
php: [8.4, 8.3, 8.2, 8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 7.0, 5.6]
|
|
imagemagick: [
|
|
7.1.0-13,
|
|
7.0.10-27,
|
|
7.0.8-4,
|
|
7.0.1-0,
|
|
git7,
|
|
6.9.2-0,
|
|
6.8.7-0,
|
|
#6.7.8-0,
|
|
git6
|
|
]
|
|
exclude:
|
|
- php: 8.3
|
|
imagemagick: git6
|
|
- php: 8.2
|
|
imagemagick: git6
|
|
- php: 8.1
|
|
imagemagick: git6
|
|
- php: 8.0
|
|
imagemagick: git6
|
|
- php: 7.4
|
|
imagemagick: git6
|
|
- php: 7.3
|
|
imagemagick: git6
|
|
- php: 7.2
|
|
imagemagick: git6
|
|
- php: 7.1
|
|
imagemagick: git6
|
|
- php: 7.0
|
|
imagemagick: git6
|
|
- php: 5.6
|
|
imagemagick: git6
|
|
- php: 5.5
|
|
imagemagick: git6
|
|
- php: 8.2
|
|
imagemagick: git7
|
|
- php: 8.1
|
|
imagemagick: git7
|
|
- php: 8.0
|
|
imagemagick: git7
|
|
- php: 7.4
|
|
imagemagick: git7
|
|
- php: 7.3
|
|
imagemagick: git7
|
|
- php: 7.2
|
|
imagemagick: git7
|
|
- php: 7.1
|
|
imagemagick: git7
|
|
- php: 7.0
|
|
imagemagick: git7
|
|
- php: 5.6
|
|
imagemagick: git7
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
|
|
- name: Apt install required packages
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y fonts-urw-base35 || true
|
|
sudo apt-get install -y libfreetype6-dev || true
|
|
sudo apt-get install -y texlive-fonts-recommended || true
|
|
sudo apt-get install -y libdjvulibre21 || true
|
|
sudo apt-get install -y libpcre3-dev || true
|
|
sudo apt-get install -y libraqm0 || true
|
|
sudo apt-get install -y libwmf0.2-7 || true
|
|
sudo apt-get install -y libopenexr-3-1-30 || true
|
|
|
|
- name: Cache ImageMagick
|
|
uses: actions/cache@v4
|
|
env:
|
|
cache-name: cache-ImageMagick
|
|
with:
|
|
path: ~/im/imagemagick-${{ matrix.imagemagick }}
|
|
key: ${{ runner.os }}-ImageMagick-${{ matrix.imagemagick }}
|
|
|
|
- name: Sanity check package.xml and install ImageMagick
|
|
run: |
|
|
for file in tests/*.phpt; do grep $(basename $file) package.xml >/dev/null || (echo "Missing $file from package.xml" ; exit 1); done
|
|
bash ./imagemagick_dependency.sh "${{ matrix.imagemagick }}" $(pwd)
|
|
|
|
- name: Configure and check fonts are present
|
|
run: |
|
|
export PHP_IMAGICK_VERSION=$(php -r '$sxe = simplexml_load_file ("package.xml"); echo (string) $sxe->version->release;')
|
|
export CFLAGS=$(php util/calculate_cflags.php "${{ matrix.php }}" "${{ matrix.imagemagick }}")
|
|
echo "CFLAGS are ${CFLAGS}"
|
|
phpize
|
|
./configure --with-imagick="${HOME}/im/imagemagick-${{ matrix.imagemagick }}"
|
|
sudo make install
|
|
php -d extension=imagick.so util/check_fonts.php
|
|
|
|
- name: Run Imagick tests
|
|
run: |
|
|
export TEST_PHP_EXECUTABLE=`which php`
|
|
export NO_INTERACTION=1
|
|
export REPORT_EXIT_STATUS=1
|
|
export SKIP_SLOW_TESTS=1
|
|
php run-tests.php -d extension=imagick.so -d extension_dir=modules -n ./*.phpt --show-diff -g FAIL,BORK,WARN,LEAK
|
|
export JOBS=$(php util/calculate_test_jobs.php)
|
|
php run-tests.php ${JOBS} -d extension=imagick.so -d extension_dir=modules -n ./tests/*.phpt --show-diff -g FAIL,BORK,WARN,LEAK
|
|
for i in `ls tests/*.diff 2>/dev/null`; do echo "-- START ${i}"; cat $i; echo "-- END"; done
|
|
php ./util/check_version.php
|