.azure/job.yml
parameters:
configurationName: ''
phpVersion: ''
# A reference for testing PECL extensions using azure can be seen at https://github.com/microsoft/msphpsql/blob/master/azure-pipelines.yml
# (that extension also runs unit tests on Windows/Macs)
jobs:
- job: ${{ parameters.configurationName }}
# NOTE: This currently does not use containers. Doing so may be useful for testing on php zts/32-bit.
# Containers need to provide sudo apt-get in order to work, the php:x-cli images don't.
# Containers are slower to start up than the default vm images
pool:
vmImage: ${{ parameters.vmImage }}
steps:
- script: |
VER=${{ parameters.phpVersion }}
# Refresh the cache for the PPA repository, it can be out of date if it's updated recently
if [[ ! -f /usr/bin/phpize$VER ]]; then
sudo add-apt-repository -u ppa:ondrej/php
fi
# Silently try to install the php version if it's available.
# ondrej/php is a minimal install for php 8.0.
sudo apt-get install -y php$VER php$VER-dev php$VER-xml php$VER-mbstring
sudo update-alternatives --set php /usr/bin/php$VER
# Fail the build early if the php version isn't installed on this image
sudo update-alternatives --set phpize /usr/bin/phpize$VER || exit 1
sudo update-alternatives --set pecl /usr/bin/pecl$VER
sudo update-alternatives --set phar /usr/bin/phar$VER
sudo update-alternatives --set phpdbg /usr/bin/phpdbg$VER
sudo update-alternatives --set php-cgi /usr/bin/php-cgi$VER
sudo update-alternatives --set phar.phar /usr/bin/phar.phar$VER
sudo update-alternatives --set php-config /usr/bin/php-config$VER
displayName: Use PHP version ${{ parameters.phpVersion }}
- script: |
VER=${{ parameters.phpVersion }}
CONF_DIR=/etc/php/$VER/cli/conf.d
sudo pecl install ast-1.0.10
php --version
sudo rm -f $CONF_DIR/*xdebug.ini
echo 'extension=ast.so' | sudo tee $CONF_DIR/20-ast.ini
php -m
php --ini
composer validate
composer --prefer-dist --classmap-authoritative install
pushd internal/paratest; composer --prefer-dist --classmap-authoritative install; popd
displayName: 'Install dependencies'
- script: |
tests/run_all_tests || exit 1
php -d phar.readonly=0 internal/package.php || exit 1
displayName: 'Test phan'