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 3d73928..f73079a 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..f76bf9d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,5 @@
 language: cpp
-dist: xenial
+dist: bionic
 env:
   global:
     - JOB_NAME=limited-build
@@ -23,8 +23,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 +38,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 +53,42 @@
       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} == linux ]]; then sudo sysctl -e -w net.ipv6.conf.all.disable_ipv6=0; 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
