ci: replace Travis with GitHub Actions

Change-Id: I6316bc7872fe25644dceafb1e2e2119c9c6e5ac3
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index cd3eb76..95dfe37 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -3,13 +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)
+    if [[ $JOB_NAME == *"Docs" ]]; then
+        FORMULAE+=(doxygen graphviz)
     fi
 
-    if [[ -n $TRAVIS ]]; then
-        # Travis images come with a large number of pre-installed
-        # brew 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"
@@ -23,12 +23,23 @@
         brew cleanup
     fi
 
+    if [[ $JOB_NAME == *"Docs" ]]; then
+        pip3 install --upgrade --upgrade-strategy=eager sphinx sphinxcontrib-doxylink
+    fi
+
 elif has Ubuntu $NODE_LABELS; then
     sudo apt-get -qq update
     sudo apt-get -qy install build-essential pkg-config python3-minimal \
                              libboost-all-dev libssl-dev libsqlite3-dev
 
-    if [[ $JOB_NAME == *"code-coverage" ]]; then
-        sudo apt-get -qy install gcovr lcov
-    fi
+    case $JOB_NAME in
+        *code-coverage)
+            sudo apt-get -qy install lcov python3-pip
+            pip3 install --user --upgrade --upgrade-strategy=eager 'gcovr~=5.0'
+            ;;
+        *Docs)
+            sudo apt-get -qy install doxygen graphviz python3-pip
+            pip3 install --user --upgrade --upgrade-strategy=eager sphinx sphinxcontrib-doxylink
+            ;;
+    esac
 fi
diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
index b09f968..99eb066 100755
--- a/.jenkins.d/10-build.sh
+++ b/.jenkins.d/10-build.sh
@@ -28,7 +28,7 @@
 fi
 
 # Build in debug mode with tests
-./waf --color=yes configure --with-chronosync --debug --with-tests $ASAN $COVERAGE
+./waf --color=yes configure --debug --with-chronosync --with-tests $ASAN $COVERAGE
 ./waf --color=yes build -j$WAF_JOBS
 
 # (tests will be run against the debug version)
diff --git a/.jenkins.d/30-coverage.sh b/.jenkins.d/30-coverage.sh
index 56baf77..33238e2 100755
--- a/.jenkins.d/30-coverage.sh
+++ b/.jenkins.d/30-coverage.sh
@@ -2,22 +2,19 @@
 set -ex
 
 if [[ $JOB_NAME == *"code-coverage" ]]; then
+    # Generate a detailed HTML report using lcov
     lcov --quiet \
          --capture \
          --directory . \
+         --exclude "$PWD/tests/*" \
          --no-external \
          --rc lcov_branch_coverage=1 \
-         --output-file build/coverage-with-tests.info
-
-    lcov --quiet \
-         --remove build/coverage-with-tests.info "$PWD/tests/*" \
-         --rc lcov_branch_coverage=1 \
          --output-file build/coverage.info
 
     genhtml --branch-coverage \
             --demangle-cpp \
             --legend \
-            --output-directory build/coverage \
+            --output-directory build/lcov \
             --title "NLSR unit tests" \
             build/coverage.info
 fi