mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 18:12:55 +01:00
70 lines
2.5 KiB
Bash
Executable file
70 lines
2.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -xeuo pipefail
|
|
IFS=$'\n\t'
|
|
|
|
function build_debian() {
|
|
ARCH="${TARGETARCH:-amd64}"
|
|
|
|
if [[ "${ARCH}" == "arm64" ]]; then
|
|
echo "The arm64 does not have prebuilt chrome. Using chromium instead."
|
|
apt-get update -q -y
|
|
apt-get install -y chromium chromium-driver
|
|
apt-get autoremove -yq
|
|
apt-get clean -yqq
|
|
rm -rf /var/lib/apt/lists/*
|
|
exit 0
|
|
fi
|
|
|
|
CHROME_VERSION=${1:-99.0.4844.74-1}
|
|
# We hard code the URL rather than using $CI_API_V4_URL $CI_PROJECT_ID,
|
|
# because we would need to forward those variables
|
|
CHROME_DOWNLOAD_URL_BASE="https://gitlab.com/api/v4/projects/1075790/packages/generic/google-chrome-stable"
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
curl -sS -L https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
|
|
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >/etc/apt/sources.list.d/google.list
|
|
|
|
apt-get update -q -y
|
|
|
|
# Download from our package registry if we can't find the package in the apt repository
|
|
echo "Searching for $CHROME_VERSION in apt repository"
|
|
CHECK_VERSION=$(apt-cache show google-chrome-stable | grep Version | grep "$CHROME_VERSION") || true
|
|
|
|
apt-cache policy google-chrome-stable
|
|
|
|
if [[ -z $CHECK_VERSION ]]; then
|
|
CHROME_DEB="google-chrome-stable_${CHROME_VERSION}_${ARCH}.deb"
|
|
CHROME_URL="${CHROME_DOWNLOAD_URL_BASE}/${CHROME_VERSION}/${CHROME_DEB}"
|
|
echo "Downloading from our Package registry: $CHROME_URL"
|
|
curl --silent --show-error --fail -O $CHROME_URL
|
|
dpkg -i ./$CHROME_DEB || true
|
|
apt-get install -f -y
|
|
rm -f $CHROME_DEB
|
|
else
|
|
echo "Installing via apt-get"
|
|
apt-get install -y google-chrome-stable=$CHROME_VERSION
|
|
fi
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install ChromeDriver
|
|
CHROME_VERSION_BASE=$(echo $CHROME_VERSION | awk -F "." '{print $1 "." $2 "." $3}')
|
|
CHROME_DRIVER_VERSION=$(curl -q https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION_BASE)
|
|
wget -q https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip
|
|
unzip chromedriver_linux64.zip -d /usr/local/bin
|
|
rm -f chromedriver_linux64.zip
|
|
|
|
apt-get autoremove -yq
|
|
apt-get clean -yqq
|
|
rm -rf /var/lib/apt/lists/*
|
|
rm -rf /etc/apt/sources.list.d/google*.list
|
|
}
|
|
|
|
BUILD_OS=${BUILD_OS:-debian}
|
|
|
|
if [[ $BUILD_OS =~ debian ]]; then
|
|
build_debian "$@"
|
|
elif [[ $BUILD_OS =~ ubi ]]; then
|
|
build_ubi "$@"
|
|
fi
|