]> granicus.if.org Git - php/commitdiff
i386 build
authorJoe Watkins <krakjoe@php.net>
Sun, 9 Jun 2019 13:31:19 +0000 (15:31 +0200)
committerJoe Watkins <krakjoe@php.net>
Tue, 11 Jun 2019 08:23:37 +0000 (10:23 +0200)
azure-pipelines.yml
azure/i386/apt.yml [new file with mode: 0644]
azure/i386/job.yml [new file with mode: 0644]
azure/i386/test.yml [new file with mode: 0644]
ext/calendar/tests/unixtojd_error1.phpt

index 5556fd4d2adc61be2ed259e78c316623124335ed..d95aaf181b4e0cb9c73ecb724c080f9d582c5d83 100644 (file)
@@ -22,6 +22,22 @@ jobs:
     parameters:
       configurationName: DEBUG_ZTS
       configurationParameters: '--enable-debug --enable-maintainer-zts'
+  - template: azure/i386/job.yml
+    parameters:
+      configurationName: I386_RELEASE_NTS
+      configurationParameters: '--disable-debug --disable-maintainer-zts'
+  - template: azure/i386/job.yml
+    parameters:
+      configurationName: I386_DEBUG_NTS
+      configurationParameters: '--enable-debug --disable-maintainer-zts'
+  - template: azure/i386/job.yml
+    parameters:
+      configurationName: I386_RELEASE_ZTS
+      configurationParameters: '--disable-debug --enable-maintainer-zts'
+  - template: azure/i386/job.yml
+    parameters:
+      configurationName: I386_DEBUG_ZTS
+      configurationParameters: '--enable-debug --enable-maintainer-zts'
   - template: azure/macos/job.yml
     parameters:
       configurationName: MACOS_DEBUG_NTS
diff --git a/azure/i386/apt.yml b/azure/i386/apt.yml
new file mode 100644 (file)
index 0000000..06f0fdb
--- /dev/null
@@ -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 (file)
index 0000000..95c6d08
--- /dev/null
@@ -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 (file)
index 0000000..e2f8cec
--- /dev/null
@@ -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())
index 89be28c7921ec8885f43c5aa1df9b25d8de9b2ad..88de9830acc2019e2c91f315338066025e0ac451 100644 (file)
@@ -14,11 +14,9 @@ var_dump(unixtojd(-1)) . PHP_EOL;
 var_dump(unixtojd(false)) . PHP_EOL;
 var_dump(unixtojd(null)) . PHP_EOL;
 var_dump(unixtojd(time())) . PHP_EOL;
-var_dump(unixtojd(PHP_INT_MAX)) . PHP_EOL;
 ?>
 --EXPECTF--
 bool(false)
 int(%d)
 int(%d)
 int(%d)
-bool(false)