2019-11-22 02:25:46 +03:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
set +x
|
2020-04-20 12:38:13 +03:00
|
|
|
set -o pipefail
|
2019-11-22 02:25:46 +03:00
|
|
|
|
|
|
|
if [[ ($1 == '--help') || ($1 == '-h') ]]; then
|
2020-01-18 03:37:49 +03:00
|
|
|
echo "usage: $(basename $0) [firefox-linux|firefox-win32|firefox-win64|webkit-gtk|webkit-wpe|webkit-gtk-wpe|webkit-win64|webkit-mac-10.14|webkit-mac-10.15] [-f|--force]"
|
2019-11-22 02:25:46 +03:00
|
|
|
echo
|
2020-03-07 19:37:47 +03:00
|
|
|
echo "Prepares checkout under browser folder, applies patches, builds, archives, and uploads if build is missing."
|
2019-11-22 02:25:46 +03:00
|
|
|
echo "Script will bail out early if the build for the browser version is already present."
|
|
|
|
echo
|
|
|
|
echo "Pass -f to upload anyway."
|
|
|
|
echo
|
|
|
|
echo "NOTE: This script is safe to run in a cronjob - it aquires a lock so that it does not run twice."
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ $# == 0 ]]; then
|
2020-01-18 01:23:31 +03:00
|
|
|
echo "missing build flavor!"
|
2019-11-22 02:25:46 +03:00
|
|
|
echo "try './$(basename $0) --help' for more information"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2020-12-09 04:15:44 +03:00
|
|
|
CURRENT_ARCH="$(uname -m)"
|
2020-01-18 01:23:31 +03:00
|
|
|
CURRENT_HOST_OS="$(uname)"
|
|
|
|
CURRENT_HOST_OS_VERSION=""
|
|
|
|
if [[ "$CURRENT_HOST_OS" == "Darwin" ]]; then
|
|
|
|
CURRENT_HOST_OS_VERSION=$(sw_vers -productVersion | grep -o '^\d\+.\d\+')
|
2020-07-23 21:59:23 +03:00
|
|
|
elif [[ "$CURRENT_HOST_OS" == "Linux" ]]; then
|
|
|
|
CURRENT_HOST_OS="$(bash -c 'source /etc/os-release && echo $NAME')"
|
|
|
|
CURRENT_HOST_OS_VERSION="$(bash -c 'source /etc/os-release && echo $VERSION_ID')"
|
2020-01-18 01:23:31 +03:00
|
|
|
fi
|
|
|
|
|
2019-11-22 02:25:46 +03:00
|
|
|
BROWSER_NAME=""
|
2020-01-11 04:30:35 +03:00
|
|
|
EXTRA_BUILD_ARGS=""
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS=""
|
2020-01-18 01:23:31 +03:00
|
|
|
BUILD_FLAVOR="$1"
|
2020-04-20 11:25:25 +03:00
|
|
|
BUILD_BLOB_NAME=""
|
2020-01-18 01:23:31 +03:00
|
|
|
EXPECTED_HOST_OS=""
|
|
|
|
EXPECTED_HOST_OS_VERSION=""
|
2020-12-09 04:15:44 +03:00
|
|
|
EXPECTED_ARCH="x86_64"
|
2021-02-18 01:43:19 +03:00
|
|
|
|
|
|
|
# ===========================
|
|
|
|
# WINLDD COMPILATION
|
|
|
|
# ===========================
|
2020-09-18 19:43:43 +03:00
|
|
|
if [[ "$BUILD_FLAVOR" == "winldd-win64" ]]; then
|
|
|
|
BROWSER_NAME="winldd"
|
|
|
|
EXPECTED_HOST_OS="MINGW"
|
|
|
|
BUILD_BLOB_NAME="winldd-win64.zip"
|
2021-02-18 01:43:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
# ===========================
|
|
|
|
# FFMPEG COMPILATION
|
|
|
|
# ===========================
|
2020-09-18 19:43:43 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "ffmpeg-mac" ]]; then
|
2020-09-10 03:05:08 +03:00
|
|
|
BROWSER_NAME="ffmpeg"
|
|
|
|
EXTRA_BUILD_ARGS="--mac"
|
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="10.14"
|
|
|
|
BUILD_BLOB_NAME="ffmpeg-mac.zip"
|
2020-09-15 01:12:35 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "ffmpeg-linux" ]]; then
|
|
|
|
BROWSER_NAME="ffmpeg"
|
|
|
|
EXTRA_BUILD_ARGS="--linux"
|
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="20.04"
|
|
|
|
BUILD_BLOB_NAME="ffmpeg-linux.zip"
|
2020-09-10 03:05:08 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "ffmpeg-cross-compile-win32" ]]; then
|
|
|
|
BROWSER_NAME="ffmpeg"
|
|
|
|
EXTRA_BUILD_ARGS="--cross-compile-win32"
|
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="20.04"
|
|
|
|
BUILD_BLOB_NAME="ffmpeg-win32.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "ffmpeg-cross-compile-win64" ]]; then
|
|
|
|
BROWSER_NAME="ffmpeg"
|
|
|
|
EXTRA_BUILD_ARGS="--cross-compile-win64"
|
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="20.04"
|
|
|
|
BUILD_BLOB_NAME="ffmpeg-win64.zip"
|
2021-02-18 01:43:19 +03:00
|
|
|
|
|
|
|
# ===========================
|
|
|
|
# CHROMIUM COMPILATION
|
|
|
|
# ===========================
|
2021-02-08 10:54:10 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-win32" ]]; then
|
|
|
|
BROWSER_NAME="chromium"
|
|
|
|
EXTRA_BUILD_ARGS="--compile-win32"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--compile-win32"
|
2021-02-08 10:54:10 +03:00
|
|
|
EXPECTED_HOST_OS="MINGW"
|
|
|
|
BUILD_BLOB_NAME="chromium-win32.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-win64" ]]; then
|
|
|
|
BROWSER_NAME="chromium"
|
|
|
|
EXTRA_BUILD_ARGS="--compile-win64"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--compile-win64"
|
2021-02-08 10:54:10 +03:00
|
|
|
EXPECTED_HOST_OS="MINGW"
|
|
|
|
BUILD_BLOB_NAME="chromium-win64.zip"
|
2021-01-28 12:14:44 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-mac" ]]; then
|
|
|
|
BROWSER_NAME="chromium"
|
|
|
|
EXTRA_BUILD_ARGS="--compile-mac"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--compile-mac"
|
2021-01-28 12:14:44 +03:00
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="10.15"
|
|
|
|
BUILD_BLOB_NAME="chromium-mac.zip"
|
2021-01-22 11:27:40 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-mac-arm64" ]]; then
|
|
|
|
BROWSER_NAME="chromium"
|
|
|
|
EXTRA_BUILD_ARGS="--compile-mac-arm64"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--compile-mac-arm64"
|
2021-01-22 11:27:40 +03:00
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="10.15"
|
|
|
|
BUILD_BLOB_NAME="chromium-mac-arm64.zip"
|
2021-01-27 19:42:35 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-linux" ]]; then
|
|
|
|
BROWSER_NAME="chromium"
|
|
|
|
EXTRA_BUILD_ARGS="--compile-linux"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--compile-linux"
|
2021-01-27 19:42:35 +03:00
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="18.04"
|
|
|
|
BUILD_BLOB_NAME="chromium-linux.zip"
|
2021-02-18 01:43:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
# ===========================
|
|
|
|
# CHROMIUM MIRRORING
|
|
|
|
# ===========================
|
2020-09-10 03:05:08 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-linux-mirror-to-cdn" ]]; then
|
2020-08-08 02:22:05 +03:00
|
|
|
BROWSER_NAME="chromium"
|
2021-01-22 11:27:40 +03:00
|
|
|
EXTRA_BUILD_ARGS="--mirror-linux"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--mirror-linux"
|
2020-08-08 02:22:05 +03:00
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="18.04"
|
|
|
|
BUILD_BLOB_NAME="chromium-linux.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-mac-mirror-to-cdn" ]]; then
|
|
|
|
BROWSER_NAME="chromium"
|
2021-01-22 11:27:40 +03:00
|
|
|
EXTRA_BUILD_ARGS="--mirror-mac"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--mirror-mac"
|
2020-08-08 02:22:05 +03:00
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="18.04"
|
|
|
|
BUILD_BLOB_NAME="chromium-mac.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-win32-mirror-to-cdn" ]]; then
|
|
|
|
BROWSER_NAME="chromium"
|
2021-01-22 11:27:40 +03:00
|
|
|
EXTRA_BUILD_ARGS="--mirror-win32"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--mirror-win32"
|
2020-08-08 02:22:05 +03:00
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="18.04"
|
|
|
|
BUILD_BLOB_NAME="chromium-win32.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "chromium-win64-mirror-to-cdn" ]]; then
|
|
|
|
BROWSER_NAME="chromium"
|
2021-01-22 11:27:40 +03:00
|
|
|
EXTRA_BUILD_ARGS="--mirror-win64"
|
2021-02-18 01:43:19 +03:00
|
|
|
EXTRA_ARCHIVE_ARGS="--mirror-win64"
|
2020-08-08 02:22:05 +03:00
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="18.04"
|
|
|
|
BUILD_BLOB_NAME="chromium-win64.zip"
|
2021-02-18 01:43:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
# ===========================
|
|
|
|
# FIREFOX COMPILATION
|
|
|
|
# ===========================
|
2020-08-08 02:22:05 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-ubuntu-18.04" ]]; then
|
2020-01-18 01:23:31 +03:00
|
|
|
BROWSER_NAME="firefox"
|
2021-02-03 08:35:12 +03:00
|
|
|
EXTRA_BUILD_ARGS="--full"
|
2020-07-23 21:59:23 +03:00
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="18.04"
|
|
|
|
BUILD_BLOB_NAME="firefox-ubuntu-18.04.zip"
|
2021-04-03 00:16:25 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-ubuntu-20.04" ]]; then
|
|
|
|
BROWSER_NAME="firefox"
|
|
|
|
EXTRA_BUILD_ARGS="--full"
|
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="20.04"
|
|
|
|
BUILD_BLOB_NAME="firefox-ubuntu-20.04.zip"
|
2020-07-24 10:31:18 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-mac-10.14" ]]; then
|
2020-01-18 01:23:31 +03:00
|
|
|
BROWSER_NAME="firefox"
|
2021-02-03 08:35:12 +03:00
|
|
|
EXTRA_BUILD_ARGS="--full"
|
2020-01-18 01:23:31 +03:00
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="10.14"
|
2020-07-24 10:31:18 +03:00
|
|
|
BUILD_BLOB_NAME="firefox-mac-10.14.zip"
|
2021-01-12 03:57:59 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-mac-11.0-arm64" ]]; then
|
|
|
|
BROWSER_NAME="firefox"
|
2021-02-03 08:35:12 +03:00
|
|
|
EXTRA_BUILD_ARGS="--full"
|
2021-01-12 03:57:59 +03:00
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="11.0"
|
|
|
|
EXPECTED_ARCH="arm64"
|
|
|
|
BUILD_BLOB_NAME="firefox-mac-11.0-arm64.zip"
|
2020-01-18 01:23:31 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-win32" ]]; then
|
2019-11-22 02:25:46 +03:00
|
|
|
BROWSER_NAME="firefox"
|
browser(firefox): properly initialize debugging pipe on windows (#5514)
browser(firefox): properly initialize debugging pipe on windows
Firefox on Windows has 2 launch modes:
- default: a special "launcher process" is used to start browser as a
sub-process
- non-default: browser process starts right away
Firefox has a logic to detect how successful was the use of the
launcher process to do self-recovery when things go wrong. Namely:
- when attempting to use launcher process, firefox records a timestamp
of the attempt beginning
- once the launcher process successfully launches browser sub-process,
firefox records another timestamp of the completion
On a new launch, firefox checks what timestamps are present. If there's
a timestamp that signifies start of launcher process, but no successful
timestamp, it decides that last "launcher process" use was not
successful and falls back to launching browser right away.
When launching 2 firefox processes right away, the first process
uses attempts to use launcher process and records the first timestamp.
At the same time, the second instance sees the first timestamp and
doesn't see the second timestamp, and falls back to launching browser
right away. Our debugging pipe code, however, does not support
non-launcher-process code path.
This patch adds support for remote debugging pipe in case of
non-launcher-process startup.
Drive-by:
- disable crashreporter altogether
- remove stray dcheck that breaks firefox debug compilation
- disable compilation of firefox update agent
- do not use WIN32_DISTRIB flag unless doing full builds since
it kills incremental compilation
References #4660
2021-02-19 21:32:47 +03:00
|
|
|
EXTRA_BUILD_ARGS="--full"
|
2020-01-18 01:23:31 +03:00
|
|
|
EXPECTED_HOST_OS="MINGW"
|
2020-04-20 11:25:25 +03:00
|
|
|
BUILD_BLOB_NAME="firefox-win32.zip"
|
2020-01-18 01:23:31 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-win64" ]]; then
|
2020-01-11 04:30:35 +03:00
|
|
|
BROWSER_NAME="firefox"
|
browser(firefox): properly initialize debugging pipe on windows (#5514)
browser(firefox): properly initialize debugging pipe on windows
Firefox on Windows has 2 launch modes:
- default: a special "launcher process" is used to start browser as a
sub-process
- non-default: browser process starts right away
Firefox has a logic to detect how successful was the use of the
launcher process to do self-recovery when things go wrong. Namely:
- when attempting to use launcher process, firefox records a timestamp
of the attempt beginning
- once the launcher process successfully launches browser sub-process,
firefox records another timestamp of the completion
On a new launch, firefox checks what timestamps are present. If there's
a timestamp that signifies start of launcher process, but no successful
timestamp, it decides that last "launcher process" use was not
successful and falls back to launching browser right away.
When launching 2 firefox processes right away, the first process
uses attempts to use launcher process and records the first timestamp.
At the same time, the second instance sees the first timestamp and
doesn't see the second timestamp, and falls back to launching browser
right away. Our debugging pipe code, however, does not support
non-launcher-process code path.
This patch adds support for remote debugging pipe in case of
non-launcher-process startup.
Drive-by:
- disable crashreporter altogether
- remove stray dcheck that breaks firefox debug compilation
- disable compilation of firefox update agent
- do not use WIN32_DISTRIB flag unless doing full builds since
it kills incremental compilation
References #4660
2021-02-19 21:32:47 +03:00
|
|
|
EXTRA_BUILD_ARGS="--win64 --full"
|
2020-01-18 01:23:31 +03:00
|
|
|
EXPECTED_HOST_OS="MINGW"
|
2020-04-20 11:25:25 +03:00
|
|
|
BUILD_BLOB_NAME="firefox-win64.zip"
|
2021-02-18 01:43:19 +03:00
|
|
|
|
|
|
|
|
2021-04-10 08:13:19 +03:00
|
|
|
# ===============================
|
|
|
|
# FIREFOX-STABLE COMPILATION
|
|
|
|
# ===============================
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-stable-ubuntu-18.04" ]]; then
|
|
|
|
BROWSER_NAME="firefox-stable"
|
|
|
|
EXTRA_BUILD_ARGS="--full"
|
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="18.04"
|
|
|
|
BUILD_BLOB_NAME="firefox-stable-ubuntu-18.04.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-stable-ubuntu-20.04" ]]; then
|
|
|
|
BROWSER_NAME="firefox-stable"
|
|
|
|
EXTRA_BUILD_ARGS="--full"
|
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="20.04"
|
|
|
|
BUILD_BLOB_NAME="firefox-stable-ubuntu-20.04.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-stable-mac-10.14" ]]; then
|
|
|
|
BROWSER_NAME="firefox-stable"
|
|
|
|
EXTRA_BUILD_ARGS="--full"
|
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="10.14"
|
|
|
|
BUILD_BLOB_NAME="firefox-stable-mac-10.14.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-stable-mac-11.0-arm64" ]]; then
|
|
|
|
BROWSER_NAME="firefox-stable"
|
|
|
|
EXTRA_BUILD_ARGS="--full"
|
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="11.0"
|
|
|
|
EXPECTED_ARCH="arm64"
|
|
|
|
BUILD_BLOB_NAME="firefox-stable-mac-11.0-arm64.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-stable-win32" ]]; then
|
|
|
|
BROWSER_NAME="firefox-stable"
|
|
|
|
EXTRA_BUILD_ARGS="--full"
|
|
|
|
EXPECTED_HOST_OS="MINGW"
|
|
|
|
BUILD_BLOB_NAME="firefox-stable-win32.zip"
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "firefox-stable-win64" ]]; then
|
|
|
|
BROWSER_NAME="firefox-stable"
|
|
|
|
EXTRA_BUILD_ARGS="--win64 --full"
|
|
|
|
EXPECTED_HOST_OS="MINGW"
|
|
|
|
BUILD_BLOB_NAME="firefox-stable-win64.zip"
|
|
|
|
|
2021-02-18 01:43:19 +03:00
|
|
|
# ===========================
|
|
|
|
# WEBKIT COMPILATION
|
|
|
|
# ===========================
|
2020-07-24 01:57:53 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "webkit-ubuntu-18.04" ]]; then
|
2020-01-18 03:37:49 +03:00
|
|
|
BROWSER_NAME="webkit"
|
2020-10-27 07:53:27 +03:00
|
|
|
EXTRA_BUILD_ARGS="--full"
|
2020-07-23 21:59:23 +03:00
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="18.04"
|
2020-07-24 10:31:18 +03:00
|
|
|
BUILD_BLOB_NAME="webkit-ubuntu-18.04.zip"
|
2020-07-24 01:57:53 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "webkit-ubuntu-20.04" ]]; then
|
2020-07-24 00:42:14 +03:00
|
|
|
BROWSER_NAME="webkit"
|
2020-10-27 07:53:27 +03:00
|
|
|
EXTRA_BUILD_ARGS="--full"
|
2020-07-24 00:42:14 +03:00
|
|
|
EXPECTED_HOST_OS="Ubuntu"
|
|
|
|
EXPECTED_HOST_OS_VERSION="20.04"
|
2020-07-24 10:31:18 +03:00
|
|
|
BUILD_BLOB_NAME="webkit-ubuntu-20.04.zip"
|
2020-01-18 01:23:31 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "webkit-win64" ]]; then
|
|
|
|
BROWSER_NAME="webkit"
|
|
|
|
EXPECTED_HOST_OS="MINGW"
|
2020-07-24 10:31:18 +03:00
|
|
|
BUILD_BLOB_NAME="webkit-win64.zip"
|
2020-01-18 01:23:31 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "webkit-mac-10.15" ]]; then
|
2019-11-22 02:25:46 +03:00
|
|
|
BROWSER_NAME="webkit"
|
2020-01-18 01:23:31 +03:00
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="10.15"
|
2020-07-24 10:31:18 +03:00
|
|
|
BUILD_BLOB_NAME="webkit-mac-10.15.zip"
|
2020-11-05 11:49:05 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "webkit-mac-11.0" ]]; then
|
|
|
|
BROWSER_NAME="webkit"
|
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="11.0"
|
|
|
|
BUILD_BLOB_NAME="webkit-mac-11.0.zip"
|
2020-12-09 04:15:44 +03:00
|
|
|
elif [[ "$BUILD_FLAVOR" == "webkit-mac-11.0-arm64" ]]; then
|
|
|
|
BROWSER_NAME="webkit"
|
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="11.0"
|
|
|
|
EXPECTED_ARCH="arm64"
|
|
|
|
BUILD_BLOB_NAME="webkit-mac-11.0-arm64.zip"
|
2021-03-16 11:08:21 +03:00
|
|
|
|
|
|
|
|
|
|
|
# ===================================
|
|
|
|
# DEPRECATED WEBKIT COMPILATION
|
|
|
|
# ===================================
|
|
|
|
elif [[ "$BUILD_FLAVOR" == "deprecated-webkit-mac-10.14" ]]; then
|
|
|
|
BROWSER_NAME="deprecated-webkit-mac-10.14"
|
|
|
|
EXPECTED_HOST_OS="Darwin"
|
|
|
|
EXPECTED_HOST_OS_VERSION="10.14"
|
|
|
|
BUILD_BLOB_NAME="deprecated-webkit-mac-10.14.zip"
|
2019-11-22 02:25:46 +03:00
|
|
|
else
|
2020-01-18 01:23:31 +03:00
|
|
|
echo ERROR: unknown build flavor - "$BUILD_FLAVOR"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2020-12-10 19:43:42 +03:00
|
|
|
if [[ "$CURRENT_ARCH" != "$EXPECTED_ARCH" ]]; then
|
2020-12-09 04:15:44 +03:00
|
|
|
echo "ERROR: cannot build $BUILD_FLAVOR"
|
|
|
|
echo " -- expected arch: $EXPECTED_ARCH"
|
|
|
|
echo " -- current arch: $CURRENT_ARCH"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2020-01-18 01:23:31 +03:00
|
|
|
if [[ "$CURRENT_HOST_OS" != $EXPECTED_HOST_OS* ]]; then
|
|
|
|
echo "ERROR: cannot build $BUILD_FLAVOR"
|
|
|
|
echo " -- expected OS: $EXPECTED_HOST_OS"
|
|
|
|
echo " -- current OS: $CURRENT_HOST_OS"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ "$CURRENT_HOST_OS_VERSION" != "$EXPECTED_HOST_OS_VERSION" ]]; then
|
|
|
|
echo "ERROR: cannot build $BUILD_FLAVOR"
|
|
|
|
echo " -- expected OS Version: $EXPECTED_HOST_OS_VERSION"
|
|
|
|
echo " -- current OS Version: $CURRENT_HOST_OS_VERSION"
|
2019-11-22 02:25:46 +03:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2019-11-23 04:16:47 +03:00
|
|
|
if [[ $(uname) == MINGW* ]]; then
|
|
|
|
ZIP_PATH="$PWD/archive-$BROWSER_NAME.zip"
|
2020-04-20 11:25:25 +03:00
|
|
|
LOG_PATH="$PWD/log-$BROWSER_NAME.zip"
|
2019-11-23 04:16:47 +03:00
|
|
|
else
|
|
|
|
ZIP_PATH="/tmp/archive-$BROWSER_NAME.zip"
|
2020-04-20 11:25:25 +03:00
|
|
|
LOG_PATH="/tmp/log-$BROWSER_NAME.zip"
|
2019-11-23 04:16:47 +03:00
|
|
|
fi
|
|
|
|
|
2019-11-22 02:25:46 +03:00
|
|
|
if [[ -f $ZIP_PATH ]]; then
|
|
|
|
echo "Archive $ZIP_PATH already exists - remove and re-run the script."
|
|
|
|
exit 1
|
|
|
|
fi
|
2020-04-20 11:25:25 +03:00
|
|
|
trap "rm -rf ${ZIP_PATH}; rm -rf ${LOG_PATH}; cd $(pwd -P);" INT TERM EXIT
|
2019-11-22 02:25:46 +03:00
|
|
|
cd "$(dirname "$0")"
|
2020-07-02 22:09:27 +03:00
|
|
|
BUILD_NUMBER=$(head -1 ./$BROWSER_NAME/BUILD_NUMBER)
|
2020-04-20 11:25:25 +03:00
|
|
|
BUILD_BLOB_PATH="${BROWSER_NAME}/${BUILD_NUMBER}/${BUILD_BLOB_NAME}"
|
2020-04-20 14:24:18 +03:00
|
|
|
LOG_BLOB_NAME="${BUILD_BLOB_NAME%.zip}.log.gz"
|
|
|
|
LOG_BLOB_PATH="${BROWSER_NAME}/${BUILD_NUMBER}/${LOG_BLOB_NAME}"
|
2019-11-22 02:25:46 +03:00
|
|
|
|
|
|
|
# pull from upstream and check if a new build has to be uploaded.
|
|
|
|
if ! [[ ($2 == '-f') || ($2 == '--force') ]]; then
|
2020-04-20 11:25:25 +03:00
|
|
|
if ./upload.sh "${BUILD_BLOB_PATH}" --check; then
|
2019-11-22 02:25:46 +03:00
|
|
|
echo "Build is already uploaded - no changes."
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "Force-rebuilding the build."
|
|
|
|
fi
|
|
|
|
|
2020-04-20 11:25:25 +03:00
|
|
|
function generate_and_upload_browser_build {
|
2020-01-18 03:55:42 +03:00
|
|
|
echo "-- preparing checkout"
|
|
|
|
if ! ./prepare_checkout.sh $BROWSER_NAME; then
|
2020-04-20 12:38:13 +03:00
|
|
|
return 20
|
2020-01-18 03:37:49 +03:00
|
|
|
fi
|
2019-12-10 01:38:23 +03:00
|
|
|
|
2020-01-18 03:55:42 +03:00
|
|
|
echo "-- cleaning"
|
|
|
|
if ! ./$BROWSER_NAME/clean.sh; then
|
2020-04-20 12:38:13 +03:00
|
|
|
return 21
|
2020-01-18 03:55:42 +03:00
|
|
|
fi
|
2019-11-23 07:49:40 +03:00
|
|
|
|
2020-01-18 03:55:42 +03:00
|
|
|
echo "-- building"
|
|
|
|
if ! ./$BROWSER_NAME/build.sh "$EXTRA_BUILD_ARGS"; then
|
2020-04-20 12:38:13 +03:00
|
|
|
return 22
|
2020-01-18 03:55:42 +03:00
|
|
|
fi
|
2019-11-23 07:49:40 +03:00
|
|
|
|
2020-01-18 03:55:42 +03:00
|
|
|
echo "-- archiving to $ZIP_PATH"
|
2021-02-18 01:43:19 +03:00
|
|
|
if ! ./$BROWSER_NAME/archive.sh $ZIP_PATH "$EXTRA_ARCHIVE_ARGS"; then
|
2020-05-01 22:09:36 +03:00
|
|
|
return 23
|
2020-01-18 03:55:42 +03:00
|
|
|
fi
|
2019-11-23 07:49:40 +03:00
|
|
|
|
2020-04-20 11:25:25 +03:00
|
|
|
echo "-- uploading"
|
|
|
|
if ! ./upload.sh $BUILD_BLOB_PATH $ZIP_PATH; then
|
2020-05-01 22:09:36 +03:00
|
|
|
return 24
|
2020-04-20 11:25:25 +03:00
|
|
|
fi
|
|
|
|
return 0
|
|
|
|
}
|
2020-02-07 23:42:09 +03:00
|
|
|
|
2021-02-22 20:09:19 +03:00
|
|
|
source ./send_telegram_message.sh
|
2020-04-20 11:25:25 +03:00
|
|
|
BUILD_ALIAS="$BUILD_FLAVOR r$BUILD_NUMBER"
|
|
|
|
send_telegram_message "$BUILD_ALIAS -- started"
|
2020-02-07 23:42:09 +03:00
|
|
|
|
2020-04-20 12:38:13 +03:00
|
|
|
if generate_and_upload_browser_build 2>&1 | ./sanitize_and_compress_log.js $LOG_PATH; then
|
2020-04-20 11:25:25 +03:00
|
|
|
# Report successful build. Note: we don't know how to get zip size on MINGW.
|
2021-02-20 01:43:27 +03:00
|
|
|
UPLOAD_SIZE=""
|
|
|
|
if command -v du >/dev/null && command -v awk >/dev/null; then
|
|
|
|
UPLOAD_SIZE="$(du -h "$ZIP_PATH" | awk '{print $1}') "
|
2020-04-20 11:25:25 +03:00
|
|
|
fi
|
2021-02-20 01:43:27 +03:00
|
|
|
send_telegram_message "$BUILD_ALIAS -- ${UPLOAD_SIZE}uploaded"
|
|
|
|
|
2020-04-20 11:25:25 +03:00
|
|
|
# Check if we uploaded the last build.
|
2021-03-16 11:14:45 +03:00
|
|
|
if ./check_cdn.sh $BROWSER_NAME > /dev/null; then
|
2020-04-20 11:25:25 +03:00
|
|
|
LAST_COMMIT_MESSAGE=$(git log --format=%s -n 1 HEAD -- ./$BROWSER_NAME/BUILD_NUMBER)
|
|
|
|
send_telegram_message "<b>$BROWSER_NAME r${BUILD_NUMBER} COMPLETE! ✅</b> $LAST_COMMIT_MESSAGE"
|
|
|
|
fi
|
|
|
|
else
|
2020-04-20 12:38:13 +03:00
|
|
|
RESULT_CODE="$?"
|
|
|
|
if (( RESULT_CODE == 10 )); then
|
|
|
|
FAILED_STEP="./download_gtk_and_wpe_and_zip_together.sh"
|
|
|
|
elif (( RESULT_CODE == 11 )); then
|
|
|
|
FAILED_STEP="./upload.sh"
|
|
|
|
elif (( RESULT_CODE == 20 )); then
|
|
|
|
FAILED_STEP="./prepare_checkout.sh"
|
|
|
|
elif (( RESULT_CODE == 21 )); then
|
|
|
|
FAILED_STEP="./clean.sh"
|
|
|
|
elif (( RESULT_CODE == 22 )); then
|
|
|
|
FAILED_STEP="./build.sh"
|
|
|
|
elif (( RESULT_CODE == 23 )); then
|
2020-05-01 03:42:52 +03:00
|
|
|
FAILED_STEP="./archive.sh"
|
2020-05-01 22:09:36 +03:00
|
|
|
elif (( RESULT_CODE == 24 )); then
|
2020-04-20 12:38:13 +03:00
|
|
|
FAILED_STEP="./upload.sh"
|
|
|
|
else
|
|
|
|
FAILED_STEP="<unknown step>"
|
|
|
|
fi
|
2020-04-20 11:25:25 +03:00
|
|
|
# Upload logs only in case of failure and report failure.
|
|
|
|
./upload.sh ${LOG_BLOB_PATH} ${LOG_PATH} || true
|
2020-04-20 14:24:18 +03:00
|
|
|
send_telegram_message "$BUILD_ALIAS -- ${FAILED_STEP} failed! ❌ <a href='https://playwright.azureedge.net/builds/${LOG_BLOB_PATH}'>${LOG_BLOB_NAME}</a>"
|
2021-02-20 01:43:27 +03:00
|
|
|
exit 1
|
2020-04-20 11:25:25 +03:00
|
|
|
fi
|
2020-02-07 23:42:09 +03:00
|
|
|
|