| 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 |
| |
| # 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.x) OR (tag is present AND tag ~= /^2.4/) |
| _cond2: &condition_not_24x (branch is not present OR branch != 2.4.x) AND (tag is not present OR tag !~ /^2.4/) |
| |
| jobs: |
| include: |
| - name: Linux Ubuntu, Default module set |
| # ------------------------------------------------------------------------- |
| - name: Empty APLOGNO() test |
| env: SKIP_TESTING=1 TEST_LOGNO=1 |
| # ------------------------------------------------------------------------- |
| - 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 i386 Ubuntu, Shared MPMs, most modules, maintainer-mode w/-Werror |
| env: CONFIG="--enable-mods-shared=reallyall --disable-xml2enc --disable-proxy-html --enable-mpms-shared=all --enable-maintainer-mode" |
| PKG_CONFIG_PATH="/usr/lib/i386-linux-gnu/pkgconfig" |
| NOTEST_CFLAGS="-Werror" |
| CC="gcc -m32" |
| APR_VERSION=1.7.0 |
| APU_VERSION=1.6.1 APU_CONFIG="--with-crypto --with-ldap" |
| addons: |
| apt: |
| sources: |
| - sourceline: 'deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe' |
| packages: |
| - cpanminus |
| - libc6-dev-i386 |
| - gcc-multilib |
| - libexpat1-dev:i386 |
| - libssl-dev:i386 |
| - lib32z1-dev |
| - libbrotli-dev:i386 |
| - libpcre2-dev:i386 |
| - libldap2-dev:i386 |
| - libtool-bin |
| - perl-doc |
| - libapr1-dev |
| - libbrotli-dev:i386 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, Default, all-modules + install |
| env: CONFIG="--enable-mods-shared=reallyall" |
| TEST_INSTALL=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, Default, all-static modules |
| env: CONFIG="--enable-mods-static=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" |
| CLEAR_CACHE=1 |
| # ------------------------------------------------------------------------- |
| - 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 -O2' CC=gcc-7 |
| SKIP_TESTING=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, Event MPM, all-modules, mod_cgid only |
| env: CONFIG="--enable-mods-shared=reallyall --with-mpm=event --disable-cgi" |
| # ------------------------------------------------------------------------- |
| - if: *condition_not_24x |
| name: Linux Ubuntu, Event MPM, all-modules, mod_cgid fdpassing |
| env: CONFIG="--enable-mods-shared=reallyall --with-mpm=event --disable-cgi --enable-cgid-fdpassing" |
| # ------------------------------------------------------------------------- |
| - 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 |
| # ------------------------------------------------------------------------- |
| # MFLAGS= works around https://bz.apache.org/bugzilla/show_bug.cgi?id=63942 |
| - if: *condition_not_24x |
| 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: *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 Focal, all-modules, system APR/APR-util |
| os: linux |
| dist: focal |
| env: CONFIG="--enable-mods-shared=reallyall" |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu Focal, all-modules, APR 1.7.0, APR-util 1.6.1 |
| dist: focal |
| 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 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 --with-ldap" |
| # ------------------------------------------------------------------------- |
| - 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 --with-ldap" |
| CLEAR_CACHE=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, pool-debug |
| env: APR_VERSION=1.7.x APR_CONFIG="--enable-pool-debug" |
| APU_VERSION=1.7.x APU_CONFIG="--with-crypto --with-ldap" |
| CONFIG="--enable-mods-shared=reallyall" |
| TEST_MALLOC=1 |
| CLEAR_CACHE=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, Shared MPMs (event), pool-debug, SSL/TLS variants |
| env: APR_VERSION=1.7.x APR_CONFIG="--enable-pool-debug" |
| APU_VERSION=1.7.x APU_CONFIG="--with-crypto --with-ldap" |
| CONFIG="--enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=event" |
| TEST_MALLOC=1 TEST_SSL=1 |
| CLEAR_CACHE=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, Shared MPMs (worker), pool-debug, SSL/TLS variants |
| env: APR_VERSION=1.7.x APR_CONFIG="--enable-pool-debug" |
| APU_VERSION=1.7.x APU_CONFIG="--with-crypto --with-ldap" |
| CONFIG="--enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=worker" |
| TEST_MALLOC=1 TEST_SSL=1 |
| CLEAR_CACHE=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, Shared MPMs (prefork), pool-debug, SSL/TLS variants |
| env: APR_VERSION=1.7.x APR_CONFIG="--enable-pool-debug" |
| APU_VERSION=1.7.x APU_CONFIG="--with-crypto --with-ldap" |
| CONFIG="--enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=prefork" |
| TEST_MALLOC=1 TEST_SSL=1 |
| CLEAR_CACHE=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, APR 1.7.0, APR-util 1.6.1, LDAP |
| env: APR_VERSION=1.7.0 |
| APU_VERSION=1.6.1 APU_CONFIG="--with-crypto --with-ldap" |
| CONFIG="--enable-mods-shared=reallyall" |
| TEST_MALLOC=1 TEST_LDAP=1 TEST_ARGS="-defines LDAP" |
| TESTS="t/modules/" |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu, litmus WebDAV tests |
| env: CONFIG="--enable-dav --enable-dav-fs" |
| LITMUS=1 TESTS="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 |
| - liblua5.3-dev |
| - libbrotli-dev |
| - libcurl4-openssl-dev |
| - libsystemd-dev |
| - libnghttp2-dev |
| - libjansson-dev |
| - libpcre2-dev |
| - litmus |
| # ------------------------------------------------------------------------- |
| - 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" |
| # ------------------------------------------------------------------------- |
| - if: *condition_not_24x |
| name: Linux Ubuntu Focal, UBSan |
| dist: focal |
| env: NOTEST_CFLAGS="-fsanitize=undefined -fno-sanitize-recover=undefined" NOTEST_LIBS=-lubsan |
| CONFIG="--enable-mods-shared=reallyall --disable-http2" |
| TEST_UBSAN=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu Focal, ASan |
| dist: focal |
| env: NOTEST_CFLAGS="-ggdb -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer" |
| APR_VERSION=1.7.x |
| APU_VERSION=1.7.x APU_CONFIG="--with-crypto --with-ldap" |
| CONFIG="--enable-mods-shared=reallyall" |
| TEST_ASAN=1 |
| CLEAR_CACHE=1 |
| # ------------------------------------------------------------------------- |
| - name: Linux Ubuntu Focal, ASan, pool-debug |
| dist: focal |
| env: NOTEST_CFLAGS="-ggdb -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer" |
| APR_VERSION=1.7.x APR_CONFIG="--enable-pool-debug" |
| APU_VERSION=1.7.x APU_CONFIG="--with-crypto --with-ldap" |
| CONFIG="--enable-mods-shared=reallyall" |
| TEST_ASAN=1 |
| CLEAR_CACHE=1 |
| allow_failures: |
| # Intermittent failures: |
| - env: CONFIG="--enable-mods-shared=reallyall --with-mpm=worker" |
| # Currently broken: |
| - env: CONFIG="--enable-mods-shared=reallyall --with-mpm=event --disable-cgi --enable-cgid-fdpassing" |
| # 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" |
| |
| # CPAN modules are to be used with the system Perl and always with |
| # CC=gcc, e.g. for the CC="gcc -m32" case the builds are not correct |
| # otherwise. |
| before_install: |
| - if [ "$TRAVIS_OS_NAME" = "linux" -a ! -v SKIP_TESTING ]; then |
| if [ -v CLEAR_CACHE ]; then rm -rf ~/perl5; fi; |
| cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib); |
| CC=gcc cpanm --notest Net::SSL LWP::Protocol::https ExtUtils::Embed Test::More AnyEvent DateTime HTTP::DAV Protocol::HTTP2::Client FCGI AnyEvent::WebSocket::Client Apache::Test; |
| fi |
| |
| 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: |
| - "chat.freenode.net#httpd-dev" |
| email: |
| if: fork = false |
| recipients: |
| - dev@httpd.apache.org |