php-src/.circleci/config.yml
Matteo Beccati 6fed9a9a7e
Stick to mysql 8.3 for the time being
MySQL 8.4 does not load the 'mysql_native_password' plugin by default
and I couldn't figure out how to initialise the container to load it.
2024-05-02 19:53:05 +02:00

202 lines
6.0 KiB
YAML

version: 2.1
jobs:
arm:
resource_class: arm.medium
docker:
- image: cimg/base:current-22.04
- image: mysql:8.3
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: true
MYSQL_ROOT_PASSWORD: ''
MYSQL_DATABASE: test
- image: postgres:16
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: test
environment:
LANGUAGE: ''
LANG: en_US.UTF-8
MYSQL_TEST_HOST: '127.0.0.1'
MYSQL_TEST_PASSWD: ''
MYSQL_TEST_USER: root
PDO_MYSQL_TEST_DSN: 'mysql:host=127.0.0.1;dbname=test'
PDO_MYSQL_TEST_PASS: ''
PDO_MYSQL_TEST_USER: root
PDO_PGSQL_TEST_DSN: 'pgsql:host=127.0.0.1 port=5432 dbname=test user=postgres password=postgres'
steps:
- checkout
- run:
name: apt
command: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update -y
sudo apt-get install -y \
gcc \
g++ \
autoconf \
bison \
re2c \
locales \
locales-all \
ldap-utils \
openssl \
slapd \
libgmp-dev \
libicu-dev \
libtidy-dev \
libenchant-2-dev \
libaspell-dev \
libpspell-dev \
libsasl2-dev \
libxpm-dev \
libzip-dev \
libbz2-dev \
libsqlite3-dev \
libwebp-dev \
libonig-dev \
libkrb5-dev \
libgssapi-krb5-2 \
libcurl4-openssl-dev \
libxml2-dev \
libxslt1-dev \
libpq-dev \
libreadline-dev \
libldap2-dev \
libsodium-dev \
libargon2-0-dev \
libmm-dev \
libsnmp-dev \
snmpd \
`#snmp-mibs-downloader` \
freetds-dev \
`#unixodbc-dev` \
libc-client-dev \
dovecot-core \
dovecot-pop3d \
dovecot-imapd \
sendmail \
firebird-dev \
liblmdb-dev \
libtokyocabinet-dev \
libdb-dev \
libqdbm-dev \
libjpeg-dev \
libpng-dev \
libfreetype6-dev
- run:
name: ./configure
command: |
./buildconf -f
./configure \
--enable-debug \
--enable-zts \
--enable-option-checking=fatal \
--prefix=/usr \
--enable-phpdbg \
--enable-fpm \
--enable-opcache \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pgsql \
--with-pdo-pgsql \
--with-pdo-sqlite \
--enable-intl \
--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 \
--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 \
--enable-dl-test=shared \
--with-ldap \
--with-ldap-sasl \
--with-password-argon2 \
--with-mhash \
--with-sodium \
--enable-dba \
--with-cdb \
--enable-flatfile \
--enable-inifile \
--with-tcadb \
--with-lmdb \
--with-qdbm \
--with-snmp \
`#--with-unixODBC` \
--with-imap \
--with-kerberos \
--with-imap-ssl \
`#--with-pdo-odbc=unixODBC,/usr` \
`#--with-pdo-oci=shared,instantclient,/opt/oracle/instantclient` \
`#--with-oci8=shared,instantclient,/opt/oracle/instantclient` \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-pdo-firebird \
`#--with-pdo-dblib` \
--disable-phpdbg \
`#--enable-werror`
- run:
name: make
command: make -j2 > /dev/null
- run:
name: make install
command: |
sudo make install
sudo mkdir -p /etc/php.d
sudo chmod 777 /etc/php.d
echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
- run:
name: Test
no_output_timeout: 30m
command: |
sapi/cli/php run-tests.php \
-d zend_extension=opcache.so \
-d opcache.enable_cli=1 \
-d opcache.jit_buffer_size=16M \
-d opcache.jit=tracing \
-d zend_test.observer.enabled=1 \
-d zend_test.observer.show_output=0 \
-P -q -x -j2 \
-g FAIL,BORK,LEAK,XLEAK \
--no-progress \
--offline \
--show-diff \
--show-slow 1000 \
--set-timeout 120 \
--repeat 2
workflows:
push-workflow:
jobs:
- arm