| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | set -e | 
					
						
							| 
									
										
										
										
											2020-03-02 18:35:04 -08:00
										 |  |  | set -x | 
					
						
							| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 13:18:15 -07:00
										 |  |  | function cleanup { | 
					
						
							|  |  |  |   # Cleanup all possibly created package tars. | 
					
						
							|  |  |  |   [[ ! -z "${PLAYWRIGHT_TGZ}" ]] && rm -rf "${PLAYWRIGHT_TGZ}" | 
					
						
							|  |  |  |   [[ ! -z "${PLAYWRIGHT_CORE_TGZ}" ]] && rm -rf "${PLAYWRIGHT_CORE_TGZ}" | 
					
						
							|  |  |  |   [[ ! -z "${PLAYWRIGHT_WEBKIT_TGZ}" ]] && rm -rf "${PLAYWRIGHT_WEBKIT_TGZ}" | 
					
						
							|  |  |  |   [[ ! -z "${PLAYWRIGHT_FIREFOX_TGZ}" ]] && rm -rf "${PLAYWRIGHT_FIREFOX_TGZ}" | 
					
						
							|  |  |  |   [[ ! -z "${PLAYWRIGHT_CHROMIUM_TGZ}" ]] && rm -rf "${PLAYWRIGHT_CHROMIUM_TGZ}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | trap "cleanup; cd $(pwd -P)" EXIT | 
					
						
							| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  | cd "$(dirname $0)" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ $1 == "--help" ]]; then | 
					
						
							|  |  |  |   echo "usage: $(basename $0) [--release|--tip-of-tree]" | 
					
						
							|  |  |  |   echo | 
					
						
							|  |  |  |   echo "Publishes all packages." | 
					
						
							|  |  |  |   echo | 
					
						
							|  |  |  |   echo "--release                publish @latest version of all packages" | 
					
						
							|  |  |  |   echo "--tip-of-tree            publish @next version of all packages" | 
					
						
							|  |  |  |   exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ $# < 1 ]]; then | 
					
						
							|  |  |  |   echo "Please specify either --release or --tip-of-tree" | 
					
						
							|  |  |  |   exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ! command -v npm >/dev/null; then | 
					
						
							|  |  |  |   echo "ERROR: NPM is not found" | 
					
						
							|  |  |  |   exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ! npm whoami >/dev/null 2>&1; then | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  |   echo "ERROR: NPM is not logged in." | 
					
						
							| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  |   exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd .. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  | NPM_PUBLISH_TAG="next" | 
					
						
							|  |  |  | VERSION=$(node -e 'console.log(require("./package.json").version)') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  | if [[ $1 == "--release" ]]; then | 
					
						
							|  |  |  |   if [[ -n $(git status -s) ]]; then | 
					
						
							|  |  |  |     echo "ERROR: git status is dirty; some uncommitted changes or untracked files" | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  |   # Ensure package version does not contain dash. | 
					
						
							|  |  |  |   if [[ "${VERSION}" == *-* ]]; then | 
					
						
							|  |  |  |     echo "ERROR: cannot publish pre-release version with --release flag" | 
					
						
							| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  |   NPM_PUBLISH_TAG="latest" | 
					
						
							| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  | elif [[ $1 == "--tip-of-tree" ]]; then | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  |   # Ensure package version contains dash. | 
					
						
							|  |  |  |   if [[ "${VERSION}" != *-* ]]; then | 
					
						
							|  |  |  |     echo "ERROR: cannot publish release version with --tip-of-tree flag" | 
					
						
							| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   # Ensure this is actually tip-of-tree. | 
					
						
							| 
									
										
										
										
											2020-04-22 17:02:38 -07:00
										 |  |  |   UPSTREAM_SHA=$(git ls-remote https://github.com/microsoft/playwright --tags $(git rev-parse --abbrev-ref HEAD) | cut -f1) | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  |   CURRENT_SHA=$(git rev-parse HEAD) | 
					
						
							|  |  |  |   if [[ "${UPSTREAM_SHA}" != "${CURRENT_SHA}" ]]; then | 
					
						
							| 
									
										
										
										
											2020-08-13 10:39:45 -07:00
										 |  |  |     echo "FYI: REFUSING TO PUBLISH since this is not tip-of-tree" | 
					
						
							|  |  |  |     exit 0 | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  |   fi | 
					
						
							|  |  |  |   NPM_PUBLISH_TAG="next" | 
					
						
							| 
									
										
										
										
											2020-03-02 17:40:48 -08:00
										 |  |  | else | 
					
						
							|  |  |  |   echo "unknown argument - '$1'" | 
					
						
							|  |  |  |   exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 13:18:15 -07:00
										 |  |  | PLAYWRIGHT_TGZ="$(node ./packages/build_package.js playwright ./playwright.tgz)" | 
					
						
							|  |  |  | PLAYWRIGHT_CORE_TGZ="$(node ./packages/build_package.js playwright-core ./playwright-core.tgz)" | 
					
						
							|  |  |  | PLAYWRIGHT_WEBKIT_TGZ="$(node ./packages/build_package.js playwright-webkit ./playwright-webkit.tgz)" | 
					
						
							|  |  |  | PLAYWRIGHT_FIREFOX_TGZ="$(node ./packages/build_package.js playwright-firefox ./playwright-firefox.tgz)" | 
					
						
							|  |  |  | PLAYWRIGHT_CHROMIUM_TGZ="$(node ./packages/build_package.js playwright-chromium ./playwright-chromium.tgz)" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 16:56:57 -07:00
										 |  |  | npm publish ${PLAYWRIGHT_TGZ}           --tag="${NPM_PUBLISH_TAG}" | 
					
						
							|  |  |  | npm publish ${PLAYWRIGHT_CORE_TGZ}      --tag="${NPM_PUBLISH_TAG}" | 
					
						
							|  |  |  | npm publish ${PLAYWRIGHT_WEBKIT_TGZ}    --tag="${NPM_PUBLISH_TAG}" | 
					
						
							|  |  |  | npm publish ${PLAYWRIGHT_FIREFOX_TGZ}   --tag="${NPM_PUBLISH_TAG}" | 
					
						
							|  |  |  | npm publish ${PLAYWRIGHT_CHROMIUM_TGZ}  --tag="${NPM_PUBLISH_TAG}" | 
					
						
							| 
									
										
										
										
											2020-04-20 17:45:29 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | echo "Done." |