language: c
os:
  - linux
dist:
  - bionic
cache:
  directories:
    - /home/travis/perl5
    - /home/travis/root
# The non-x86_64 images currently lack cpanminus, when that is fixed
# the cpanminus & universe sourceline can be removed.
addons:
  apt:
    update: false
    sources:
      - sourceline: 'deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe'
    packages:
      - cpanminus
      - libtool-bin
      - libapr1-dev
      - libaprutil1-dev
      - perl-doc
      - lua5.3-dev
      - libbrotli-dev
      - libcurl4-openssl-dev
      - libsystemd-dev
      - libnghttp2-dev
      - libjansson-dev
      - libpcre2-dev
env:
  global:
    - MFLAGS=-j2

matrix:
  include:
    - name: Linux Ubuntu, Default module set
    # -------------------------------------------------------------------------
    - name: Linux s390x Ubuntu, all-modules
      arch: s390x
      env: CONFIG="--enable-mods-shared=reallyall"
    # -------------------------------------------------------------------------
    - name: Linux ppc64le Ubuntu, all-modules
      arch: ppc64le
      env: CONFIG="--enable-mods-shared=reallyall"
    # -------------------------------------------------------------------------
    - name: Linux arm64 Ubuntu, all-modules
      arch: arm64
      env: CONFIG="--enable-mods-shared=reallyall"
           TEST_ARGS="-v"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, Default, all-modules
      env: CONFIG="--enable-mods-shared=reallyall"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, Default, all-modules, random test order
      env: CONFIG="--enable-mods-shared=reallyall"
           TEST_ARGS="-order=random"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, Prefork MPM, all-modules
      env: CONFIG="--enable-mods-shared=reallyall --with-mpm=prefork"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, Worker MPM, all-modules
      env: CONFIG="--enable-mods-shared=reallyall --with-mpm=worker"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, Shared MPMs, all-modules
      env: CONFIG="--enable-mods-shared=reallyall --enable-mpms-shared=all"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, GCC 7 maintainer-mode w/-Werror
      os: linux
      env: CONFIG="--enable-mods-shared=reallyall --enable-maintainer-mode NOTEST_CFLAGS=-Werror CC=gcc-7"
           SKIP_TESTING=1
    # -------------------------------------------------------------------------
    - if: branch != 2.4.x
      name: Linux Ubuntu, PCRE 1, GCC 7 maintainer-mode w/-Werror
      os: linux
      env: CONFIG="--enable-mods-shared=reallyall --with-pcre=/usr/bin/pcre-config --enable-maintainer-mode NOTEST_CFLAGS=-Werror CC=gcc-7"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, GCC 8 maintainer-mode w/-Werror
      env: CONFIG="--enable-mods-shared=reallyall --enable-maintainer-mode NOTEST_CFLAGS=-Werror CC=gcc-8"
           SKIP_TESTING=1
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - gcc-8
            - libtool-bin
            - libapr1-dev
            - libaprutil1-dev
            - perl-doc
            - lua5.3-dev
            - libbrotli-dev
            - libcurl4-openssl-dev
            - libsystemd-dev
            - libnghttp2-dev
            - libjansson-dev
            - libpcre2-dev
    # -------------------------------------------------------------------------
    # MFLAGS= works around https://bz.apache.org/bugzilla/show_bug.cgi?id=63942
    - if: branch != 2.4.x
      name: Linux Ubuntu, Regenerate ap_expr
      os: linux
      env: CONFIG="--enable-mods-shared=reallyall --enable-maintainer-mode NOTEST_CFLAGS=-Werror"
           BUILDCONFIG="--with-regen-expr"
           MFLAGS=
    # -------------------------------------------------------------------------
    - if: branch != 2.4.x
      name: Linux Ubuntu, APR trunk
      env: APR_VERSION=trunk APR_CONFIG="--with-crypto"
           CONFIG="--enable-mods-shared=reallyall"
    # -------------------------------------------------------------------------
    - if: branch = 2.4.x
      name: Linux Ubuntu Xenial, all-modules, system APR/APR-util
      os: linux
      dist: xenial
      env: CONFIG="--enable-mods-shared=reallyall"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu Xenial, all-modules, APR 1.7.0, APR-util 1.6.1
      dist: xenial
      env: APR_VERSION=1.7.0 APU_VERSION=1.6.1
           CONFIG="--enable-mods-shared=reallyall"
           APU_CONFIG="--with-crypto"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, APR 1.7.0, APR-util 1.6.1
      env: APR_VERSION=1.7.0 APU_VERSION=1.6.1
           CONFIG="--enable-mods-shared=reallyall"
           APU_CONFIG="--with-crypto"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, APR 1.7.x, APR-util 1.7.x
      env: APR_VERSION=1.7.x APU_VERSION=1.7.x
           CONFIG="--enable-mods-shared=reallyall"
           APU_CONFIG="--with-crypto"
           CLEAR_CACHE=1
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, APR 1.7.0 --enable-pool-debug, APR-util 1.6.1
      env: APR_VERSION=1.7.0 APR_CONFIG="--enable-pool-debug"
           APU_VERSION=1.6.1
           APU_CONFIG="--with-crypto"
           CONFIG="--enable-mods-shared=reallyall"
    # -------------------------------------------------------------------------
    - name: Linux Ubuntu, litmus WebDAV tests
      env: CONFIG="--enable-dav --enable-dav-fs"
           LITMUS=1 TEST_ARGS="t/modules/dav.t"
      addons:
        apt:
          update: false
          sources:
            - sourceline: 'deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe'
          packages:
            - cpanminus
            - libtool-bin
            - libapr1-dev
            - libaprutil1-dev
            - perl-doc
            - lua5.3-dev
            - libbrotli-dev
            - libcurl4-openssl-dev
            - libsystemd-dev
            - libnghttp2-dev
            - libjansson-dev
            - libpcre2-dev
            - litmus
    # -------------------------------------------------------------------------
    - if: branch = 2.4.x
      name: Linux Ubuntu, APR 1.5.1, APR-util 1.5.4
      env: APR_VERSION=1.5.1 APU_VERSION=1.5.4
           CONFIG="--enable-mods-shared=reallyall"
    # -------------------------------------------------------------------------
    - if: branch = 2.4.x
      name: Linux Ubuntu, APR 1.4.8, APR-util 1.4.2
      env: APR_VERSION=1.4.8 APU_VERSION=1.4.2
           CONFIG="--enable-mods-shared=reallyall"
    # -------------------------------------------------------------------------

before_install:
  - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
        cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib);
        cpanm --notest Net::SSL LWP::Protocol::https ExtUtils::Embed Test::More AnyEvent DateTime HTTP::DAV Protocol::HTTP2::Client FCGI;
    fi

before_script:
  - ./test/travis_before_${TRAVIS_OS_NAME}.sh

script:
  - ./test/travis_run_${TRAVIS_OS_NAME}.sh

notifications:
  irc: "chat.freenode.net#httpd-dev"
  # Disabled to avoid too many failure emails to dev@,
  # some builds occasionally fail.
  email:
    - dev@httpd.apache.org
