mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-12 19:42:55 +01:00
Cache Google Chrome deb with generic packages rather than AWS
We currently cache Google Chrome deb files in AWS. Since GitLab 14.8 Generic Packages have become generally available. So in order to remove the dependency on AWS and to dogfood the feature, we are going to cache the Google Chrome deb files with GitLab https://docs.gitlab.com/ee/user/packages/generic_packages/
This commit is contained in:
parent
6bb7cc091f
commit
a9c5fa7b10
4 changed files with 37 additions and 30 deletions
|
|
@ -1,20 +1,15 @@
|
|||
#!/bin/bash
|
||||
# This script attempts to copy the latest version of the Google Chrome Debian
|
||||
# package into our own S3 bucket. Google yanks old versions regularly, making
|
||||
# it hard to keep up with all the new versions.
|
||||
# package into our own package registry. Google yanks old versions regularly,
|
||||
# making it hard to keep up with all the new versions.
|
||||
|
||||
set -e
|
||||
|
||||
if [[ -z $AWS_ACCESS_KEY_ID || -z $AWS_SECRET_ACCESS_KEY ]]; then
|
||||
echo "AWS credentials are not defined, skipping this step"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
CHROME_S3_BUCKET=${1:-gitlab-google-chrome-stable}
|
||||
PKG=google-chrome-stable
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get -y update
|
||||
apt-get -y install apt-utils curl awscli
|
||||
apt-get -y install apt-utils curl bash
|
||||
|
||||
curl -sS -L https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
|
||||
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list
|
||||
|
|
@ -25,17 +20,28 @@ apt-get -y -q update
|
|||
|
||||
echo "Checking for latest Chrome version in apt repository..."
|
||||
|
||||
LATEST_VERSION=$(apt-cache show google-chrome-stable | grep Version | sort | tail -1 | sed -e "s/Version: //")
|
||||
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="https://s3.amazonaws.com/gitlab-google-chrome-stable/${CHROME_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 -sL -I -w "%{http_code}\\n" "$CHROME_URL" -o /dev/null)
|
||||
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!"
|
||||
echo "Latest version $LATEST_VERSION is already cached!"
|
||||
else
|
||||
apt-get -d -y install google-chrome-stable
|
||||
echo "Transfering $CHROME_DEB to S3 cache"
|
||||
aws s3 cp /var/cache/apt/archives/$CHROME_DEB s3://$CHROME_S3_BUCKET
|
||||
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 --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
|
||||
--upload-file "./{$CHROME_DEB}" \
|
||||
"$CHROME_URL"
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue