mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00

…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 63a0b75186c984528dc661c6d334bb0fb6a7002a. 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"
|