| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | set -e | 
					
						
							| 
									
										
										
										
											2021-01-06 14:13:01 +03:00
										 |  |  | set -x | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | trap "cd $(pwd -P)" EXIT | 
					
						
							|  |  |  | SCRIPT_PATH="$(cd "$(dirname "$0")" ; pwd -P)" | 
					
						
							| 
									
										
										
										
											2023-03-09 03:55:22 -08:00
										 |  |  | NODE_VERSION="18.15.0" # autogenerated via ./update-playwright-driver-version.mjs | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | cd "$(dirname "$0")" | 
					
						
							|  |  |  | PACKAGE_VERSION=$(node -p "require('../../package.json').version") | 
					
						
							|  |  |  | rm -rf ./output | 
					
						
							|  |  |  | mkdir -p ./output | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-11 10:52:17 -04:00
										 |  |  | echo "Building playwright-core package" | 
					
						
							|  |  |  | node ../../utils/pack_package.js playwright-core ./output/playwright-core.tgz | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-02 14:01:05 -07:00
										 |  |  | echo "Building api.json and protocol.yml" | 
					
						
							| 
									
										
										
										
											2022-06-23 16:15:14 -07:00
										 |  |  | API_JSON_MODE=1 node ../../utils/doclint/generateApiJson.js > ./output/api.json | 
					
						
							| 
									
										
										
										
											2022-09-21 12:43:18 -07:00
										 |  |  | cp ../../packages/protocol/src/protocol.yml ./output/ | 
					
						
							| 
									
										
										
										
											2021-06-02 14:01:05 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  | function build { | 
					
						
							|  |  |  |   NODE_DIR=$1 | 
					
						
							|  |  |  |   SUFFIX=$2 | 
					
						
							|  |  |  |   ARCHIVE=$3 | 
					
						
							|  |  |  |   RUN_DRIVER=$4 | 
					
						
							| 
									
										
										
										
											2021-09-16 15:14:11 +02:00
										 |  |  |   NODE_URL=https://nodejs.org/dist/v${NODE_VERSION}/${NODE_DIR}.${ARCHIVE} | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   echo "Building playwright-${PACKAGE_VERSION}-${SUFFIX}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   cd ${SCRIPT_PATH} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   mkdir -p ./output/playwright-${SUFFIX} | 
					
						
							| 
									
										
										
										
											2021-10-11 10:52:17 -04:00
										 |  |  |   tar -xzf ./output/playwright-core.tgz -C ./output/playwright-${SUFFIX}/ | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   curl ${NODE_URL} -o ./output/${NODE_DIR}.${ARCHIVE} | 
					
						
							|  |  |  |   NPM_PATH="" | 
					
						
							|  |  |  |   if [[ "${ARCHIVE}" == "zip" ]]; then | 
					
						
							|  |  |  |     cd ./output | 
					
						
							| 
									
										
										
										
											2021-01-06 14:13:01 +03:00
										 |  |  |     unzip -q ./${NODE_DIR}.zip | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  |     cd .. | 
					
						
							|  |  |  |     cp ./output/${NODE_DIR}/node.exe ./output/playwright-${SUFFIX}/ | 
					
						
							|  |  |  |     NPM_PATH="node_modules/npm/bin/npm-cli.js" | 
					
						
							|  |  |  |   elif [[ "${ARCHIVE}" == "tar.gz" ]]; then | 
					
						
							| 
									
										
										
										
											2021-01-06 14:13:01 +03:00
										 |  |  |     tar -xzf ./output/${NODE_DIR}.tar.gz -C ./output/ | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  |     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}/ | 
					
						
							| 
									
										
										
										
											2021-06-02 14:01:05 -07:00
										 |  |  |   cp ./output/api.json ./output/playwright-${SUFFIX}/package/ | 
					
						
							|  |  |  |   cp ./output/protocol.yml ./output/playwright-${SUFFIX}/package/ | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  |   cd ./output/playwright-${SUFFIX}/package | 
					
						
							| 
									
										
										
										
											2021-11-10 11:21:25 +01:00
										 |  |  |   PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 node "../../${NODE_DIR}/${NPM_PATH}" install --production --ignore-scripts | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  |   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 | 
					
						
							| 
									
										
										
										
											2022-03-18 13:03:09 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   # 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 {} + | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-06 14:13:01 +03:00
										 |  |  |   zip -q -r ../playwright-${PACKAGE_VERSION}-${SUFFIX}.zip . | 
					
						
							| 
									
										
										
										
											2021-01-05 14:04:47 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-16 15:14:11 +02:00
										 |  |  | build "node-v${NODE_VERSION}-darwin-x64" "mac" "tar.gz" "run-driver-posix.sh" | 
					
						
							| 
									
										
										
										
											2021-11-10 01:19:05 -08:00
										 |  |  | build "node-v${NODE_VERSION}-darwin-arm64" "mac-arm64" "tar.gz" "run-driver-posix.sh" | 
					
						
							| 
									
										
										
										
											2021-09-16 15:14:11 +02:00
										 |  |  | build "node-v${NODE_VERSION}-linux-x64" "linux" "tar.gz" "run-driver-posix.sh" | 
					
						
							| 
									
										
										
										
											2021-11-10 01:19:05 -08:00
										 |  |  | build "node-v${NODE_VERSION}-linux-arm64" "linux-arm64" "tar.gz" "run-driver-posix.sh" | 
					
						
							| 
									
										
										
										
											2021-09-16 15:14:11 +02:00
										 |  |  | build "node-v${NODE_VERSION}-win-x64" "win32_x64" "zip" "run-driver-win.cmd" |