[CI] Skip apt-get when the required packages are already installed (#33757)
This commit is contained in:
@@ -134,22 +134,32 @@ cleanup_stale_shm() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
install_apt_packages() {
|
install_apt_packages() {
|
||||||
apt-get update || true
|
|
||||||
CI_APT_PACKAGES=(
|
CI_APT_PACKAGES=(
|
||||||
python3 python3-pip python3-venv python3-dev git libnuma-dev libssl-dev pkg-config
|
python3 python3-pip python3-venv python3-dev git libnuma-dev libssl-dev pkg-config
|
||||||
libibverbs-dev libibverbs1 ibverbs-providers ibverbs-utils
|
libibverbs-dev libibverbs1 ibverbs-providers ibverbs-utils
|
||||||
ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
|
ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
|
||||||
)
|
)
|
||||||
apt-get install -y --no-install-recommends "${CI_APT_PACKAGES[@]}" || {
|
|
||||||
echo "Warning: apt-get install failed, checking if required packages are available..."
|
# The images bake these in, so the usual run pays apt-get update's round
|
||||||
|
# trips to install nothing. Skipping it costs no currency either: apt-get
|
||||||
|
# install only ever considers the packages named above, and a passing run
|
||||||
|
# leaves 100+ others un-upgraded - the image is what pins these versions.
|
||||||
|
local pkg
|
||||||
|
local -a MISSING_APT_PACKAGES=()
|
||||||
for pkg in "${CI_APT_PACKAGES[@]}"; do
|
for pkg in "${CI_APT_PACKAGES[@]}"; do
|
||||||
if ! dpkg -l "$pkg" 2>/dev/null | grep -q "^ii"; then
|
dpkg -l "$pkg" 2>/dev/null | grep -q "^ii" || MISSING_APT_PACKAGES+=("$pkg")
|
||||||
echo "ERROR: Required package $pkg is not installed and apt-get failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
echo "All required packages are already installed, continuing..."
|
|
||||||
|
if [ ${#MISSING_APT_PACKAGES[@]} -eq 0 ]; then
|
||||||
|
echo "All required apt packages are already installed, skipping apt-get"
|
||||||
|
else
|
||||||
|
echo "Installing missing apt packages: ${MISSING_APT_PACKAGES[*]}"
|
||||||
|
apt-get update || true
|
||||||
|
apt-get install -y --no-install-recommends "${MISSING_APT_PACKAGES[@]}" || {
|
||||||
|
echo "ERROR: apt-get failed to install: ${MISSING_APT_PACKAGES[*]}"
|
||||||
|
exit 1
|
||||||
}
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
mark_step_done "${FUNCNAME[0]}"
|
mark_step_done "${FUNCNAME[0]}"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user