Add an image for git v2.16 and Chrome v63

Also adds a caching mechanism for storing the latest version in an S3 bucket.
This commit is contained in:
Stan Hu 2018-02-27 12:39:08 -08:00
parent aec5d3edbd
commit 34ce2513c8
5 changed files with 80 additions and 11 deletions

41
scripts/cache-google-chrome Executable file
View file

@ -0,0 +1,41 @@
#!/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.
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}
export DEBIAN_FRONTEND=noninteractive
apt-get -y update
apt-get -y install apt-utils curl awscli
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
echo "Updating apt to get Google Chrome packages..."
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: //")
CHROME_DEB="google-chrome-stable_${LATEST_VERSION}_amd64.deb"
CHROME_URL="https://s3.amazonaws.com/gitlab-google-chrome-stable/${CHROME_DEB}"
echo "Checking if cache has $CHROME_DEB"
FILE_CHECK=$(curl -sL -w "%{http_code}\\n" "$CHROME_URL" -o /dev/null)
if [ "$FILE_CHECK" -eq "200" ]; then
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
fi

View file

@ -33,7 +33,7 @@ function print_chrome_args() {
60|60.0) CHROME_VERSION=60.0.3112.90-1 ;;
61|61.0) CHROME_VERSION=61.0.3163.100-1 ;;
62|62.0) CHROME_VERSION=62.0.3202.89-1 ;;
63|63.0) CHROME_VERSION=63.0.3239.108-1 ;;
63|63.0) CHROME_VERSION=63.0.3239.132-1 ;;
64|64.0) CHROME_VERSION=64.0.3282.186-1 ;;
*) echo "Unknown chrome version $1"; exit 1;
esac

View file

@ -9,8 +9,25 @@ export DEBIAN_FRONTEND=noninteractive
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
apt-get update -q
env DEBIAN_FRONTEND="noninteractive" apt-get install -y google-chrome-stable=$CHROME_VERSION
apt-get update -q -y
# Download from our local S3 bucket if we can't find the package in the repository
echo "Searching for $CHROME_VERSION in apt repository"
CHECK_VERSION=$(apt-cache show google-chrome-stable | grep Version | grep "$CHROME_VERSION") || true
if [[ -z $CHECK_VERSION ]]; then
CHROME_DEB="google-chrome-stable_${CHROME_VERSION}_amd64.deb"
CHROME_URL="https://s3.amazonaws.com/gitlab-google-chrome-stable/${CHROME_DEB}"
echo "Downloading $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