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 6fa581b..7e19491 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 90f7bb4..00b9a5d 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -3,16 +3,13 @@
 
 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 [[ $JOB_NAME == *"Docs" ]]; then
         FORMULAE+=(doxygen graphviz)
     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 fd1c0e4..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,116 +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 JOB_NAME=limited-build
-    export WAF_JOBS=2
-  - |
-    : Enabling workarounds
-    case "${TRAVIS_CPU_ARCH},${COMPILER}" in
-      arm64,g++*)
-        # Avoid exceeding the per-job time limit
-        export DISABLE_HEADERS_CHECK=yes
-        ;;
-      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
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index 64a4239..7c90deb 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -11,6 +11,7 @@
 -  Ubuntu 20.04 (amd64)
 -  Ubuntu 21.04 (amd64)
 -  macOS 10.15
+-  macOS 11 (Intel only)
 -  CentOS 8
 
 ndn-cxx is known to work on the following platforms, although they are not officially
@@ -24,7 +25,6 @@
 -  FreeBSD >= 11.3
 -  macOS 10.13
 -  macOS 10.14
--  macOS 11 (Intel only)
 
 Prerequisites
 -------------
