85 lines
2.6 KiB
Bash
Executable File
85 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -u -e -o pipefail
|
|
|
|
# Setup environment
|
|
readonly thisDir=$(cd $(dirname $0); pwd)
|
|
source ${thisDir}/_travis-fold.sh
|
|
|
|
|
|
# This script basically follows the instructions to download an old version of Chromium: https://www.chromium.org/getting-involved/download-chromium
|
|
# 1) It retrieves the current stable version number from https://www.chromium.org/developers/calendar (via the https://omahaproxy.appspot.com/all file), e.g. 359700 for Chromium 48.
|
|
# 2) It checks the Travis cache for this specific version
|
|
# 3) If not available, it downloads and caches it, using the "decrement commit number" trick.
|
|
|
|
#Build version read from the OmahaProxy CSV Viewer at https://www.chromium.org/developers/calendar
|
|
#Let's use the following version of Chromium, and inform about availability of newer build from https://omahaproxy.appspot.com/all
|
|
#
|
|
# CHROMIUM_VERSION <<< this variable is now set via env.sh
|
|
|
|
PLATFORM="$(uname -s)"
|
|
case "$PLATFORM" in
|
|
(Darwin)
|
|
ARCHITECTURE=Mac
|
|
DIST_FILE=chrome-mac.zip
|
|
;;
|
|
(Linux)
|
|
ARCHITECTURE=Linux_x64
|
|
DIST_FILE=chrome-linux.zip
|
|
;;
|
|
(*)
|
|
echo Unsupported platform $PLATFORM. Exiting ... >&2
|
|
exit 3
|
|
;;
|
|
esac
|
|
|
|
TMP=$(curl -s "https://omahaproxy.appspot.com/all") || true
|
|
oldIFS="$IFS"
|
|
IFS='
|
|
'
|
|
IFS=${IFS:0:1}
|
|
lines=( $TMP )
|
|
IFS=','
|
|
for line in "${lines[@]}"
|
|
do
|
|
lineArray=($line);
|
|
if [ "${lineArray[0]}" = "linux" ] && [ "${lineArray[1]}" = "stable" ] ; then
|
|
LATEST_CHROMIUM_VERSION="${lineArray[7]}"
|
|
fi
|
|
done
|
|
IFS="$oldIFS"
|
|
|
|
CHROMIUM_DIR=$HOME/.chrome/chromium
|
|
CHROMIUM_BIN=$CHROMIUM_DIR/chrome-linux/chrome
|
|
CHROMIUM_VERSION_FILE=$CHROMIUM_DIR/VERSION
|
|
|
|
EXISTING_VERSION=""
|
|
if [[ -f $CHROMIUM_VERSION_FILE && -x $CHROMIUM_BIN ]]; then
|
|
EXISTING_VERSION=`cat $CHROMIUM_VERSION_FILE`
|
|
echo Found cached Chromium version: ${EXISTING_VERSION}
|
|
fi
|
|
|
|
if [[ "$EXISTING_VERSION" != "$CHROMIUM_VERSION" ]]; then
|
|
echo Downloading Chromium version: ${CHROMIUM_VERSION}
|
|
rm -fR $CHROMIUM_DIR
|
|
mkdir -p $CHROMIUM_DIR
|
|
|
|
NEXT=$CHROMIUM_VERSION
|
|
FILE="chrome-linux.zip"
|
|
STATUS=404
|
|
while [[ $STATUS == 404 && $NEXT -ge 0 ]]
|
|
do
|
|
echo Fetch Chromium version: ${NEXT}
|
|
STATUS=$(curl "https://storage.googleapis.com/chromium-browser-snapshots/${ARCHITECTURE}/${NEXT}/${DIST_FILE}" -s -w %{http_code} --create-dirs -o $FILE) || true
|
|
NEXT=$[$NEXT-1]
|
|
done
|
|
|
|
unzip $FILE -d $CHROMIUM_DIR
|
|
rm $FILE
|
|
echo $CHROMIUM_VERSION > $CHROMIUM_VERSION_FILE
|
|
fi
|
|
|
|
if [[ "$CHROMIUM_VERSION" != "$LATEST_CHROMIUM_VERSION" ]]; then
|
|
echo "New version of Chromium available. Update 'scripts/ci/env.sh' with build number: $LATEST_CHROMIUM_VERSION"
|
|
fi
|