diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 20f7cb4..e988485 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,7 +5,6 @@
       - 'docs/**'
       - '*.md'
       - '.mailmap'
-      - '.travis.yml'
   workflow_dispatch:
 
 permissions:
@@ -49,9 +48,14 @@
       matrix:
         xcode: ['11.3', '11.7', '12.4']
         os: [macos-10.15]
+        include:
+          - xcode: '12.5'
+            os: macos-11
+          - xcode: '13'
+            os: macos-11
     runs-on: ${{ matrix.os }}
     env:
-      NODE_LABELS: OSX OSX-10.15
+      NODE_LABELS: OSX
       WAF_JOBS: 3
     steps:
       - name: Set up Xcode
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 9f25475..f94c307 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -2,8 +2,8 @@
 on:
   push:
     paths-ignore:
+      - '*.md'
       - '.mailmap'
-      - '.travis.yml'
   workflow_dispatch:
 
 permissions:
@@ -14,7 +14,7 @@
     strategy:
       fail-fast: false
       matrix:
-        os: [macos-10.15, ubuntu-20.04]
+        os: [macos-11, ubuntu-20.04]
     runs-on: ${{ matrix.os }}
     env:
       JOB_NAME: Docs
@@ -25,8 +25,8 @@
       - name: Install dependencies
         run: |
           case ${RUNNER_OS} in
-            Linux) export NODE_LABELS="Linux Ubuntu Ubuntu-20.04" ;;
-            macOS) export NODE_LABELS="OSX OSX-10.15" ;;
+            Linux) export NODE_LABELS="Linux Ubuntu" ;;
+            macOS) export NODE_LABELS="OSX" ;;
           esac
           find .jenkins.d/ -type f -name '[1-9]*.sh' -exec chmod -x '{}' +
           ./.jenkins
diff --git a/.jenkins b/.jenkins
index 21cce49..da10d69 100755
--- a/.jenkins
+++ b/.jenkins
@@ -3,27 +3,18 @@
 source .jenkins.d/util.sh
 
 if has Linux $NODE_LABELS; then
-    export PATH="~/.local/bin${PATH:+:}${PATH}"
+    export PATH="${HOME}/.local/bin${PATH:+:}${PATH}"
 fi
 export CACHE_DIR=${CACHE_DIR:-/tmp}
 export WAF_JOBS=${WAF_JOBS:-1}
 [[ $JOB_NAME == *"code-coverage" ]] && export DISABLE_ASAN=yes
 
-nanos() {
-    # Cannot use date(1) because macOS does not support %N format specifier
-    python3 -c 'import time; print(int(time.time() * 1e9))'
-}
-
 for file in .jenkins.d/*; do
     [[ -f $file && -x $file ]] || continue
 
-    label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
     if [[ -n $GITHUB_ACTIONS ]]; then
+        label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
         echo "::group::${label}"
-    elif [[ -n $TRAVIS ]]; then
-        echo -ne "travis_fold:start:${label}\r"
-        echo -ne "travis_time:start:${label}\r"
-        start=$(nanos)
     fi
 
     echo "\$ $file"
@@ -31,9 +22,5 @@
 
     if [[ -n $GITHUB_ACTIONS ]]; then
         echo "::endgroup::"
-    elif [[ -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 304a19a..31b89ee 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -3,13 +3,10 @@
 
 if has OSX $NODE_LABELS; then
     FORMULAE=(boost openssl pkg-config)
-    if has OSX-10.13 $NODE_LABELS || has OSX-10.14 $NODE_LABELS; then
-        FORMULAE+=(python)
-    fi
 
-    if [[ -n $GITHUB_ACTIONS || -n $TRAVIS ]]; then
-        # GitHub Actions and Travis images come with a large number of
-        # pre-installed packages. Don't waste time upgrading all of them.
+    if [[ -n $GITHUB_ACTIONS ]]; then
+        # GitHub Actions runners have a large number of pre-installed
+        # Homebrew packages. Don't waste time upgrading all of them.
         brew list --versions "${FORMULAE[@]}" || brew update
         for FORMULA in "${FORMULAE[@]}"; do
             brew list --versions "$FORMULA" || brew install "$FORMULA"
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 1ab91c5..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,115 +0,0 @@
-version: ~> 1.0
-language: cpp
-os: linux
-dist: bionic
-
-arch:
-  - amd64
-  - arm64
-  - ppc64le
-  - s390x
-
-env:
-  - COMPILER=g++-7
-  - COMPILER=g++-9
-  - COMPILER=clang++-6.0
-  - COMPILER=clang++-9
-
-jobs:
-  include:
-    # Linux
-    - env: COMPILER=g++-5
-    - env: COMPILER=g++-6
-    - env: COMPILER=g++-8
-    - env: COMPILER=clang++-4.0
-    - env: COMPILER=clang++-5.0
-    - env: COMPILER=clang++-7
-    - env: COMPILER=clang++-8
-    - env: COMPILER=clang++-10
-    - env: COMPILER=clang++-11
-    - env: COMPILER=clang++-12
-
-    # macOS
-    - os: osx
-      osx_image: xcode9.4
-      env: # default compiler
-    - os: osx
-      osx_image: xcode10.1
-      env: # default compiler
-    - os: osx
-      osx_image: xcode10.3
-      env: # default compiler
-    - os: osx
-      osx_image: xcode11.3
-      env: # default compiler
-    - os: osx
-      osx_image: xcode11.6
-      env: # default compiler
-    - os: osx
-      osx_image: xcode12
-      env: # default compiler
-
-  allow_failures:
-    - env: COMPILER=g++-5
-    - env: COMPILER=g++-6
-    - env: COMPILER=clang++-4.0
-    - env: COMPILER=clang++-12
-
-  fast_finish: true
-
-before_install:
-  - |
-    : Adding apt repositories
-    case ${COMPILER} in
-      g++-9)
-        # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages
-        travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
-        travis_retry sudo apt-get -qq update
-        ;;
-      clang++-1?)
-        # https://apt.llvm.org/
-        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%-12} main"
-        travis_retry sudo apt-get -qq update
-        ;;
-    esac
-
-install:
-  - |
-    : Installing C++ compiler
-    if [[ -n ${COMPILER} ]]; then
-      travis_retry sudo apt-get -qy install ${COMPILER/clang++/clang}
-    fi
-
-before_script:
-  - |
-    : Setting environment variables
-    if [[ -n ${COMPILER} ]]; then
-      export CXX=${COMPILER}
-    fi
-    case ${TRAVIS_OS_NAME} in
-      linux)  export NODE_LABELS="Linux Ubuntu Ubuntu-18.04" ;;
-      osx)    export NODE_LABELS="OSX OSX-$(sw_vers -productVersion | cut -d . -f -2)" ;;
-    esac
-    export WAF_JOBS=2
-  - |
-    : Enabling workarounds
-    case "${TRAVIS_CPU_ARCH},${COMPILER}" in
-      arm64,g++*)
-        # Avoid exceeding the per-job time limit
-        export JOB_NAME=limited-build
-        ;;
-      ppc64le,g++-7)
-        # AddressSanitizer does not seem to be working
-        export DISABLE_ASAN=yes
-        ;;
-      *,clang++-8)
-        # https://bugs.llvm.org/show_bug.cgi?id=40808
-        export DISABLE_ASAN=yes
-        ;;
-    esac
-  - ${CXX:-c++} --version
-
-script:
-  - ./.jenkins
