build+ci: support CentOS Stream 9 and macOS/arm64
This commit also syncs the CI config and scripts with ndn-cxx
Change-Id: Ie46b1d4b299bc95b03aa05d48efe366e1c72d54d
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index a287116..12b5de3 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -1,45 +1,44 @@
#!/usr/bin/env bash
-set -ex
+set -eo pipefail
-if has OSX $NODE_LABELS; then
- FORMULAE=(boost openssl pkg-config)
- if [[ $JOB_NAME == *"Docs" ]]; then
+APT_PKGS=(build-essential pkg-config python3-minimal
+ libboost-all-dev libssl-dev libsqlite3-dev)
+FORMULAE=(boost openssl pkg-config)
+PIP_PKGS=()
+case $JOB_NAME in
+ *code-coverage)
+ APT_PKGS+=(lcov python3-pip)
+ PIP_PKGS+=('gcovr~=5.2')
+ ;;
+ *Docs)
+ APT_PKGS+=(doxygen graphviz python3-pip)
FORMULAE+=(doxygen graphviz)
- fi
+ PIP_PKGS+=(sphinx sphinxcontrib-doxylink)
+ ;;
+esac
+set -x
+
+if [[ $ID == macos ]]; then
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"
- done
- # Ensure /usr/local/opt/openssl exists
- brew reinstall openssl
- else
- brew update
- brew upgrade
- brew install "${FORMULAE[@]}"
- brew cleanup
+ export HOMEBREW_NO_INSTALL_UPGRADE=1
+ fi
+ brew update
+ brew install --formula "${FORMULAE[@]}"
+
+ if (( ${#PIP_PKGS[@]} )); then
+ pip3 install --upgrade --upgrade-strategy=eager "${PIP_PKGS[@]}"
fi
- if [[ $JOB_NAME == *"Docs" ]]; then
- pip3 install --upgrade --upgrade-strategy=eager sphinx sphinxcontrib-doxylink
- fi
-
-elif has Ubuntu $NODE_LABELS; then
+elif [[ $ID_LIKE == *debian* ]]; then
sudo apt-get -qq update
- sudo apt-get -qy install build-essential pkg-config python3-minimal \
- libboost-all-dev libssl-dev libsqlite3-dev
+ sudo apt-get -qy install "${APT_PKGS[@]}"
- case $JOB_NAME in
- *code-coverage)
- sudo apt-get -qy install lcov python3-pip
- pip3 install --user --upgrade --upgrade-strategy=eager 'gcovr~=5.1'
- ;;
- *Docs)
- sudo apt-get -qy install doxygen graphviz python3-pip
- pip3 install --user --upgrade --upgrade-strategy=eager sphinx sphinxcontrib-doxylink
- ;;
- esac
+ if (( ${#PIP_PKGS[@]} )); then
+ pip3 install --user --upgrade --upgrade-strategy=eager "${PIP_PKGS[@]}"
+ fi
+
+elif [[ $ID_LIKE == *fedora* ]]; then
+ sudo dnf -y install gcc-c++ libasan pkgconf-pkg-config python3 \
+ boost-devel openssl-devel sqlite-devel
fi