blob: 95241e78825a9939814a747daf486f866949e392 [file]
#!/bin/bash
# This script expects to be invoked from the base fio directory.
set -eu
SCRIPT_DIR=$(dirname "$0")
# shellcheck disable=SC1091
. "${SCRIPT_DIR}/common.sh"
install_ubuntu() {
local pkgs
cat <<DPKGCFG | sudo tee /etc/dpkg/dpkg.cfg.d/dpkg-speedup > /dev/null
# Skip fsync
force-unsafe-io
# Don't install documentation
path-exclude=/usr/share/man/*
path-exclude=/usr/share/locale/*/LC_MESSAGES/*.mo
path-exclude=/usr/share/doc/*
DPKGCFG
# Packages available on i686 and x86_64
pkgs=(
libaio-dev
libcunit1-dev
libcurl4-openssl-dev
libfl-dev
libnuma-dev
libnfs-dev
valgrind
)
case "${CI_TARGET_ARCH}" in
"i686")
sudo dpkg --add-architecture i386
pkgs=("${pkgs[@]/%/:i386}")
pkgs+=(
gcc-multilib
pkg-config:i386
zlib1g-dev:i386
libc6:i386
libgcc-s1:i386
)
;;
"x86_64")
pkgs+=(
libglusterfs-dev
libgoogle-perftools-dev
libiscsi-dev
libnbd-dev
libpmem-dev
libpmem2-dev
libprotobuf-c-dev
librbd-dev
libtcmalloc-minimal4
nvidia-cuda-dev
libibverbs-dev
librdmacm-dev
)
echo "Removing libunwind-14-dev because of conflicts with libunwind-dev"
sudo apt remove -y libunwind-14-dev
;;
esac
# Architecture-independent packages and packages for which we don't
# care about the architecture.
pkgs+=(
python3-scipy
python3-sphinx
python3-statsmodels
)
echo "Updating APT..."
sudo apt-get -qq update
echo "Installing packages... ${pkgs[@]}"
sudo apt-get install -o APT::Immediate-Configure=false --no-install-recommends -qq -y "${pkgs[@]}"
if [ "${CI_TARGET_ARCH}" == "x86_64" ]; then
# install librpma from sources
ci/actions-install-librpma.sh
fi
}
install_linux() {
install_ubuntu
}
install_macos() {
# Assumes homebrew and python3 are already installed
#echo "Updating homebrew..."
#brew update >/dev/null 2>&1
echo "Installing packages..."
HOMEBREW_NO_AUTO_UPDATE=1 brew install cunit libnfs sphinx-doc
brew link sphinx-doc --force
pip3 install scipy six statsmodels
}
install_windows() {
pip3 install scipy six statsmodels sphinx
}
main() {
case "${CI_TARGET_BUILD}" in
android*)
echo "Installing Android NDK..."
wget --quiet https://dl.google.com/android/repository/android-ndk-r24-linux.zip
unzip -q android-ndk-r24-linux.zip
return 0
;;
esac
set_ci_target_os
install_function="install_${CI_TARGET_OS}"
${install_function}
echo "Python3 path: $(type -p python3 2>&1)"
echo "Python3 version: $(python3 -V 2>&1)"
}
main