ci: use uv to install gcovr and sphinx

Change-Id: I560f2e32374e03be463c843823749de21bbe74f8
diff --git a/.jenkins.d/30-coverage.sh b/.jenkins.d/30-coverage.sh
index 4ee9510..740cc3b 100755
--- a/.jenkins.d/30-coverage.sh
+++ b/.jenkins.d/30-coverage.sh
@@ -1,32 +1,38 @@
 #!/usr/bin/env bash
-set -exo pipefail
+set -eo pipefail
 
-if [[ $JOB_NAME == *"code-coverage" ]]; then
-    # Generate an XML report (Cobertura format) and a detailed HTML report using gcovr
-    # Note: trailing slashes are important in the paths below. Do not remove them!
-    gcovr --object-directory build \
-          --filter ndn-cxx/ \
-          --exclude ndn-cxx/detail/nonstd/ \
-          --exclude-throw-branches \
-          --exclude-unreachable-branches \
-          --cobertura build/coverage.xml \
-          --html-details build/gcovr/ \
-          --print-summary
+[[ $JOB_NAME == *code-coverage ]] || exit 0
 
-    # Generate a detailed HTML report using lcov
-    lcov --quiet \
-         --capture \
-         --directory . \
-         --exclude "$PWD/ndn-cxx/detail/nonstd/*" \
-         --exclude "$PWD/tests/*" \
-         --no-external \
-         --rc lcov_branch_coverage=1 \
-         --output-file build/coverage.info
+export FORCE_COLOR=1
+export UV_NO_MANAGED_PYTHON=1
 
-    genhtml --branch-coverage \
-            --demangle-cpp \
-            --legend \
-            --output-directory build/lcov \
-            --title "ndn-cxx unit tests" \
-            build/coverage.info
-fi
+set -x
+
+# Generate an XML report (Cobertura format) and a detailed HTML report using gcovr
+# Note: trailing slashes are important in the paths below. Do not remove them!
+uvx gcovr@5.2 \
+    --object-directory build \
+    --filter ndn-cxx/ \
+    --exclude ndn-cxx/detail/nonstd/ \
+    --exclude-throw-branches \
+    --exclude-unreachable-branches \
+    --cobertura build/coverage.xml \
+    --html-details build/gcovr/ \
+    --print-summary
+
+# Generate a detailed HTML report using lcov
+lcov --quiet \
+     --capture \
+     --directory . \
+     --exclude "$PWD/ndn-cxx/detail/nonstd/*" \
+     --exclude "$PWD/tests/*" \
+     --no-external \
+     --rc lcov_branch_coverage=1 \
+     --output-file build/coverage.info
+
+genhtml --branch-coverage \
+        --demangle-cpp \
+        --legend \
+        --output-directory build/lcov \
+        --title "ndn-cxx unit tests" \
+        build/coverage.info