playwright/browser_patches/tools/check_cdn.sh
Andrey Lushnikov b1b6d3f531
devops: add signature to BUILD_NUMBER to force rebaseline (#2810)
Currently, it might happen that two different patches clash for the
same build number for the browsers. In this case, authors might
not even know that they need to rebaseline.

This patch starts adding a second line to `BUILD_NUMBER` files - the
signature and date of the `BUILD_NUMBER` change. These are guaranteed
to clash, so it should not be possible to land patches without
re-baselining them.
2020-07-02 12:09:27 -07:00

115 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
set -e
set +x
if [[ ($1 == '--help') || ($1 == '-h') ]]; then
echo "usage: $(basename $0) [firefox|webkit] [--full-history] [--has-all-builds]"
echo
echo "List CDN status for browser"
echo
exit 0
fi
if [[ $# == 0 ]]; then
echo "missing browser: 'firefox' or 'webkit'"
echo "try './$(basename $0) --help' for more information"
exit 1
fi
trap "cd $(pwd -P)" EXIT
cd "$(dirname "$0")"
HOST="https://playwright2.blob.core.windows.net/builds"
FFOX_REVISION=$(head -1 ../firefox/BUILD_NUMBER)
FFOX_ARCHIVES=(
"$HOST/firefox/%s/firefox-mac.zip"
"$HOST/firefox/%s/firefox-linux.zip"
"$HOST/firefox/%s/firefox-win32.zip"
"$HOST/firefox/%s/firefox-win64.zip"
)
FFOX_ALIASES=(
"FF-MAC"
"FF-LINUX"
"FF-WIN32"
"FF-WIN64"
)
WK_REVISION=$(head -1 ../webkit/BUILD_NUMBER)
WK_ARCHIVES=(
"$HOST/webkit/%s/minibrowser-gtk.zip"
"$HOST/webkit/%s/minibrowser-wpe.zip"
"$HOST/webkit/%s/minibrowser-gtk-wpe.zip"
"$HOST/webkit/%s/minibrowser-mac-10.14.zip"
"$HOST/webkit/%s/minibrowser-mac-10.15.zip"
"$HOST/webkit/%s/minibrowser-win64.zip"
)
WK_ALIASES=(
"WK-GTK"
"WK-WPE"
"WK-GTK+WPE"
"WK-MAC-10.14"
"WK-MAC-10.15"
"WK-WIN64"
)
COLUMN="%-15s"
# COLORS
RED=$'\e[1;31m'
GRN=$'\e[1;32m'
YEL=$'\e[1;33m'
END=$'\e[0m'
REVISION=""
ARCHIVES=""
ALIASES=""
if [[ ("$1" == "firefox") || ("$1" == "firefox/") ]]; then
REVISION=$FFOX_REVISION
ARCHIVES=("${FFOX_ARCHIVES[@]}")
ALIASES=("${FFOX_ALIASES[@]}")
elif [[ ("$1" == "webkit") || ("$1" == "webkit/") ]]; then
REVISION=$WK_REVISION
ARCHIVES=("${WK_ARCHIVES[@]}")
ALIASES=("${WK_ALIASES[@]}")
else
echo ERROR: unknown browser - "$1"
exit 1
fi
if [[ $* == *--has-all-builds ]]; then
for i in "${ARCHIVES[@]}"; do
URL=$(printf $i $REVISION)
if ! [[ $(curl -s -L -I $URL | head -1 | cut -f2 -d' ') == 200 ]]; then
exit 1
fi
done;
exit 0
fi
STOP_REVISION=$((REVISION - 3))
if [[ $* == *--full-history* ]]; then
STOP_REVISION=0
fi
printf "%7s" ""
for i in "${ALIASES[@]}"; do
printf $COLUMN $i
done
printf "\n"
while (( REVISION > $STOP_REVISION )); do
printf "%-7s" ${REVISION}
for i in "${ARCHIVES[@]}"; do
URL=$(printf $i $REVISION)
if [[ $(curl -s -L -I $URL | head -1 | cut -f2 -d' ') == 200 ]]; then
printf ${GRN}$COLUMN${END} "YES"
else
printf ${RED}$COLUMN${END} "NO"
fi
done;
echo
REVISION=$((REVISION - 1 ))
if [[ $REVISION == "999" ]]; then
REVISION=2
fi
done;