From c2a78c7cac74c184648b8e357a1ce4862ec06a78 Mon Sep 17 00:00:00 2001 From: Joe Watkins Date: Sun, 9 Jun 2019 15:31:19 +0200 Subject: i386 build --- azure/i386/apt.yml | 47 ++++++++++++++++++++++++ azure/i386/job.yml | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++ azure/i386/test.yml | 32 ++++++++++++++++ 3 files changed, 182 insertions(+) create mode 100644 azure/i386/apt.yml create mode 100644 azure/i386/job.yml create mode 100644 azure/i386/test.yml (limited to 'azure/i386') 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()) -- cgit v1.2.1