blob: 09e5cec6437ea562804ac797f2a41ac6f0bfdc3d [file] [log] [blame]
Alexander Afanasyevb81cff92015-07-09 09:45:09 +08001#!/usr/bin/env bash
Davide Pesavento72517b52022-08-13 18:50:55 -04002set -eo pipefail
Alexander Afanasyevb81cff92015-07-09 09:45:09 +08003
Davide Pesaventoa1b15192024-02-09 19:27:34 -05004APT_PKGS=(
Davide Pesaventoe76d7b52024-04-09 16:54:01 -04005 dpkg-dev
6 g++
Davide Pesaventoa1b15192024-02-09 19:27:34 -05007 libboost-chrono-dev
8 libboost-date-time-dev
9 libboost-dev
Davide Pesaventoa1b15192024-02-09 19:27:34 -050010 libboost-log-dev
11 libboost-program-options-dev
12 libboost-stacktrace-dev
13 libboost-test-dev
14 libboost-thread-dev
15 libpcap-dev
16 libsqlite3-dev
17 libssl-dev
18 libsystemd-dev
Davide Pesaventoe11fa9a2025-03-18 02:42:03 -040019 pkgconf
Davide Pesaventoe76d7b52024-04-09 16:54:01 -040020 python3
Davide Pesaventoa1b15192024-02-09 19:27:34 -050021)
Davide Pesaventoe11fa9a2025-03-18 02:42:03 -040022DNF_PKGS=(
23 boost-devel
24 gcc-c++
25 libasan
26 libpcap-devel
27 lld
28 openssl-devel
29 pkgconf
30 python3
31 sqlite-devel
32 systemd-devel
33)
Davide Pesavento914eb282024-12-10 15:33:26 -050034FORMULAE=(boost openssl pkgconf)
Davide Pesavento72517b52022-08-13 18:50:55 -040035case $JOB_NAME in
36 *code-coverage)
Davide Pesavento11876aa2025-04-04 17:00:32 -040037 APT_PKGS+=(lcov libjson-xs-perl)
Davide Pesavento72517b52022-08-13 18:50:55 -040038 ;;
39 *Docs)
Davide Pesaventob9792dd2025-03-25 02:18:45 -040040 APT_PKGS+=(doxygen graphviz)
Davide Pesavento8f0028d2021-07-27 20:01:06 -040041 FORMULAE+=(doxygen graphviz)
Davide Pesavento72517b52022-08-13 18:50:55 -040042 ;;
43esac
Alexander Afanasyevb81cff92015-07-09 09:45:09 +080044
Davide Pesaventob9792dd2025-03-25 02:18:45 -040045install_uv() {
46 if [[ -z $GITHUB_ACTIONS && $ID_LIKE == *debian* ]]; then
47 sudo apt-get install -qy --no-install-recommends pipx
48 pipx upgrade uv || pipx install uv
49 fi
50}
51
Davide Pesavento72517b52022-08-13 18:50:55 -040052set -x
53
54if [[ $ID == macos ]]; then
Davide Pesaventob9792dd2025-03-25 02:18:45 -040055 export HOMEBREW_COLOR=1
Davide Pesaventoa1480a72024-07-28 00:24:25 -040056 export HOMEBREW_NO_ENV_HINTS=1
Davide Pesaventof28a0612021-09-29 23:13:32 -040057 if [[ -n $GITHUB_ACTIONS ]]; then
Davide Pesavento3bc8e192022-12-31 01:40:11 -050058 export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
Davide Pesavento72517b52022-08-13 18:50:55 -040059 fi
60 brew update
61 brew install --formula "${FORMULAE[@]}"
Davide Pesavento72517b52022-08-13 18:50:55 -040062elif [[ $ID_LIKE == *debian* ]]; then
Davide Pesaventoa1b15192024-02-09 19:27:34 -050063 sudo apt-get update -qq
64 sudo apt-get install -qy --no-install-recommends "${APT_PKGS[@]}"
Davide Pesavento72517b52022-08-13 18:50:55 -040065elif [[ $ID_LIKE == *fedora* ]]; then
Davide Pesaventoe11fa9a2025-03-18 02:42:03 -040066 sudo dnf install -y "${DNF_PKGS[@]}"
Md Ashiqur Rahman922330b2018-09-04 17:55:18 +000067fi
Davide Pesaventoa42efcb2022-11-15 02:43:16 -050068
Davide Pesaventob9792dd2025-03-25 02:18:45 -040069case $JOB_NAME in
70 *code-coverage)
71 install_uv
72 ;;
73 *Docs)
74 install_uv
75 export FORCE_COLOR=1
76 export UV_NO_MANAGED_PYTHON=1
77 uv tool install sphinx --upgrade --with-requirements docs/requirements.txt
78 ;;
79esac