summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux.yml70
-rw-r--r--.travis.yml129
-rw-r--r--test/README.ci13
-rwxr-xr-xtest/travis_before_linux.sh24
-rwxr-xr-xtest/travis_run_linux.sh1
5 files changed, 91 insertions, 146 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index 26e111c65f..e5340e964a 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -192,6 +192,65 @@ jobs:
APU_CONFIG="--with-crypto --with-ldap"
TEST_ASAN=1
CLEAR_CACHE=1
+ # -------------------------------------------------------------------------
+ ### TODO: if: *condition_not_24x
+ ### TODO: fails in tests.
+ # - name: HTTP/2 test suite
+ # config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=all
+ # pkgs: curl python3-pytest nghttp2-client python3-cryptography python3-requests
+ # env: |
+ # APR_VERSION=1.7.2
+ # APU_VERSION=1.6.1
+ # APU_CONFIG="--with-crypto"
+ # NO_TEST_FRAMEWORK=1
+ # TEST_INSTALL=1
+ # TEST_H2=1
+ # TEST_CORE=1
+ # TEST_PROXY=1
+ # -------------------------------------------------------------------------
+ ### TODO: if: *condition_not_24x
+ ### TODO: pebble install is broken.
+ # - name: ACME test suite
+ # config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=event
+ # pkgs: >-
+ # python3-pytest nghttp2-client python3-cryptography python3-requests python3-filelock
+ # golang-1.17 curl
+ # env: |
+ # APR_VERSION=1.7.2
+ # APU_VERSION=1.6.1
+ # APU_CONFIG="--with-crypto"
+ # GOROOT=/usr/lib/go-1.17
+ # NO_TEST_FRAMEWORK=1
+ # TEST_INSTALL=1
+ # TEST_MD=1
+ # -------------------------------------------------------------------------
+ ### TODO: if: *condition_not_24x
+ - name: MOD_TLS test suite
+ config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=event
+ pkgs: curl python3-pytest nghttp2-client python3-cryptography python3-requests cargo cbindgen
+ env: |
+ APR_VERSION=1.7.2
+ APU_VERSION=1.6.1
+ APU_CONFIG="--with-crypto"
+ NO_TEST_FRAMEWORK=1
+ TEST_INSTALL=1
+ TEST_MOD_TLS=1
+ # -------------------------------------------------------------------------
+ ### TODO if: *condition_not_24x
+ ### TODO: Fails because :i386 packages are not being found.
+ # - name: i386 Shared MPMs, most modules, maintainer-mode w/-Werror
+ # config: --enable-mods-shared=reallyall --disable-xml2enc --disable-proxy-html --enable-mpms-shared=all --enable-maintainer-mode
+ # pkgs: >-
+ # 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
+ # env: |
+ # 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"
runs-on: ubuntu-latest
env:
NOTEST_CFLAGS: ${{ matrix.notest-cflags }}
@@ -212,10 +271,17 @@ jobs:
- name: Cache APR build
uses: actions/cache@v3
env:
- cache-name: cache-apr
+ cache-name: cache-apru
with:
path: ~/root
- key: ${{runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('/home/runner/root/.key-apr') }}
+ key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('/home/runner/root/.key-*') }}
+ - name: Cache CPAN modules
+ uses: actions/cache@v3
+ env:
+ cache-name: cache-cpan
+ with:
+ path: ~/perl5
+ key: ${{ runner.os }}-cpan-${{ env.cache-name }}-${{ hashFiles('/home/runner/perl5/.key') }}
- name: Configure environment
run: ./test/travis_before_linux.sh
timeout-minutes: 15
diff --git a/.travis.yml b/.travis.yml
index ddaff5cb2f..5ccfacfca6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -56,33 +56,6 @@ jobs:
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
- # -------------------------------------------------------------------------
# -------------------------------------------------------------------------
# -------------------------------------------------------------------------
- if: *condition_not_24x
@@ -191,108 +164,6 @@ jobs:
CONFIG="--enable-mods-shared=ssl --with-mpm=event"
TEST_SSL=1 TEST_OPENSSL3=3.0.7
# -------------------------------------------------------------------------
- - if: *condition_not_24x
- name: Linux Ubuntu, MPMs [event, worker], core + proxy + HTTP/2 test suite
- dist: focal
- env: APR_VERSION=1.7.0
- APU_VERSION=1.6.1 APU_CONFIG="--with-crypto"
- CONFIG="--enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=all"
- NO_TEST_FRAMEWORK=1 TEST_INSTALL=1 TEST_H2=1 TEST_CORE=1 TEST_PROXY=1
- addons:
- apt:
- 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
- - curl
- - python3-pytest
- - nghttp2-client
- - python3-cryptography
- - python3-requests
- # -------------------------------------------------------------------------
- - if: *condition_not_24x
- name: Linux Ubuntu, event MPM, ACME test suite
- dist: focal
- env: APR_VERSION=1.7.0
- APU_VERSION=1.6.1 APU_CONFIG="--with-crypto"
- CONFIG="--enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=event"
- NO_TEST_FRAMEWORK=1 TEST_INSTALL=1 TEST_MD=1
- addons:
- apt:
- 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
- - curl
- - python3-pytest
- - nghttp2-client
- - python3-cryptography
- - python3-requests
- - golang-1.14
- # -------------------------------------------------------------------------
- - if: *condition_not_24x
- name: Linux Ubuntu, event MPM, MOD_TLS test suite
- dist: focal
- env: APR_VERSION=1.7.0
- APU_VERSION=1.6.1 APU_CONFIG="--with-crypto"
- CONFIG="--enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=event"
- NO_TEST_FRAMEWORK=1 TEST_INSTALL=1 TEST_MOD_TLS=1
- addons:
- apt:
- 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
- - curl
- - python3-pytest
- - nghttp2-client
- - python3-cryptography
- - python3-requests
- - cargo
- - cbindgen
- # -------------------------------------------------------------------------
- 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
diff --git a/test/README.ci b/test/README.ci
index eb0b119a7f..43600b00e6 100644
--- a/test/README.ci
+++ b/test/README.ci
@@ -46,7 +46,7 @@ The CI scripts use the following environment variables:
* CLEAR_CACHE - if set, the cached $HOME/root is removed before each build
-Caching
+Caching -- NOTE, BROKEN IN GITHUB ACTIONS --
-------
Perl modules installed in $HOME/perl5 are cached.
@@ -69,12 +69,19 @@ Travis to Github Actions Migration TODO
* better path filtering so e.g. CHANGES changes don't trigger CI
* support branch conditionals again (some tests are 2.4.x only, some trunk only)
-* make caching work properly for ~/root/apr*
-* cache ~/perl5 as well
+* make caching work properly for APR + CPAN modules
+ - this is using the wrong model at the moment
+ - the cache key needs to be based off (source code, job configuration)
+ - rather than done on the fly in test/travis_before_linux.sh
+ - pebble + Rustls builds should also be cached
* turn on failure notifications?
* test across different Ubuntu versions again
- and test against OpenSSL 1.x since we're now ONLY building against 3.x
* update the docs below for testing from PRs/feature branches
+* introduce some job ordering rather than having a flat/concurrent
+ set, if the default "./configure && make && test" works *then* start
+ jobs doing 200 different variations on ./configure --enable-XXX
+ i.e. stop burning CPU time for a typo which breaks every job
TODO list
---------
diff --git a/test/travis_before_linux.sh b/test/travis_before_linux.sh
index 0632d194a7..bc4d65942b 100755
--- a/test/travis_before_linux.sh
+++ b/test/travis_before_linux.sh
@@ -68,9 +68,9 @@ function install_apx() {
local revision=`svn info --show-item last-changed-revision ${url}`
- # Blow away the cached install root if the revision does not
- # match.
- test -f ${prefix}/.revision-is-${revision} || rm -rf ${prefix}
+ # Blow away the cached install root if the cached install is stale
+ # or doesn't match the expected configuration.
+ grep -q "${version} ${revision} ${config} CC=$CC" ${HOME}/root/.key-${name} || rm -rf ${prefix}
if test -d ${prefix}; then
return 0
@@ -84,8 +84,7 @@ function install_apx() {
make install
popd
- touch ${prefix}/.revision-is-${revision}
- echo ${version} ${revision} ${config} > ${HOME}/root/.key-${name}
+ echo ${version} ${revision} "${config}" "CC=${CC}" > ${HOME}/root/.key-${name}
}
# Allow to load $HOME/build/apache/httpd/.gdbinit
@@ -98,16 +97,19 @@ if ! test -v SKIP_TESTING; then
cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
+ pkgs="Net::SSL LWP::Protocol::https \
+ LWP::Protocol::AnyEvent::http ExtUtils::Embed Test::More \
+ AnyEvent DateTime HTTP::DAV FCGI \
+ AnyEvent::WebSocket::Client Apache::Test"
+
# 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.
- CC=gcc cpanm --notest Net::SSL LWP::Protocol::https \
- LWP::Protocol::AnyEvent::http \
- ExtUtils::Embed Test::More AnyEvent DateTime HTTP::DAV FCGI \
- AnyEvent::WebSocket::Client Apache::Test
+ CC=gcc cpanm --notest $pkgs
- ### Temporary: purge old svn checkout from the cache
- rm -rf $HOME/root/framework
+ # Set cache key.
+ echo $pkgs > ~/perl5/.key
+ unset pkgs
# Make a shallow clone of httpd-tests git repo.
git clone --depth=1 https://github.com/apache/httpd-tests.git test/perl-framework
diff --git a/test/travis_run_linux.sh b/test/travis_run_linux.sh
index 8aa1811b0b..7e4d855778 100755
--- a/test/travis_run_linux.sh
+++ b/test/travis_run_linux.sh
@@ -216,7 +216,6 @@ if ! test -v SKIP_TESTING; then
# imports crypto/ed25519: unrecognized import path "crypto/ed25519" (import path does not begin with hostname)
#
# but works on a docker ubuntu-focal image. ???
- export GOROOT=/usr/lib/go-1.14
export GOPATH=${PREFIX}/gocode
mkdir -p "${GOPATH}"
export PATH="${GOROOT}/bin:${GOPATH}/bin:${PATH}"