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 07e2af0..eeda33a 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
@@ -27,8 +27,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 faf01be..8ac6896 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 fceafe4..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,115 +0,0 @@
-version: ~> 1.0
-language: cpp
-os: linux
-dist: bionic
-
-arch:
-  - amd64
-  #- arm64   # Too slow, exceeds time limit
-  #- ppc64le # Fails transport tests
-  #- s390x   # Fails transport tests
-
-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
-      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
-    if [[ ${TRAVIS_OS_NAME} == linux ]]; then
-      sudo sysctl -e -w net.ipv6.conf.all.disable_ipv6=0
-    fi
-  - ${CXX:-c++} --version
-
-script:
-  - ./.jenkins
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index a326ff3..ba4a2a9 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -9,18 +9,21 @@
 
 -  Ubuntu 18.04 (amd64, armhf, i386)
 -  Ubuntu 20.04 (amd64)
--  macOS 10.13
--  macOS 10.14
+-  Ubuntu 21.04 (amd64)
 -  macOS 10.15
+-  macOS 11 (Intel only)
 -  CentOS 8
 
 NFD is known to work on the following platforms, although they are not officially
 supported:
 
--  Debian 10 (Buster)
+-  Alpine >= 3.12
+-  Debian >= 10
 -  Fedora >= 29
 -  Gentoo Linux
--  Raspbian >= 2019-06-20 (Buster)
+-  Raspberry Pi OS (formerly Raspbian) >= 2019-06-20
+-  macOS 10.13
+-  macOS 10.14
 
 .. _Install NFD on Ubuntu Linux using the NDN PPA repository:
 
