mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 10:02:56 +01:00
Cache chromium driver version
This commit is contained in:
parent
9d5972d125
commit
4ab75d3040
2 changed files with 66 additions and 65 deletions
|
|
@ -8,6 +8,41 @@ set -e
|
|||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
function save-package() {
|
||||
local PKG=$1
|
||||
local DEB=$2
|
||||
local LATEST_VERSION=$3
|
||||
local SOURCE_DEB=${4:-$DEB}
|
||||
|
||||
local URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PKG}/${LATEST_VERSION}/${DEB}"
|
||||
|
||||
echo "Checking if cache has ${DEB}"
|
||||
local FILE_CHECK=$(curl --silent --location --head --output /dev/null --write "%{http_code}\\n" "$URL")
|
||||
|
||||
if [ "$FILE_CHECK" -eq "200" ]; then
|
||||
echo "Latest version ${LATEST_VERSION} is already cached!"
|
||||
else
|
||||
echo "Downloading latest ${PKG} version (${LATEST_VERSION}) in apt repository..."
|
||||
cd /tmp
|
||||
apt-get download $PKG
|
||||
|
||||
if ! [ -f "${SOURCE_DEB}" ]; then
|
||||
echo "Downloaded file didn't have expected name: ${SOURCE_DEB}"
|
||||
ls
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$SOURCE_DEB" != "$DEB" ]; then
|
||||
mv "$SOURCE_DEB" "$DEB"
|
||||
fi
|
||||
|
||||
echo "Transferring $PKG to GitLab packages"
|
||||
curl --fail --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
|
||||
--upload-file "./{$DEB}" \
|
||||
"$URL"
|
||||
fi
|
||||
}
|
||||
|
||||
function cache-chrome() {
|
||||
PKG=google-chrome-stable
|
||||
|
||||
|
|
@ -22,71 +57,28 @@ function cache-chrome() {
|
|||
|
||||
LATEST_VERSION=$(apt-cache show $PKG | grep Version | sort | tail -1 | sed -e "s/Version: //")
|
||||
CHROME_DEB="google-chrome-stable_${LATEST_VERSION}_amd64.deb"
|
||||
CHROME_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PKG}/${LATEST_VERSION}/${CHROME_DEB}"
|
||||
|
||||
echo "Checking if cache has $CHROME_DEB"
|
||||
FILE_CHECK=$(curl --silent --location --head --output /dev/null --write "%{http_code}\\n" "$CHROME_URL")
|
||||
|
||||
if [ "$FILE_CHECK" -eq "200" ]; then
|
||||
echo "Latest version $LATEST_VERSION is already cached!"
|
||||
else
|
||||
echo "Downloading latest Chrome version ($LATEST_VERSION) in apt repository..."
|
||||
cd /tmp
|
||||
apt-get download $PKG
|
||||
|
||||
if ! [ -f "$CHROME_DEB" ]; then
|
||||
echo "Downloaded file didn't have expected name: $CHROME_DEB"
|
||||
ls
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Transferring $CHROME_DEB to GitLab packages"
|
||||
curl --fail --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
|
||||
--upload-file "./{$CHROME_DEB}" \
|
||||
"$CHROME_URL"
|
||||
fi
|
||||
save-package "$PKG" "$CHROME_DEB" "$LATEST_VERSION"
|
||||
}
|
||||
|
||||
function cache-chromium() {
|
||||
PKG=chromium
|
||||
PKG_DRIVER=chromium-driver
|
||||
|
||||
echo "Checking for latest Chromium version in apt repository..."
|
||||
|
||||
LATEST_VERSION=$(apt-cache show $PKG | grep Version | sort | tail -1 | sed -e "s/Version: //")
|
||||
VERSION_NUMBER=$(echo $LATEST_VERSION | sed -e "s/~deb.*//") # remove debian version part to have chrome and chromium compatible version numbers
|
||||
CHROMIUM_DEB="chromium_${VERSION_NUMBER}_arm64.deb"
|
||||
CHROMIUM_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PKG}/${VERSION_NUMBER}/${CHROMIUM_DEB}"
|
||||
CHROMIUM_DEB="${PKG}_${VERSION_NUMBER}_arm64.deb"
|
||||
CHROMIUM_DRIVER_DEB="${PKG_DRIVER}_${VERSION_NUMBER}_arm64.deb"
|
||||
|
||||
echo "Checking if cache has ${CHROMIUM_DEB}"
|
||||
FILE_CHECK=$(curl --silent --location --head --output /dev/null --write "%{http_code}\\n" "$CHROMIUM_URL")
|
||||
|
||||
if [ "$FILE_CHECK" -eq "200" ]; then
|
||||
echo "Latest version ${LATEST_VERSION} is already cached!"
|
||||
else
|
||||
echo "Downloading latest Chromium version (${LATEST_VERSION}) from apt repository..."
|
||||
cd /tmp
|
||||
apt-get download "$PKG"
|
||||
|
||||
DEB_FILE="chromium_${LATEST_VERSION}_arm64.deb"
|
||||
|
||||
if ! [ -f "$DEB_FILE" ]; then
|
||||
echo "Downloaded file didn't have expected name: ${DEB_FILE}"
|
||||
ls
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv "$DEB_FILE" "$CHROMIUM_DEB"
|
||||
|
||||
echo "Transferring ${CHROMIUM_DEB} to GitLab packages"
|
||||
curl --fail --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
|
||||
--upload-file "./{$CHROMIUM_DEB}" \
|
||||
"$CHROMIUM_URL"
|
||||
fi
|
||||
save-package "$PKG" "$CHROMIUM_DEB" "$VERSION_NUMBER" "${PKG}_${LATEST_VERSION}_arm64.deb"
|
||||
save-package "$PKG_DRIVER" "$CHROMIUM_DRIVER_DEB" "$VERSION_NUMBER" "${PKG_DRIVER}_${LATEST_VERSION}_arm64.deb"
|
||||
}
|
||||
|
||||
echo "Updating system utils"
|
||||
apt-get -y -qq update
|
||||
apt-get -y install apt-utils curl gnupg2 > /dev/null
|
||||
apt-get -y install apt-utils curl gnupg2 >/dev/null
|
||||
|
||||
if [ "$TARGETARCH" == "amd64" ]; then
|
||||
cache-chrome
|
||||
|
|
|
|||
|
|
@ -15,24 +15,33 @@ function build_debian() {
|
|||
|
||||
# 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/${PKG}"
|
||||
CHROME_DEB="${PKG}_${CHROME_VERSION}_${ARCH}.deb"
|
||||
CHROME_URL="${CHROME_DOWNLOAD_URL_BASE}/${CHROME_VERSION}/${CHROME_DEB}"
|
||||
DOWNLOAD_URL_BASE="https://gitlab.com/api/v4/projects/1075790/packages/generic/${PKG}"
|
||||
BROWSER_DEB="${PKG}_${CHROME_VERSION}_${ARCH}.deb"
|
||||
BROWSER_URL="${DOWNLOAD_URL_BASE}/${CHROME_VERSION}/${BROWSER_DEB}"
|
||||
|
||||
echo "Downloading deb file from Package registry: $CHROME_URL"
|
||||
curl --silent --show-error --fail -O $CHROME_URL
|
||||
dpkg -i ./$CHROME_DEB || true
|
||||
echo "Installing browser"
|
||||
curl --silent --show-error --fail -O "$BROWSER_URL"
|
||||
dpkg -i "./${BROWSER_DEB}" || true
|
||||
apt-get install -f -y
|
||||
rm -f $CHROME_DEB
|
||||
rm -f "$BROWSER_DEB"
|
||||
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install ChromeDriver
|
||||
echo "Installing webdriver"
|
||||
if [ "${ARCH}" == "amd64" ]; then
|
||||
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
|
||||
else
|
||||
DRIVER_DEB="${PKG}-driver_${CHROME_VERSION}_${ARCH}.deb"
|
||||
DRIVER_URL="${DOWNLOAD_URL_BASE}/${CHROME_VERSION}/${DRIVER_DEB}"
|
||||
|
||||
curl --silent --show-error --fail -O "$DRIVER_URL"
|
||||
dpkg -i "./${DRIVER_DEB}" || true
|
||||
apt-get install -f -y
|
||||
rm -f "$DRIVER_DEB"
|
||||
fi
|
||||
|
||||
apt-get autoremove -yq
|
||||
apt-get clean -yqq
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue