44 lines
990 B
Bash
Executable File
44 lines
990 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
missing=()
|
|
for command_name in cc curl git jq pkg-config xz; do
|
|
if ! command -v "${command_name}" >/dev/null 2>&1; then
|
|
missing+=("${command_name}")
|
|
fi
|
|
done
|
|
if command -v pkg-config >/dev/null 2>&1; then
|
|
for package_name in libssh2 openssl zlib; do
|
|
if ! pkg-config --exists "${package_name}"; then
|
|
missing+=("pkg-config:${package_name}")
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [ "${#missing[@]}" -eq 0 ]; then
|
|
echo "Linux build dependencies are already available"
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
printf 'missing Linux build dependencies: %s\n' "${missing[*]}" >&2
|
|
echo "run this CI job as root or bake the missing dependencies into the runner image" >&2
|
|
exit 1
|
|
fi
|
|
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
ca-certificates \
|
|
curl \
|
|
git \
|
|
jq \
|
|
libssh2-1-dev \
|
|
libssl-dev \
|
|
pkg-config \
|
|
xz-utils \
|
|
zlib1g-dev
|
|
rm -rf /var/lib/apt/lists/*
|