devops: support FF_CHECKOUT_PATH to customize browser checkout (#4607)
**Preamble** 1. We're trying to setup a windows-based github self-hosted runner in the playwright-internal repo. 1. Commands on Windows are mandated to have total arguments length less then 32767 characters. 1. On windows, github self-hosted runner framework puts repository checkout at `c:\w\playwright-internal\playwright-internal` 1. Our scripts create a checkout at `c:\w\playwright-internal\playwright-internal\browser_patches\firefox\checkout` 1. One of the scripts in Firefox buildsystem tries to execute a command, passing lots of absolute paths to various webidl's 1. The command fails due to restriction in (2) **Problem** Firefox build fails since checkout is deeply nested and hits max arg size on windows. **Solution** This patch introduces a new variable `FF_CHECKOUT_PATH` that is respected by all browser-related scripts. This way we'll be able to checkout firefox to `c:\firefox` and avoid hitting long arguments limit.
This commit is contained in:
parent
96a1f79e96
commit
6fe7d9c19f
|
|
@ -48,6 +48,11 @@ if [[ ("$1" == "firefox") || ("$1" == "firefox/") || ("$1" == "ff") ]]; then
|
||||||
EXPORT_PATH="$PWD/firefox"
|
EXPORT_PATH="$PWD/firefox"
|
||||||
BUILD_NUMBER_UPSTREAM_URL="https://raw.githubusercontent.com/microsoft/playwright/master/browser_patches/firefox/BUILD_NUMBER"
|
BUILD_NUMBER_UPSTREAM_URL="https://raw.githubusercontent.com/microsoft/playwright/master/browser_patches/firefox/BUILD_NUMBER"
|
||||||
source "./firefox/UPSTREAM_CONFIG.sh"
|
source "./firefox/UPSTREAM_CONFIG.sh"
|
||||||
|
if [[ ! -z "${FF_CHECKOUT_PATH}" ]]; then
|
||||||
|
echo "WARNING: using checkout path from FF_CHECKOUT_PATH env: ${FF_CHECKOUT_PATH}"
|
||||||
|
CHECKOUT_PATH="${FF_CHECKOUT_PATH}"
|
||||||
|
FRIENDLY_CHECKOUT_PATH="<FF_CHECKOUT_PATH>"
|
||||||
|
fi
|
||||||
elif [[ ("$1" == "webkit") || ("$1" == "webkit/") || ("$1" == "wk") ]]; then
|
elif [[ ("$1" == "webkit") || ("$1" == "webkit/") || ("$1" == "wk") ]]; then
|
||||||
FRIENDLY_CHECKOUT_PATH="//browser_patches/webkit/checkout";
|
FRIENDLY_CHECKOUT_PATH="//browser_patches/webkit/checkout";
|
||||||
CHECKOUT_PATH="$PWD/webkit/checkout"
|
CHECKOUT_PATH="$PWD/webkit/checkout"
|
||||||
|
|
|
||||||
|
|
@ -30,12 +30,19 @@ fi
|
||||||
|
|
||||||
trap "cd $(pwd -P)" EXIT
|
trap "cd $(pwd -P)" EXIT
|
||||||
cd "$(dirname $0)"
|
cd "$(dirname $0)"
|
||||||
cd checkout
|
SCRIPT_FOLDER="$(pwd -P)"
|
||||||
|
|
||||||
|
if [[ ! -z "${FF_CHECKOUT_PATH}" ]]; then
|
||||||
|
cd "${FF_CHECKOUT_PATH}"
|
||||||
|
echo "WARNING: checkout path from FF_CHECKOUT_PATH env: ${FF_CHECKOUT_PATH}"
|
||||||
|
else
|
||||||
|
cd "checkout"
|
||||||
|
fi
|
||||||
|
|
||||||
OBJ_FOLDER="obj-build-playwright"
|
OBJ_FOLDER="obj-build-playwright"
|
||||||
|
|
||||||
./mach package
|
./mach package
|
||||||
node ../install-preferences.js $PWD/$OBJ_FOLDER/dist/firefox
|
node "${SCRIPT_FOLDER}"/install-preferences.js $PWD/$OBJ_FOLDER/dist/firefox
|
||||||
|
|
||||||
if ! [[ -d $OBJ_FOLDER/dist/firefox ]]; then
|
if ! [[ -d $OBJ_FOLDER/dist/firefox ]]; then
|
||||||
echo "ERROR: cannot find $OBJ_FOLDER/dist/firefox folder in the checkout/. Did you build?"
|
echo "ERROR: cannot find $OBJ_FOLDER/dist/firefox folder in the checkout/. Did you build?"
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,17 @@ RUST_VERSION="1.45.0"
|
||||||
CBINDGEN_VERSION="0.15.0"
|
CBINDGEN_VERSION="0.15.0"
|
||||||
|
|
||||||
trap "cd $(pwd -P)" EXIT
|
trap "cd $(pwd -P)" EXIT
|
||||||
|
|
||||||
cd "$(dirname $0)"
|
cd "$(dirname $0)"
|
||||||
cd "checkout"
|
SCRIPT_FOLDER="$(pwd -P)"
|
||||||
|
|
||||||
|
if [[ ! -z "${FF_CHECKOUT_PATH}" ]]; then
|
||||||
|
cd "${FF_CHECKOUT_PATH}"
|
||||||
|
echo "WARNING: checkout path from FF_CHECKOUT_PATH env: ${FF_CHECKOUT_PATH}"
|
||||||
|
else
|
||||||
|
cd "checkout"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [[ "$(uname)" == "Darwin" ]]; then
|
if [[ "$(uname)" == "Darwin" ]]; then
|
||||||
# Firefox currently does not build on 10.15 out of the box - it requires SDK for 10.11.
|
# Firefox currently does not build on 10.15 out of the box - it requires SDK for 10.11.
|
||||||
|
|
@ -74,8 +83,8 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$(uname)" == "Darwin" ]]; then
|
if [[ "$(uname)" == "Darwin" ]]; then
|
||||||
node ../install-preferences.js $PWD/${OBJ_FOLDER}/dist
|
node "${SCRIPT_FOLDER}"/install-preferences.js $PWD/${OBJ_FOLDER}/dist
|
||||||
else
|
else
|
||||||
node ../install-preferences.js $PWD/${OBJ_FOLDER}/dist/bin
|
node "${SCRIPT_FOLDER}"/install-preferences.js $PWD/${OBJ_FOLDER}/dist/bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,13 @@ set -e
|
||||||
set +x
|
set +x
|
||||||
|
|
||||||
trap "cd $(pwd -P)" EXIT
|
trap "cd $(pwd -P)" EXIT
|
||||||
cd "$(dirname $0)"
|
if [[ ! -z "${FF_CHECKOUT_PATH}" ]]; then
|
||||||
cd "checkout"
|
cd "${FF_CHECKOUT_PATH}"
|
||||||
|
echo "WARNING: checkout path from FF_CHECKOUT_PATH env: ${FF_CHECKOUT_PATH}"
|
||||||
|
else
|
||||||
|
cd "$(dirname $0)"
|
||||||
|
cd "checkout"
|
||||||
|
fi
|
||||||
|
|
||||||
OBJ_FOLDER="obj-build-playwright"
|
OBJ_FOLDER="obj-build-playwright"
|
||||||
if [[ -d $OBJ_FOLDER ]]; then
|
if [[ -d $OBJ_FOLDER ]]; then
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,11 @@ elif [[ ("$1" == "firefox") || ("$1" == "firefox/") || ("$1" == "ff") ]]; then
|
||||||
FIREFOX_EXTRA_FOLDER_PATH="$PWD/firefox/juggler"
|
FIREFOX_EXTRA_FOLDER_PATH="$PWD/firefox/juggler"
|
||||||
BUILD_NUMBER=$(head -1 "$PWD/firefox/BUILD_NUMBER")
|
BUILD_NUMBER=$(head -1 "$PWD/firefox/BUILD_NUMBER")
|
||||||
source "./firefox/UPSTREAM_CONFIG.sh"
|
source "./firefox/UPSTREAM_CONFIG.sh"
|
||||||
|
if [[ ! -z "${FF_CHECKOUT_PATH}" ]]; then
|
||||||
|
echo "WARNING: using checkout path from FF_CHECKOUT_PATH env: ${FF_CHECKOUT_PATH}"
|
||||||
|
CHECKOUT_PATH="${FF_CHECKOUT_PATH}"
|
||||||
|
FRIENDLY_CHECKOUT_PATH="<FF_CHECKOUT_PATH>"
|
||||||
|
fi
|
||||||
elif [[ ("$1" == "webkit") || ("$1" == "webkit/") || ("$1" == "wk") ]]; then
|
elif [[ ("$1" == "webkit") || ("$1" == "webkit/") || ("$1" == "wk") ]]; then
|
||||||
FRIENDLY_CHECKOUT_PATH="//browser_patches/webkit/checkout";
|
FRIENDLY_CHECKOUT_PATH="//browser_patches/webkit/checkout";
|
||||||
CHECKOUT_PATH="$PWD/webkit/checkout"
|
CHECKOUT_PATH="$PWD/webkit/checkout"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue