You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by jo...@apache.org on 2019/11/08 12:50:16 UTC

svn commit: r1869554 - in /httpd/httpd/branches/2.4.x: ./ .travis.yml test/README.travis test/travis_before_linux.sh test/travis_run_linux.sh

Author: jorton
Date: Fri Nov  8 12:50:16 2019
New Revision: 1869554

URL: http://svn.apache.org/viewvc?rev=1869554&view=rev
Log:
Merge r1869387, r1869441, r1869456, r1869459, r1869527, r1869533, r1869539, r1869540, r1869548, r1869550 from trunk:

Add a basic Travis config.


Pull in more -dev packages to get more modules building (including mod_md).
Test gcc 7 on bionic, xenial is the Travis default anyway.
Only add the toolchain PPA where really needed.


Update travis config

* Add 'if TRAVIS_OS_NAME' to before_install/before_script/script to allow multi-os testing.
* Add separation lines in matrix config (better visual impact).
* Add Linux to all the current job's name.
* Add tests for Worker mpm.



Move before/run scripts out of .travis.yml.

Reviewed by: elukey


Support 2.4.x builds, which lacks --with-test-suite support.
Build with --enable-load-all-modules only when the test suite is run.


Add Travis support for multiple APR/APR-util versions.
Add an APR build with --enable-pool-debug.


Build all modules when testing APR variations.

Build APR-util 1.6.x --with-crypto otherwise the "mod_crypto" build fails,
though this is a bug: https://travis-ci.org/apache/httpd/jobs/609166867


Add APR 1.4/APR-util 1.4 build, but only for 2.4.x.


Start sketching out some travis docs and check we can -> [skip ci]

Submitted by: jorton, elukey

Added:
    httpd/httpd/branches/2.4.x/.travis.yml
      - copied, changed from r1869387, httpd/httpd/trunk/.travis.yml
    httpd/httpd/branches/2.4.x/test/README.travis
      - copied unchanged from r1869550, httpd/httpd/trunk/test/README.travis
    httpd/httpd/branches/2.4.x/test/travis_before_linux.sh
      - copied, changed from r1869459, httpd/httpd/trunk/test/travis_before_linux.sh
    httpd/httpd/branches/2.4.x/test/travis_run_linux.sh
      - copied, changed from r1869459, httpd/httpd/trunk/test/travis_run_linux.sh
Modified:
    httpd/httpd/branches/2.4.x/   (props changed)

Propchange: httpd/httpd/branches/2.4.x/
------------------------------------------------------------------------------
  Merged /httpd/httpd/trunk:r1869387,1869441,1869456,1869459,1869527,1869533,1869539-1869540,1869548,1869550

Copied: httpd/httpd/branches/2.4.x/.travis.yml (from r1869387, httpd/httpd/trunk/.travis.yml)
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/.travis.yml?p2=httpd/httpd/branches/2.4.x/.travis.yml&p1=httpd/httpd/trunk/.travis.yml&r1=1869387&r2=1869554&rev=1869554&view=diff
==============================================================================
--- httpd/httpd/trunk/.travis.yml (original)
+++ httpd/httpd/branches/2.4.x/.travis.yml Fri Nov  8 12:50:16 2019
@@ -4,53 +4,94 @@ os:
 cache:
   directories:
     - /home/travis/perl5
+    - /home/travis/root
 addons:
   apt:
-    sources:
-      - ubuntu-toolchain-r-test
     packages:
-      - libtool
       - libtool-bin
       - libapr1-dev
       - libaprutil1-dev
       - perl-doc
       - lua5.3-dev
       - libbrotli-dev
+      - libcurl4-openssl-dev
+      - libsystemd-dev
       - libnghttp2-dev
-      - gcc-7
-      - gcc-8
+      - libjansson-dev
 
 matrix:
   include:
-    - name: Default module set
-    - name: Default, all-modules
-      env: CONFIG="--enable-mods-shared=reallyall --enable-load-all-modules"
-    - name: Prefork MPM, all-modules
-      env: CONFIG="--enable-mods-shared=reallyall --enable-load-all-modules --with-mpm=prefork"
-    - name: Xenial, all-modules
+    - name: Linux Ubuntu, Default module set
+    # -------------------------------------------------------------------------
+    - name: Linux Ubuntu, Default, all-modules
+      env: CONFIG="--enable-mods-shared=reallyall"
+    # -------------------------------------------------------------------------
+    - 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 Bionic, all-modules
       os: linux
-      dist: xenial
-      env: CONFIG="--enable-mods-shared=reallyall --enable-load-all-modules"
-    - name: GCC 7 maintainer-mode w/-Werror
-      env: CONFIG="--enable-mods-shared=reallyall --enable-load-all-modules --enable-maintainer-mode NOTEST_CFLAGS=-Werror CC=gcc-7"
+      dist: bionic
+      env: CONFIG="--enable-mods-shared=reallyall"
+    # -------------------------------------------------------------------------
+    - name: Linux Ubuntu Bionic, GCC 7 maintainer-mode w/-Werror
+      os: linux
+      dist: bionic
+      env: CONFIG="--enable-mods-shared=reallyall --enable-maintainer-mode NOTEST_CFLAGS=-Werror CC=gcc-7"
            SKIP_TESTING=1
-    - name: GCC 8 maintainer-mode w/-Werror
-      env: CONFIG="--enable-mods-shared=reallyall --enable-load-all-modules --enable-maintainer-mode NOTEST_CFLAGS=-Werror CC=gcc-8"
+    # -------------------------------------------------------------------------
+    - 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
+    # -------------------------------------------------------------------------
+    - 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.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, 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:
-  - 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
+  - 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:
-  - svn export -q https://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr
-  - test -v SKIP_TESTING || svn export -q https://svn.apache.org/repos/asf/httpd/test/framework/trunk test/perl-framework
+  - ./test/travis_before_${TRAVIS_OS_NAME}.sh
 
 script:
