summaryrefslogtreecommitdiff
path: root/azure/i386
diff options
context:
space:
mode:
authorJoe Watkins <krakjoe@php.net>2019-06-09 15:31:19 +0200
committerJoe Watkins <krakjoe@php.net>2019-06-11 10:23:37 +0200
commitc2a78c7cac74c184648b8e357a1ce4862ec06a78 (patch)
tree0b5b9e24d3f602af015fe75ab6e29871239b0901 /azure/i386
parent5c8b702e77e971f1d2f87c3e3fa694216eec284b (diff)
downloadphp-git-c2a78c7cac74c184648b8e357a1ce4862ec06a78.tar.gz
i386 build
Diffstat (limited to 'azure/i386')
-rw-r--r--azure/i386/apt.yml47
-rw-r--r--azure/i386/job.yml103
-rw-r--r--azure/i386/test.yml32
3 files changed, 182 insertions, 0 deletions
diff --git a/azure/i386/apt.yml b/azure/i386/apt.yml
new file mode 100644
index 0000000000..06f0fdbcec
--- /dev/null
+++ b/azure/i386/apt.yml
@@ -0,0 +1,47 @@
+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 install -y valgrind:i386
+ sudo apt-get install -y bison \
+ re2c \
+ locales \
+ language-pack-de \
+ libglib2.0-dev:i386 \
+ openssl: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 \
+ librecode-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 \
+ postgresql \
+ postgresql-contrib \
+ ${{ parameters.packages }}
+ displayName: 'APT'
diff --git a/azure/i386/job.yml b/azure/i386/job.yml
new file mode 100644
index 0000000000..95c6d08bd9
--- /dev/null
+++ b/azure/i386/job.yml
@@ -0,0 +1,103 @@
+parameters:
+ configurationName: ''
+ configurationParameters: ''
+
+jobs:
+ - job: ${{ parameters.configurationName }}
+ pool:
+ vmImage: 'ubuntu-latest'
+ steps:
+ - checkout: self
+ fetchDepth: 1
+ - 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 }} \
+ --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-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: |
+ 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
+ displayName: 'Install Build'
+ - script: |
+ 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'
+# - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: this will be uncommented on merge, we don't want to docker pull request builds
+ - task: Docker@2
+ inputs:
+ containerRegistry: 'phpazuredevops'
+ repository: ${{ variables['Build.SourceBranch'] }}
+ command: 'buildAndPush'
+ Dockerfile: '**/Dockerfile'
+ tags: ${{ parameters.configurationName }}
+ - template: test.yml
+ parameters:
+ configurationName: ${{ parameters.configurationName }}
+ - template: test.yml
+ parameters:
+ configurationName: ${{ parameters.configurationName }}
+ runTestsName: 'OpCache'
+ runTestsParameters: -d zend_extension=opcache.so -d opcache.enable_cli=1
+ - ${{ if ne(variables['Build.SourceBranch'], 'refs/heads/PHP-7.4') }}:
+ - template: test.yml
+ parameters:
+ configurationName: ${{ parameters.configurationName }}
+ runTestsName: 'JIT'
+ runTestsParameters: -d zend_extension=opcache.so -d opcache.enable_cli=1 -d opcache.jit_buffer_size=16M
diff --git a/azure/i386/test.yml b/azure/i386/test.yml
new file mode 100644
index 0000000000..e2f8cec668
--- /dev/null
+++ b/azure/i386/test.yml
@@ -0,0 +1,32 @@
+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-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: false
+ displayName: 'Export ${{ parameters.configurationName }} ${{ parameters.runTestsName }} Results'
+ condition: or(succeeded(), failed())