Commit | Line | Data |
---|---|---|
ce1b5612 SW |
1 | #!/bin/bash |
2 | # This script expects to be invoked from the base fio directory. | |
3 | set -eu | |
4 | ||
5 | SCRIPT_DIR=$(dirname "$0") | |
6 | # shellcheck disable=SC1091 | |
7 | . "${SCRIPT_DIR}/common.sh" | |
8 | ||
9 | install_ubuntu() { | |
10 | local pkgs | |
11 | ||
12 | cat <<DPKGCFG | sudo tee /etc/dpkg/dpkg.cfg.d/dpkg-speedup > /dev/null | |
13 | # Skip fsync | |
14 | force-unsafe-io | |
15 | # Don't install documentation | |
16 | path-exclude=/usr/share/man/* | |
17 | path-exclude=/usr/share/locale/*/LC_MESSAGES/*.mo | |
18 | path-exclude=/usr/share/doc/* | |
19 | DPKGCFG | |
20 | # Packages available on i686 and x86_64 | |
21 | pkgs=( | |
22 | libaio-dev | |
23 | libcunit1-dev | |
24 | libcurl4-openssl-dev | |
25 | libfl-dev | |
ce1b5612 | 26 | libnuma-dev |
dff32ddb | 27 | libnfs-dev |
ce1b5612 SW |
28 | valgrind |
29 | ) | |
30 | case "${CI_TARGET_ARCH}" in | |
31 | "i686") | |
32 | sudo dpkg --add-architecture i386 | |
33 | pkgs=("${pkgs[@]/%/:i386}") | |
34 | pkgs+=( | |
35 | gcc-multilib | |
36 | pkg-config:i386 | |
37 | zlib1g-dev:i386 | |
5cedafaf VF |
38 | libc6:i386 |
39 | libgcc-s1:i386 | |
ce1b5612 SW |
40 | ) |
41 | ;; | |
42 | "x86_64") | |
43 | pkgs+=( | |
44 | libglusterfs-dev | |
45 | libgoogle-perftools-dev | |
46 | libiscsi-dev | |
47 | libnbd-dev | |
48 | libpmem-dev | |
4e2bd713 | 49 | libpmem2-dev |
4e2bd713 | 50 | libprotobuf-c-dev |
ce1b5612 SW |
51 | librbd-dev |
52 | libtcmalloc-minimal4 | |
53 | nvidia-cuda-dev | |
b68ba328 VF |
54 | libibverbs-dev |
55 | librdmacm-dev | |
ce1b5612 | 56 | ) |
726a9585 VF |
57 | echo "Removing libunwind-14-dev because of conflicts with libunwind-dev" |
58 | sudo apt remove -y libunwind-14-dev | |
ce1b5612 SW |
59 | ;; |
60 | esac | |
61 | ||
62 | # Architecture-independent packages and packages for which we don't | |
63 | # care about the architecture. | |
64 | pkgs+=( | |
65 | python3-scipy | |
5c997f9c | 66 | python3-sphinx |
888dbd62 | 67 | python3-statsmodels |
ce1b5612 SW |
68 | ) |
69 | ||
70 | echo "Updating APT..." | |
71 | sudo apt-get -qq update | |
b68ba328 VF |
72 | echo "Installing packages... ${pkgs[@]}" |
73 | sudo apt-get install -o APT::Immediate-Configure=false --no-install-recommends -qq -y "${pkgs[@]}" | |
4e2bd713 LD |
74 | if [ "${CI_TARGET_ARCH}" == "x86_64" ]; then |
75 | # install librpma from sources | |
76 | ci/actions-install-librpma.sh | |
77 | fi | |
ce1b5612 SW |
78 | } |
79 | ||
80 | install_linux() { | |
81 | install_ubuntu | |
82 | } | |
83 | ||
84 | install_macos() { | |
85 | # Assumes homebrew and python3 are already installed | |
86 | #echo "Updating homebrew..." | |
87 | #brew update >/dev/null 2>&1 | |
88 | echo "Installing packages..." | |
c5d8ce3f | 89 | HOMEBREW_NO_AUTO_UPDATE=1 brew install cunit libnfs sphinx-doc pygments python-certifi |
02ee8a1b | 90 | brew link sphinx-doc --force |
888dbd62 | 91 | pip3 install scipy six statsmodels |
ce1b5612 SW |
92 | } |
93 | ||
89d08880 VF |
94 | install_windows() { |
95 | pip3 install scipy six statsmodels sphinx | |
96 | } | |
97 | ||
ce1b5612 | 98 | main() { |
9b3cc2dd BVA |
99 | case "${CI_TARGET_BUILD}" in |
100 | android*) | |
101 | echo "Installing Android NDK..." | |
102 | wget --quiet https://dl.google.com/android/repository/android-ndk-r24-linux.zip | |
103 | unzip -q android-ndk-r24-linux.zip | |
104 | return 0 | |
105 | ;; | |
106 | esac | |
787c02a6 | 107 | |
ce1b5612 SW |
108 | set_ci_target_os |
109 | ||
110 | install_function="install_${CI_TARGET_OS}" | |
111 | ${install_function} | |
112 | ||
113 | echo "Python3 path: $(type -p python3 2>&1)" | |
114 | echo "Python3 version: $(python3 -V 2>&1)" | |
115 | } | |
116 | ||
117 | main |