blob: 455e1d861849aa4fddbd9885780c6897bc47a265 [file] [log] [blame]
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
APACHE_TEST_EXTRA_ARGS=-v
# -------------------------------------------------------------------------
- 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 (except cgid)
env: CONFIG="--enable-mods-shared=reallyall --with-mpm=prefork --disable-cgid"
# -------------------------------------------------------------------------
- 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, install + VPATH
os: linux
env: CONFIG="--enable-mods-shared=reallyall --enable-maintainer-mode"
NOTEST_CFLAGS='-Werror -O2' CC=gcc-7
TEST_VPATH=1 TEST_INSTALL=1 SKIP_TESTING=1
# -------------------------------------------------------------------------
- name: Linux Ubuntu, Event MPM, all-modules, mod_cgid only
env: CONFIG="--enable-mods-shared=reallyall --with-mpm=event --disable-cgi"
# -------------------------------------------------------------------------
- name: Linux Ubuntu, Event MPM, all-modules, no CMSG_DATA
env: CONFIG="--enable-mods-shared=reallyall --with-mpm=event ac_cv_have_decl_CMSG_DATA=no"
# -------------------------------------------------------------------------
- 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/"
# -------------------------------------------------------------------------
- if: *condition_not_24x
name: Linux Ubuntu, event, APR trunk thread debugging
env: APR_VERSION=trunk APR_CONFIG="--with-crypto --enable-thread-debug"
CONFIG="--enable-mods-shared=reallyall --with-mpm=event"
# -------------------------------------------------------------------------
- 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"
# -------------------------------------------------------------------------
- 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:
# 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