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 - liblua5.3-dev - libbrotli-dev - libcurl4-openssl-dev - libsystemd-dev - libnghttp2-dev - libjansson-dev - libpcre2-dev - libldap2-dev - ldap-utils - gdb env: global: - MFLAGS=-j2 - CFLAGS=-g # This defines two condition anchors which can be used in job # definitions to either: # condition_24x_only => run the job only for 2.4.x # condition_not_24x => run the job everywhere EXCEPT 2.4.x _cond1: &condition_24x_only (branch is present AND branch ~= /^2.4/) OR (tag is present AND tag ~= /^2.4/) _cond2: &condition_not_24x (branch is not present OR branch !~ /^2.4/) AND (tag is not present OR tag !~ /^2.4/) jobs: include: # ------------------------------------------------------------------------- - 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" # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- - if: *condition_not_24x 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 -O2' CC=gcc-8 SKIP_TESTING=1 addons: apt: packages: - gcc-8 - libtool-bin - libapr1-dev - libaprutil1-dev - perl-doc - liblua5.3-dev - libbrotli-dev - libcurl4-openssl-dev - libsystemd-dev - libnghttp2-dev - libjansson-dev - libpcre2-dev - libldap2-dev # ------------------------------------------------------------------------- - name: Linux Ubuntu, GCC 9 maintainer-mode w/-Werror env: CONFIG="--enable-mods-shared=reallyall --enable-maintainer-mode" NOTEST_CFLAGS='-Werror -O2' CC=gcc-9 SKIP_TESTING=1 addons: apt: sources: - sourceline: 'ppa:ubuntu-toolchain-r/test' packages: - gcc-9 - libtool-bin - libapr1-dev - libaprutil1-dev - perl-doc - liblua5.3-dev - libbrotli-dev - libcurl4-openssl-dev - libsystemd-dev - libnghttp2-dev - libjansson-dev - libpcre2-dev - libldap2-dev # ------------------------------------------------------------------------- - name: Linux Ubuntu, GCC 10 maintainer-mode w/-Werror env: CONFIG="--enable-mods-shared=reallyall --enable-maintainer-mode" NOTEST_CFLAGS='-Werror -O2' CC=gcc-10 SKIP_TESTING=1 addons: apt: sources: - sourceline: 'ppa:ubuntu-toolchain-r/test' packages: - gcc-10 - libtool-bin - libapr1-dev - libaprutil1-dev - perl-doc - liblua5.3-dev - libbrotli-dev - libcurl4-openssl-dev - libsystemd-dev - libnghttp2-dev - libjansson-dev - libpcre2-dev - libldap2-dev # ------------------------------------------------------------------------- - if: *condition_not_24x name: Linux Ubuntu, APR trunk env: APR_VERSION=trunk APR_CONFIG="--with-crypto" CONFIG="--enable-mods-shared=reallyall" # ------------------------------------------------------------------------- - if: *condition_24x_only 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 --with-ldap" # ------------------------------------------------------------------------- - name: Linux Ubuntu, APR trunk, minimal module set, OpenSSL 3.x if: *condition_not_24x env: APR_VERSION=trunk APR_CONFIG="--without-pgsql --without-mysql --without-odbc --with-crypto" CONFIG="--enable-mods-shared=ssl --with-mpm=event" TEST_SSL=1 TEST_OPENSSL3=3.0.7 # ------------------------------------------------------------------------- - name: Linux Ubuntu, APR trunk, minimal module set, OpenSSL 3.x -Werror if: *condition_not_24x env: APR_VERSION=trunk APR_CONFIG="--without-pgsql --without-mysql --without-odbc --with-crypto" CONFIG="--enable-mods-shared=ssl --enable-maintainer-mode --with-mpm=event" TEST_OPENSSL3=3.0.7 SKIP_TESTING=1 NOTEST_CFLAGS="-Werror -Wno-deprecated-declarations" # ------------------------------------------------------------------------- - if: *condition_24x_only name: Linux Ubuntu, APR 1.7, minimal module set, OpenSSL 3.x env: APR_VERSION=1.7.0 APU_VERSION=1.6.1 APU_CONFIG="--without-pgsql --without-mysql --without-odbc --with-crypto" CONFIG="--enable-mods-shared=ssl --with-mpm=event" TEST_SSL=1 TEST_OPENSSL3=3.0.7 # ------------------------------------------------------------------------- - if: *condition_24x_only 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: *condition_24x_only 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" allow_failures: # Non-x86 are sometimes flaky: - arch: s390x env: CONFIG="--enable-mods-shared=reallyall" - arch: arm64 env: CONFIG="--enable-mods-shared=reallyall" - arch: ppc64le env: CONFIG="--enable-mods-shared=reallyall" before_install: before_script: - ./test/travis_before_${TRAVIS_OS_NAME}.sh script: - ./test/travis_run_${TRAVIS_OS_NAME}.sh # Send notifications by default to IRC and dev@, for everything but # forks, otherwise any build from a fork will spam the list with CI # results. notifications: irc: if: fork = false channels: - "irc.libera.chat#httpd-dev" email: if: fork = false recipients: - dev@httpd.apache.org