From cb77d33a42e20484ee89ade3e7c402bf83183232 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Thu, 23 Jul 2020 14:42:14 -0700 Subject: [PATCH] devops: add script for ubuntu 20.04 buildbot (#3123) This will start producing Ubuntu 20.04 webkit builds References #2745 --- .../buildbots/buildbot-ubuntu-20.04.sh | 68 +++++++++++++++++++ .../checkout_build_archive_upload.sh | 19 ++++++ 2 files changed, 87 insertions(+) create mode 100755 browser_patches/buildbots/buildbot-ubuntu-20.04.sh diff --git a/browser_patches/buildbots/buildbot-ubuntu-20.04.sh b/browser_patches/buildbots/buildbot-ubuntu-20.04.sh new file mode 100755 index 0000000000..fdb4b422fe --- /dev/null +++ b/browser_patches/buildbots/buildbot-ubuntu-20.04.sh @@ -0,0 +1,68 @@ +#!/bin/bash +set -e +set +x + +if [[ $(uname) != "Linux" ]]; then + echo "ERROR: this script is designed to be run on Linux. Can't run on $(uname)" + exit 1 +fi + +CURRENT_HOST_OS="$(bash -c 'source /etc/os-release && echo $NAME')" +CURRENT_HOST_OS_VERSION="$(bash -c 'source /etc/os-release && echo $VERSION_ID')" + +if [[ "$CURRENT_HOST_OS" != "Ubuntu" || "$CURRENT_HOST_OS_VERSION" != "20.04" ]]; then + echo "ERROR: this script is designed to be run on Ubuntu 20.04. Can't run on $CURRENT_HOST_OS $CURRENT_HOST_OS_VERSION" + exit 1 +fi + +if [[ ($1 == '--help') || ($1 == '-h') ]]; then + echo "usage: $(basename $0)" + echo + echo "Pull from upstream & run checkout_build_archive_upload.sh" + echo "in a safe way so that multiple instances of the script cannot be run" + echo + echo "This script is designed to be run as a cronjob" + exit 0 +fi + +if [[ (-z $AZ_ACCOUNT_KEY) || (-z $AZ_ACCOUNT_NAME) ]]; then + echo "ERROR: Either \$AZ_ACCOUNT_KEY or \$AZ_ACCOUNT_NAME environment variable is missing." + echo " 'Azure Account Name' and 'Azure Account Key' secrets that are required" + echo " to upload builds ot Azure CDN." + exit 1 +fi + +if ! command -v az >/dev/null; then + echo "ERROR: az is not found in PATH" + exit 1 +fi + +# Setup a LOCKDIR so that we don't run the same script multiple times. +LOCKDIR="/tmp/$(basename $0).lock" +if [[ -d ${LOCKDIR} ]]; then + echo "Already running (lockdir $LOCKDIR exists. Remove it manually if running)" + exit 0 +fi + +mkdir -p $LOCKDIR +# make sure the lockfile is removed when we exit and then claim it +trap "rm -rf ${LOCKDIR}; cd $(pwd -P); exit" INT TERM EXIT +cd "$(dirname "$0")" + +IS_FIRST_RUN_FILE="/tmp/pw-buildbot-first-run.txt"; +if ! [[ -f $IS_FIRST_RUN_FILE ]]; then + source ./send_telegram_message.sh + send_telegram_message '**Linux Buildbot Is Active**' +fi +touch "$IS_FIRST_RUN_FILE" + +# Check if git repo is dirty. +if [[ -n $(git status -s) ]]; then + echo "ERROR: dirty GIT state - commit everything and re-run the script." + exit 1 +fi + +git pull origin master +../checkout_build_archive_upload.sh webkit-gtk-ubuntu-20.04 >/tmp/$(basename $0)--webkit-gtk.log || true +../checkout_build_archive_upload.sh webkit-wpe-ubuntu-20.04 >/tmp/$(basename $0)--webkit-wpe.log || true +../checkout_build_archive_upload.sh webkit-gtk-wpe-ubuntu-20.04 >/tmp/$(basename $0)--webkit-gtk-wpe.log || true diff --git a/browser_patches/checkout_build_archive_upload.sh b/browser_patches/checkout_build_archive_upload.sh index 591029eeb8..f32740dc1e 100755 --- a/browser_patches/checkout_build_archive_upload.sh +++ b/browser_patches/checkout_build_archive_upload.sh @@ -75,6 +75,25 @@ elif [[ "$BUILD_FLAVOR" == "webkit-gtk-wpe-ubuntu-18.04" ]]; then EXPECTED_HOST_OS="Ubuntu" EXPECTED_HOST_OS_VERSION="18.04" BUILD_BLOB_NAME="minibrowser-gtk-wpe-ubuntu-18.04.zip" +elif [[ "$BUILD_FLAVOR" == "webkit-gtk-ubuntu-20.04" ]]; then + BROWSER_NAME="webkit" + EXTRA_BUILD_ARGS="--gtk" + EXTRA_ARCHIVE_ARGS="--gtk" + EXPECTED_HOST_OS="Ubuntu" + EXPECTED_HOST_OS_VERSION="20.04" + BUILD_BLOB_NAME="minibrowser-gtk-ubuntu-20.04.zip" +elif [[ "$BUILD_FLAVOR" == "webkit-wpe-ubuntu-20.04" ]]; then + BROWSER_NAME="webkit" + EXTRA_BUILD_ARGS="--wpe" + EXTRA_ARCHIVE_ARGS="--wpe" + EXPECTED_HOST_OS="Ubuntu" + EXPECTED_HOST_OS_VERSION="20.04" + BUILD_BLOB_NAME="minibrowser-wpe-ubuntu-20.04.zip" +elif [[ "$BUILD_FLAVOR" == "webkit-gtk-wpe-ubuntu-20.04" ]]; then + BROWSER_NAME="webkit" + EXPECTED_HOST_OS="Ubuntu" + EXPECTED_HOST_OS_VERSION="20.04" + BUILD_BLOB_NAME="minibrowser-gtk-wpe-ubuntu-20.04.zip" elif [[ "$BUILD_FLAVOR" == "webkit-win64" ]]; then BROWSER_NAME="webkit" EXPECTED_HOST_OS="MINGW"