53 lines
2.4 KiB
YAML
53 lines
2.4 KiB
YAML
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.14
|
|
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'
|