mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-14 13:45:36 +03:00
70065ba6dd
…636)"
The new node resolves loalhost to ::1 by default which breaks API tests
in the ports (Java in particular). Reverting to the previous LTS to
allow some time to implement happy eyeballs algorithm on our end by next
release.
This reverts commit 63a0b75186
.
Reference https://github.com/microsoft/playwright/issues/18790
85 lines
3.0 KiB
Bash
Executable File
85 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
set -x
|
|
|
|
trap "cd $(pwd -P)" EXIT
|
|
SCRIPT_PATH="$(cd "$(dirname "$0")" ; pwd -P)"
|
|
NODE_VERSION="16.18.0" # autogenerated via ./update-playwright-driver-version.mjs
|
|
|
|
cd "$(dirname "$0")"
|
|
PACKAGE_VERSION=$(node -p "require('../../package.json').version")
|
|
rm -rf ./output
|
|
mkdir -p ./output
|
|
|
|
echo "Building playwright-core package"
|
|
node ../../utils/pack_package.js playwright-core ./output/playwright-core.tgz
|
|
|
|
echo "Building api.json and protocol.yml"
|
|
API_JSON_MODE=1 node ../../utils/doclint/generateApiJson.js > ./output/api.json
|
|
cp ../../packages/protocol/src/protocol.yml ./output/
|
|
|
|
function build {
|
|
NODE_DIR=$1
|
|
SUFFIX=$2
|
|
ARCHIVE=$3
|
|
RUN_DRIVER=$4
|
|
NODE_URL=https://nodejs.org/dist/v${NODE_VERSION}/${NODE_DIR}.${ARCHIVE}
|
|
|
|
echo "Building playwright-${PACKAGE_VERSION}-${SUFFIX}"
|
|
|
|
cd ${SCRIPT_PATH}
|
|
|
|
mkdir -p ./output/playwright-${SUFFIX}
|
|
tar -xzf ./output/playwright-core.tgz -C ./output/playwright-${SUFFIX}/
|
|
|
|
curl ${NODE_URL} -o ./output/${NODE_DIR}.${ARCHIVE}
|
|
NPM_PATH=""
|
|
if [[ "${ARCHIVE}" == "zip" ]]; then
|
|
cd ./output
|
|
unzip -q ./${NODE_DIR}.zip
|
|
cd ..
|
|
cp ./output/${NODE_DIR}/node.exe ./output/playwright-${SUFFIX}/
|
|
NPM_PATH="node_modules/npm/bin/npm-cli.js"
|
|
elif [[ "${ARCHIVE}" == "tar.gz" ]]; then
|
|
tar -xzf ./output/${NODE_DIR}.tar.gz -C ./output/
|
|
cp ./output/${NODE_DIR}/bin/node ./output/playwright-${SUFFIX}/
|
|
NPM_PATH="lib/node_modules/npm/bin/npm-cli.js"
|
|
else
|
|
echo "Unsupported ARCHIVE ${ARCHIVE}"
|
|
exit 1
|
|
fi
|
|
|
|
cp ./output/${NODE_DIR}/LICENSE ./output/playwright-${SUFFIX}/
|
|
cp ./output/api.json ./output/playwright-${SUFFIX}/package/
|
|
cp ./output/protocol.yml ./output/playwright-${SUFFIX}/package/
|
|
cd ./output/playwright-${SUFFIX}/package
|
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 node "../../${NODE_DIR}/${NPM_PATH}" install --production --ignore-scripts
|
|
rm package-lock.json
|
|
|
|
cd ..
|
|
if [[ "${RUN_DRIVER}" == *".cmd" ]]; then
|
|
cp ../../${RUN_DRIVER} ./playwright.cmd
|
|
chmod +x ./playwright.cmd
|
|
elif [[ "${RUN_DRIVER}" == *".sh" ]]; then
|
|
cp ../../${RUN_DRIVER} ./playwright.sh
|
|
chmod +x ./playwright.sh
|
|
else
|
|
echo "Unsupported RUN_DRIVER ${RUN_DRIVER}"
|
|
exit 1
|
|
fi
|
|
|
|
# NPM install does intentionally set the modification date back to 1985 for all the files. This confuses language binding
|
|
# update mechanisms, which expect the modification date to be recent to decide which file to override. See:
|
|
# - https://github.com/npm/npm/issues/20439#issuecomment-385121133
|
|
# - https://github.com/microsoft/playwright-dotnet/issues/2069
|
|
find . -type f -exec touch {} +
|
|
|
|
zip -q -r ../playwright-${PACKAGE_VERSION}-${SUFFIX}.zip .
|
|
}
|
|
|
|
build "node-v${NODE_VERSION}-darwin-x64" "mac" "tar.gz" "run-driver-posix.sh"
|
|
build "node-v${NODE_VERSION}-darwin-arm64" "mac-arm64" "tar.gz" "run-driver-posix.sh"
|
|
build "node-v${NODE_VERSION}-linux-x64" "linux" "tar.gz" "run-driver-posix.sh"
|
|
build "node-v${NODE_VERSION}-linux-arm64" "linux-arm64" "tar.gz" "run-driver-posix.sh"
|
|
build "node-v${NODE_VERSION}-win-x64" "win32_x64" "zip" "run-driver-win.cmd"
|