env:
  CIRRUS_CLONE_DEPTH: 1

freebsd_task:
  name: FREEBSD_DEBUG_NTS
  freebsd_instance:
    image_family: freebsd-13-0
  env:
    ARCH: amd64
  install_script:
    #- sed -i -e 's/quarterly/latest/g' /etc/pkg/FreeBSD.conf
    #- pkg upgrade -y
    - kldload accf_http
    - pkg install -y autoconf bison gmake re2c icu libiconv png freetype2 enchant2 bzip2 krb5 t1lib gmp tidyp libsodium libzip libxml2 libxslt openssl oniguruma pkgconf webp libavif
  script:
    - ./buildconf -f
    - ./configure --prefix=/usr/local --enable-debug --enable-option-checking=fatal --enable-fpm --with-pdo-sqlite --without-pear --with-bz2 --with-avif --with-jpeg --with-webp --with-freetype --enable-gd --enable-exif --with-zip --with-zlib --enable-soap --enable-xmlreader --with-xsl --with-libxml --enable-shmop --enable-pcntl --enable-mbstring --with-curl --enable-sockets --with-openssl --with-iconv=/usr/local --enable-bcmath --enable-calendar --enable-ftp --with-kerberos --with-ffi --enable-zend-test --enable-dl-test=shared --enable-intl --with-mhash --with-sodium --enable-werror --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
    - gmake -j2
    - mkdir /etc/php.d
    - gmake install
    - echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
    - echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
    # Specify opcache.preload_user as we're running as root.
    - echo opcache.preload_user=root >> /etc/php.d/opcache.ini
  tests_script:
    - export SKIP_IO_CAPTURE_TESTS=1
    - export CI_NO_IPV6=1
    - sapi/cli/php run-tests.php -P -q -j2 -g FAIL,BORK,LEAK,XLEAK --no-progress --offline --show-diff --show-slow 1000 --set-timeout 120 -d zend_extension=opcache.so

arm_task:
  name: ARM_DEBUG_NTS
  arm_container:
    image: debian:11
    additional_containers:
      - name: mysql
        image: mysql:8
        port: 3306
        cpu: 1.0
        memory: 1G
        env:
          MYSQL_ALLOW_EMPTY_PASSWORD: true
          MYSQL_ROOT_PASSWORD: ""
          MYSQL_DATABASE: "test"
      - name: postgres
        image: postgres:latest
        port: 5432
        env:
          POSTGRES_PASSWORD: "postgres"
          POSTGRES_DB: "test"
  install_script:
    - export DEBIAN_FRONTEND=noninteractive
    - apt-get update -y
    - >-
        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
  build_script:
    - ./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`
    - make -j2 > /dev/null
    - make install
    - mkdir -p /etc/php.d
    - echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
    - echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
    # Specify opcache.preload_user as we're running as root.
    - echo opcache.preload_user=root >> /etc/php.d/opcache.ini
  tests_script:
    - export SKIP_IO_CAPTURE_TESTS=1
    - export CI_NO_IPV6=1
    - export MYSQL_TEST_HOST=127.0.0.1
    - export MYSQL_TEST_USER=root
    - export MYSQL_TEST_PASSWD=
    - export PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=test"
    - export PDO_MYSQL_TEST_USER=root
    - export PDO_MYSQL_TEST_PASS=
    - export PDO_PGSQL_TEST_DSN="pgsql:host=127.0.0.1 port=5432 dbname=test user=postgres password=postgres"
    - >-
        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=function
        -P -q -x -j2
        -g FAIL,BORK,LEAK,XLEAK
        --no-progress
        --offline
        --show-diff
        --show-slow 1000
        --set-timeout 120
    - >-
        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
        -P -q -x -j2
        -g FAIL,BORK,LEAK,XLEAK
        --no-progress
        --offline
        --show-diff
        --show-slow 1000
        --set-timeout 120
        --repeat 2