-  - ./buildconf
-  - test -v SKIP_TESTING || CONFIG="--with-test-suite=test/perl-framework $CONFIG"
-  - ./configure $CONFIG --with-apr=/usr --with-apr-util=/usr
-  - make $MAKEFLAGS -j2
-  - test -v SKIP_TESTING || make check
-
+  - ./test/travis_run_${TRAVIS_OS_NAME}.sh

Copied: httpd/httpd/branches/2.4.x/test/travis_before_linux.sh (from r1869459, httpd/httpd/trunk/test/travis_before_linux.sh)
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/test/travis_before_linux.sh?p2=httpd/httpd/branches/2.4.x/test/travis_before_linux.sh&p1=httpd/httpd/trunk/test/travis_before_linux.sh&r1=1869459&r2=1869554&rev=1869554&view=diff
==============================================================================
--- httpd/httpd/trunk/test/travis_before_linux.sh (original)
+++ httpd/httpd/branches/2.4.x/test/travis_before_linux.sh Fri Nov  8 12:50:16 2019
@@ -1,5 +1,39 @@
 #!/bin/bash -ex
-svn export -q https://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr
 if ! test -v SKIP_TESTING; then
    svn export -q https://svn.apache.org/repos/asf/httpd/test/framework/trunk test/perl-framework
 fi
+if test -v APR_VERSION; then
+    if ! test -d $HOME/root/apr-${APR_VERSION}; then
+        case $APR_VERSION in
+            trunk) url=https://svn.apache.org/repos/asf/apr/apr/trunk ;;
+            *) url=https://svn.apache.org/repos/asf/apr/apr/tags/${APR_VERSION} ;;
+        esac
+        svn export -q ${url} $HOME/build/apr-${APR_VERSION}
+        pushd $HOME/build/apr-${APR_VERSION}
+        if [ $APR_VERSION = 1.4.1 ]; then
+            # 1.4.1 doesn't build with current libtool
+            svn cat https://svn.apache.org/repos/asf/apr/apr/tags/1.5.1/buildconf > buildconf
+        fi
+        ./buildconf
+        ./configure ${APR_CONFIG} --prefix=$HOME/root/apr-${APR_VERSION}
+        make -j2
+        make install
+        popd
+        APU_CONFIG="$APU_CONFIG --with-apr=$HOME/root/apr-${APR_VERSION}"
+    fi
+fi
+if test -v APU_VERSION; then
+    if ! test -d $HOME/root/apu-${APU_VERSION}; then
+        case $APU_VERSION in
+            trunk) url=https://svn.apache.org/repos/asf/apr/apr-util/trunk ;;
+            *) url=https://svn.apache.org/repos/asf/apr/apr-util/tags/${APU_VERSION} ;;
+        esac
+        svn export -q ${url} $HOME/build/apu-${APU_VERSION}
+        pushd $HOME/build/apu-${APU_VERSION}
+        ./buildconf --with-apr=$HOME/build/apr-${APR_VERSION}
+        ./configure ${APU_CONFIG} --prefix=$HOME/root/apu-${APU_VERSION}
+        make -j2
+        make install
+        popd
+    fi
+fi

Copied: httpd/httpd/branches/2.4.x/test/travis_run_linux.sh (from r1869459, httpd/httpd/trunk/test/travis_run_linux.sh)
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/test/travis_run_linux.sh?p2=httpd/httpd/branches/2.4.x/test/travis_run_linux.sh&p1=httpd/httpd/trunk/test/travis_run_linux.sh&r1=1869459&r2=1869554&rev=1869554&view=diff
==============================================================================
--- httpd/httpd/trunk/test/travis_run_linux.sh (original)
+++ httpd/httpd/branches/2.4.x/test/travis_run_linux.sh Fri Nov  8 12:50:16 2019
@@ -1,6 +1,35 @@
 #!/bin/bash -ex
-./buildconf
-test -v SKIP_TESTING || CONFIG="--with-test-suite=test/perl-framework $CONFIG"
-./configure $CONFIG --with-apr=/usr --with-apr-util=/usr
+./buildconf --with-apr=/usr/bin/apr-1-config
+# For trunk, "make check" is sufficient to run the test suite.
+# For 2.4.x, the test suite must be run manually
+if test ! -v SKIP_TESTING; then
+    CONFIG="$CONFIG --enable-load-all-modules"
+    if grep -q ^check: Makefile.in; then
+        CONFIG="--with-test-suite=test/perl-framework $CONFIG"
+        WITH_TEST_SUITE=1
+    else
+        CONFIG="--prefix=$HOME/build/httpd-root $CONFIG"
+    fi
+fi
+if test -v APR_VERSION; then
+    CONFIG="$CONFIG --with-apr=$HOME/root/apr-${APR_VERSION}"
+else
+    CONFIG="$CONFIG --with-apr=/usr"
+fi
+if test -v APU_VERSION; then
+    CONFIG="$CONFIG --with-apr-util=$HOME/root/apu-${APU_VERSION}"
+else
+    CONFIG="$CONFIG --with-apr-util=/usr"
+fi
+./configure $CONFIG
 make $MAKEFLAGS -j2
-test -v SKIP_TESTING || make check
+if ! test -v SKIP_TESTING; then
+    if test -v WITH_TEST_SUITE; then
+        make check
+    else
+        make install
+        cd test/perl-framework
+        perl Makefile.PL -apxs $HOME/build/httpd-root/bin/apxs
+        make test
+    fi
+fi