git:
  quiet: true

dist: xenial
language: c
sudo: required
addons:
  apt:
    packages:
      - locales
      - language-pack-de
      - re2c
      - ccache
      - mysql-server
      - libaspell-dev
      - libbz2-dev
      - libcurl4-gnutls-dev
      - libenchant-dev
      - libfreetype6-dev
      - libgmp-dev
      - libicu-dev
      - libjpeg-dev
      - libkrb5-dev
      - libonig-dev
      - libpng-dev
      - libpq-dev
      - libpspell-dev
      - libsasl2-dev
      - libsqlite3-dev
      - libsodium-dev
      - libtidy-dev
      - libwebp-dev
      - libxml2-dev
      - libxpm-dev
      - libxslt1-dev
      - libzip-dev


services:
  - mysql
  - postgresql

notifications:
    email:
       on_failure: change
    irc:
      template:
        - "%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message} -  Change view : %{compare_url} - Build details : %{build_url}"
      channels:
        - "irc.efnet.org#php.pecl"
      on_success: change
      on_failure: always

cache:
    apt: true
    ccache: true

env:
    global:
      - MYSQL_TEST_HOST=127.0.0.1
      - MYSQL_TEST_USER=travis
      - PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=test"
      - PDO_MYSQL_TEST_USER=travis
      - PDO_MYSQL_TEST_PASS=
      - PDO_MYSQL_TEST_HOST=127.0.0.1
      - PDO_PGSQL_TEST_DSN="pgsql:host=localhost port=5432 dbname=test user=postgres password="
      - REPORT_EXIT_STATUS=1

jobs:
    include:
        - env: ENABLE_MAINTAINER_ZTS=0 ENABLE_DEBUG=0
          arch: amd64
          if: type = cron
        - env: ENABLE_MAINTAINER_ZTS=1 ENABLE_DEBUG=1
          arch: amd64
          if: type = cron
        - env: ENABLE_MAINTAINER_ZTS=1 ENABLE_DEBUG=1 SKIP_IO_CAPTURE_TESTS=1 ARM64=1
          arch: arm64
          if: type = cron

before_script:
    - ccache --version
    - ccache --zero-stats
    - export USE_CCACHE=1
    # Enable IPv6
    - sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6'
    # Compile PHP
    - travis_wait ./travis/compile.sh
    # Setup Extensions
    - ./travis/setup-mysql.sh
    - ./travis/setup-pgsql.sh

# Run PHPs run-tests.php
script:
    # ARM64 CI reports nproc=32, which is excessive.
    - if [ -z "$ARM64" ]; then export JOBS=$(nproc); else export JOBS=16; fi
    - ./sapi/cli/php run-tests.php -P -d extension=`pwd`/modules/zend_test.so $(if [ $ENABLE_DEBUG == 0 ]; then echo "-d opcache.enable_cli=1 -d opcache.protect_memory=1 -d zend_extension=`pwd`/modules/opcache.so"; fi) -g "FAIL,XFAIL,BORK,WARN,LEAK,SKIP" --offline --show-diff --show-slow 1000 --set-timeout 120 -j$JOBS
    - sapi/cli/php -d extension_dir=`pwd`/modules -r 'dl("zend_test");'

after_success:
    - ccache --show-stats
