summaryrefslogtreecommitdiff
path: root/azure/i386
diff options
context:
space:
mode:
Diffstat (limited to 'azure/i386')
-rw-r--r--azure/i386/apt.yml46
-rw-r--r--azure/i386/job.yml96
-rw-r--r--azure/i386/test.yml33
3 files changed, 175 insertions, 0 deletions
diff --git a/azure/i386/apt.yml b/azure/i386/apt.yml
new file mode 100644
index 0000000000..4dd09423c9
--- /dev/null
+++ b/azure/i386/apt.yml
@@ -0,0 +1,46 @@
+parameters:
+ packages: ''
+
+steps:
+ - script: |
+ sudo dpkg --add-architecture i386
+ sudo apt-get update -y | true
+ sudo apt-get install -y gcc-multilib
+ sudo apt-get install -y g++-multilib
+ sudo apt-get purge -y libxml2 libsqlite3-0
+ # TODO: Reenable postgresql + postgresql-contrib packages once they work again.
+ sudo apt-get install -y bison \
+ re2c \
+ locales \
+ language-pack-de \
+ libglib2.0-dev:i386 \
+ libssl-dev:i386 \
+ zlib1g-dev:i386 \
+ libxml2-dev:i386 \
+ libgmp-dev:i386 \
+ libicu-dev:i386 \
+ libtidy-dev:i386 \
+ libenchant-dev:i386 \
+ libaspell-dev:i386 \
+ libpspell-dev:i386 \
+ libsasl2-dev:i386 \
+ libxpm-dev:i386 \
+ libjpeg-dev:i386 \
+ libpng-dev:i386 \
+ libzip-dev:i386 \
+ libbz2-dev:i386 \
+ libsqlite3-dev:i386 \
+ libwebp-dev:i386 \
+ libonig-dev:i386 \
+ libkrb5-dev:i386 \
+ libgssapi-krb5-2:i386 \
+ libcurl4-openssl-dev:i386 \
+ libxml2-dev:i386 \
+ libxslt1-dev:i386 \
+ libpq-dev:i386 \
+ libreadline-dev:i386 \
+ libffi-dev:i386 \
+ libfreetype6-dev:i386 \
+ libsodium-dev:i386 \
+ ${{ parameters.packages }}
+ displayName: 'APT'
diff --git a/azure/i386/job.yml b/azure/i386/job.yml
new file mode 100644
index 0000000000..83e8705f0f
--- /dev/null
+++ b/azure/i386/job.yml
@@ -0,0 +1,96 @@
+parameters:
+ configurationName: ''
+ configurationParameters: ''
+
+jobs:
+ - job: ${{ parameters.configurationName }}
+ pool:
+ vmImage: 'ubuntu-18.04'
+ steps:
+ - template: apt.yml
+ - script: |
+ ./buildconf --force
+ export CFLAGS=-m32
+ export CXXFLAGS=-m32
+ export LDFLAGS=-L/usr/lib/i386-linux-gnu
+ export PKG_CONFIG=/usr/bin/i686-linux-gnu-pkg-config
+ ./configure ${{ parameters.configurationParameters }} \
+ --enable-option-checking=fatal \
+ --prefix=/usr \
+ --enable-phpdbg \
+ --enable-fpm \
+ --enable-intl \
+ --with-pdo-mysql=mysqlnd \
+ --with-mysqli=mysqlnd \
+ --with-pgsql \
+ --with-pdo-pgsql \
+ --with-pdo-sqlite \
+ --without-pear \
+ --enable-gd \
+ --with-jpeg \
+ --with-webp \
+ --with-freetype \
+ --with-xpm \
+ --enable-exif \
+ --with-zip \
+ --with-zlib \
+ --with-zlib-dir=/usr \
+ --enable-soap \
+ --enable-xmlreader \
+ --with-xsl \
+ --with-tidy \
+ --with-xmlrpc \
+ --enable-sysvsem \
+ --enable-sysvshm \
+ --enable-shmop \
+ --enable-pcntl \
+ --with-readline \
+ --enable-mbstring \
+ --with-curl \
+ --with-gettext \
+ --enable-sockets \
+ --with-bz2 \
+ --with-openssl \
+ --with-gmp \
+ --enable-bcmath \
+ --enable-calendar \
+ --enable-ftp \
+ --with-pspell=/usr \
+ --with-enchant=/usr \
+ --with-kerberos \
+ --enable-sysvmsg \
+ --with-ffi \
+ --enable-zend-test \
+ --with-mhash \
+ --with-sodium \
+ --enable-werror \
+ --with-config-file-path=/etc \
+ --with-config-file-scan-dir=/etc/php.d
+ displayName: 'Configure Build'
+ - script: make -j$(/usr/bin/nproc) >/dev/null
+ displayName: 'Make Build'
+ - script: |
+ set -e
+ sudo make install
+ sudo mkdir /etc/php.d
+ sudo chmod 777 /etc/php.d
+ echo mysqli.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/mysqli.ini
+ echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini
+ echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini
+ echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
+ displayName: 'Install Build'
+ - script: |
+ set -e
+ sudo service mysql start
+ mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
+ #sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
+ #sudo -u postgres psql -c "CREATE DATABASE test;"
+ displayName: 'Setup'
+ - template: test.yml
+ parameters:
+ configurationName: ${{ parameters.configurationName }}
+ - template: test.yml
+ parameters:
+ configurationName: ${{ parameters.configurationName }}
+ runTestsName: 'OpCache'
+ runTestsParameters: -d zend_extension=opcache.so
diff --git a/azure/i386/test.yml b/azure/i386/test.yml
new file mode 100644
index 0000000000..1e2e1d6a1e
--- /dev/null
+++ b/azure/i386/test.yml
@@ -0,0 +1,33 @@
+parameters:
+ runTestsName: ''
+ runTestsParameters: ''
+
+steps:
+ - script: |
+ export MYSQL_TEST_USER=root
+ export MYSQL_TEST_PASSWD=root
+ export PDO_MYSQL_TEST_DSN="mysql:host=localhost;dbname=test"
+ export PDO_MYSQL_TEST_USER=root
+ export PDO_MYSQL_TEST_PASS=root
+ export TEST_PHP_JUNIT=junit.xml
+ export REPORT_EXIT_STATUS=no
+ export SKIP_IO_CAPTURE_TESTS=1
+ rm -rf junit.xml | true
+ php run-tests.php -P -q \
+ -j$(/usr/bin/nproc) \
+ -g FAIL,XFAIL,BORK,WARN,LEAK,XLEAK,SKIP \
+ --offline \
+ --show-diff \
+ --show-slow 1000 \
+ --set-timeout 120 \
+ ${{ parameters.runTestsParameters }}
+ displayName: 'Test ${{ parameters.configurationName }} ${{ parameters.runTestsName }}'
+ condition: or(succeeded(), failed())
+ - task: PublishTestResults@2
+ inputs:
+ testResultsFormat: 'JUnit'
+ testResultsFiles: junit.xml
+ testRunTitle: '${{ parameters.configurationName }} ${{ parameters.runTestsName }}'
+ failTaskOnFailedTests: true
+ displayName: 'Export ${{ parameters.configurationName }} ${{ parameters.runTestsName }} Results'
+ condition: or(succeeded(), failed())