diff --git a/.jenkins b/.jenkins
index 674d751..78e1ca1 100755
--- a/.jenkins
+++ b/.jenkins
@@ -1,10 +1,27 @@
 #!/usr/bin/env bash
 set -e
 
-DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+nanos() {
+    # Cannot use date(1) because macOS does not support %N format specifier
+    python -c 'import time; print(int(time.time() * 1e9))'
+}
 
-for file in "$DIR"/.jenkins.d/*; do
+for file in .jenkins.d/*; do
     [[ -f $file && -x $file ]] || continue
-    echo "Run: $file"
+
+    if [[ -n $TRAVIS ]]; then
+        label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
+        echo -ne "travis_fold:start:${label}\r"
+        echo -ne "travis_time:start:${label}\r"
+        start=$(nanos)
+    fi
+
+    echo "\$ $file"
     "$file"
+
+    if [[ -n $TRAVIS ]]; then
+        finish=$(nanos)
+        echo -ne "travis_time:end:${label}:start=${start},finish=${finish},duration=$((finish-start)),event=${label}\r"
+        echo -ne "travis_fold:end:${label}\r"
+    fi
 done
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index 5b30418..660fad6 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -10,7 +10,7 @@
     FORMULAE=(boost openssl pkg-config)
     brew update
     if [[ -n $TRAVIS ]]; then
-        # travis images come with a large number of brew packages
+        # Travis images come with a large number of brew packages
         # pre-installed, don't waste time upgrading all of them
         for FORMULA in "${FORMULAE[@]}"; do
             brew outdated $FORMULA || brew upgrade $FORMULA
@@ -32,7 +32,7 @@
     fi
 fi
 
-if has CentOS $NODE_LABELS; then
+if has CentOS-7 $NODE_LABELS; then
     sudo yum -y install yum-utils pkgconfig \
                         openssl-devel libtranslit-icu \
                         python-devel sqlite-devel \
diff --git a/.travis.yml b/.travis.yml
index 7705ba7..3a459c5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,7 @@
 language: cpp
-dist: xenial
+dist: bionic
 env:
   global:
-    - JOB_NAME=limited-build
     - WAF_JOBS=2
 
 matrix:
@@ -23,8 +22,6 @@
     # Linux/clang
     # https://apt.llvm.org/
     - os: linux
-      env: COMPILER=clang++-3.8
-    - os: linux
       env: COMPILER=clang++-3.9
     - os: linux
       env: COMPILER=clang++-4.0
@@ -40,13 +37,12 @@
       env: COMPILER=clang++-8 DISABLE_ASAN=yes
     - os: linux
       env: COMPILER=clang++-9
+    - os: linux
+      env: COMPILER=clang++-10
 
     # macOS/clang
     # https://docs.travis-ci.com/user/reference/osx/#macos-version
     - os: osx
-      osx_image: xcode8.3
-      env: OSX_VERSION=10.12
-    - os: osx
       osx_image: xcode9.2
       env: OSX_VERSION=10.12
     - os: osx
@@ -56,40 +52,41 @@
       osx_image: xcode10.1
       env: OSX_VERSION=10.13
     - os: osx
-      osx_image: xcode10.2
+      osx_image: xcode10.3
       env: OSX_VERSION=10.14
     - os: osx
       osx_image: xcode11
       env: OSX_VERSION=10.14
 
   allow_failures:
-    - env: COMPILER=clang++-9
+    - env: COMPILER=clang++-10
 
   fast_finish: true
 
-install: |
+before_install: |
     case ${COMPILER} in
-      g++-5)
+      g++-[567]|clang++-[3456].*)
         ;;
       g++-*)
         travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
         travis_retry sudo apt-get -qq update
-        travis_retry sudo apt-get -qy install "${COMPILER}"
         ;;
       clang++-*)
-        CLANG_VERSION=${COMPILER/clang++}
-        if [[ ${CLANG_VERSION} != "-3."* ]]; then
-          travis_retry wget -nv -O - "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
-          travis_retry sudo add-apt-repository -y "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial${CLANG_VERSION/-9} main"
-        fi
+        LLVM_REPO=${COMPILER/clang++/llvm-toolchain-${TRAVIS_DIST}}
+        travis_retry wget -nv -O - "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
+        travis_retry sudo add-apt-repository -y "deb http://apt.llvm.org/${TRAVIS_DIST}/ ${LLVM_REPO%-10} main"
         travis_retry sudo apt-get -qq update
-        travis_retry sudo apt-get -qy install "clang${CLANG_VERSION}"
         ;;
     esac
 
+install:
+  - if [[ -n ${COMPILER} ]]; then travis_retry sudo apt-get -qy install "${COMPILER/clang++/clang}"; fi
+
 before_script:
-  - if [[ ${TRAVIS_OS_NAME} == linux ]]; then export NODE_LABELS="Linux Ubuntu Ubuntu-16.04"; fi
+  - if [[ ${TRAVIS_OS_NAME} == linux ]]; then export NODE_LABELS="Linux Ubuntu Ubuntu-18.04"; fi
   - if [[ ${TRAVIS_OS_NAME} == osx ]]; then export NODE_LABELS="OSX OSX-${OSX_VERSION}"; fi
+  # do not waste time upgrading useless packages
+  - if [[ ${TRAVIS_OS_NAME} == osx ]]; then brew pin cgal gdal numpy postgis sfcgal || true; fi
   - if [[ ${OSX_VERSION} == 10.12 ]]; then brew update; fi
   # workaround for https://github.com/Homebrew/homebrew-core/issues/26358
   - if [[ ${OSX_VERSION} == 10.12 ]]; then brew outdated python || brew upgrade python; fi
