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