fix: properly publish all packages on travis (#1187)
This commit is contained in:
parent
342a2cf5cc
commit
57c45f0d1f
51
.travis.yml
51
.travis.yml
|
|
@ -37,50 +37,7 @@ script:
|
|||
jobs:
|
||||
include:
|
||||
- node_js: '12'
|
||||
after_success: npm run apply-next-version
|
||||
deploy:
|
||||
- provider: npm
|
||||
src: "."
|
||||
edge: true
|
||||
email: aslushnikov@gmail.com
|
||||
on:
|
||||
branch: master
|
||||
tag: next
|
||||
api_token:
|
||||
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
|
||||
- provider: npm
|
||||
src: "packages/playwright-firefox"
|
||||
edge: true
|
||||
email: aslushnikov@gmail.com
|
||||
on:
|
||||
branch: master
|
||||
tag: next
|
||||
api_token:
|
||||
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
|
||||
- provider: npm
|
||||
src: "packages/playwright-chromium"
|
||||
edge: true
|
||||
email: aslushnikov@gmail.com
|
||||
on:
|
||||
branch: master
|
||||
tag: next
|
||||
api_token:
|
||||
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
|
||||
- provider: npm
|
||||
src: "packages/playwright-webkit"
|
||||
edge: true
|
||||
email: aslushnikov@gmail.com
|
||||
on:
|
||||
branch: master
|
||||
tag: next
|
||||
api_token:
|
||||
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
|
||||
- provider: npm
|
||||
src: "packages/playwright"
|
||||
edge: true
|
||||
email: aslushnikov@gmail.com
|
||||
on:
|
||||
branch: master
|
||||
tag: next
|
||||
api_token:
|
||||
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
|
||||
|
||||
after_success:
|
||||
- node utils/apply_next_version.js
|
||||
- ./utils/publish_all_packages.sh --tip-of-tree
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
"clean": "rimraf lib",
|
||||
"build": "node utils/runWebpack.js --mode='development' && tsc -p .",
|
||||
"watch": "node utils/runWebpack.js --mode='development' --watch --silent | tsc -w -p .",
|
||||
"apply-next-version": "node utils/apply_next_version.js",
|
||||
"version": "node utils/sync_package_versions.js && npm run doc"
|
||||
},
|
||||
"author": {
|
||||
|
|
|
|||
|
|
@ -1,19 +1,3 @@
|
|||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const execSync = require('child_process').execSync;
|
||||
|
||||
// Compare current HEAD to upstream master SHA.
|
||||
// If they are not equal - refuse to publish since
|
||||
// we're not tip-of-tree.
|
||||
const upstream_sha = execSync(`git ls-remote https://github.com/Microsoft/playwright --tags master | cut -f1`).toString('utf8');
|
||||
const current_sha = execSync(`git rev-parse HEAD`).toString('utf8');
|
||||
if (upstream_sha.trim() !== current_sha.trim()) {
|
||||
console.log('REFUSING TO PUBLISH: this is not tip-of-tree!');
|
||||
process.exit(1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
const package = require('../package.json');
|
||||
let version = package.version;
|
||||
const dashIndex = version.indexOf('-');
|
||||
|
|
|
|||
92
utils/publish_all_packages.sh
Executable file
92
utils/publish_all_packages.sh
Executable file
|
|
@ -0,0 +1,92 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set +x
|
||||
|
||||
trap "cd $(pwd -P)" EXIT
|
||||
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 [[ $(git rev-parse --abbrev-ref HEAD) != "master" ]]; then
|
||||
echo "ERROR: Cannot publish from branch other then 'master'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v npm >/dev/null; then
|
||||
echo "ERROR: NPM is not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ (-n $CI) && (-n $NPM_AUTH_TOKEN) && (! -f $HOME/.npmrc) ]]; then
|
||||
echo "//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}" > $HOME/.npmrc
|
||||
fi
|
||||
|
||||
if ! npm whoami >/dev/null 2>&1; then
|
||||
echo "ERROR: NPM failed to log in"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
UPSTREAM_SHA=$(git ls-remote https://github.com/microsoft/playwright --tags master | cut -f1)
|
||||
CURRENT_SHA=$(git rev-parse HEAD)
|
||||
|
||||
if [[ "${UPSTREAM_SHA}" != "${CURRENT_SHA}" ]]; then
|
||||
echo "REFUSING TO PUBLISH: this is not tip-of-tree"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
if [[ $1 == "--release" ]]; then
|
||||
if [[ -n $CI ]]; then
|
||||
echo "Found \$CI env - cannot publish real release from CI"
|
||||
exit 1
|
||||
fi
|
||||
if [[ -n $(git status -s) ]]; then
|
||||
echo "ERROR: git status is dirty; some uncommitted changes or untracked files"
|
||||
exit 1
|
||||
fi
|
||||
VERSION=$(node -e 'console.log(require("./package.json").version)')
|
||||
echo -n "Publish Playwright v${VERSION} (y/N)? "
|
||||
read ANSWER
|
||||
if [[ "$ANSWER" != "y" ]]; then
|
||||
echo "Bailing out."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
npm run clean
|
||||
npm publish .
|
||||
npm publish packages/playwright-firefox
|
||||
npm publish packages/playwright-webkit
|
||||
npm publish packages/playwright-chromium
|
||||
npm publish packages/playwright
|
||||
echo "Done."
|
||||
elif [[ $1 == "--tip-of-tree" ]]; then
|
||||
if [[ -z $CI ]]; then
|
||||
echo "Did not find \$CI env - cannot publish tip-of-tree release not from CI"
|
||||
exit 1
|
||||
fi
|
||||
npm run clean
|
||||
npm publish . --tag="next"
|
||||
npm publish packages/playwright-firefox --tag="next"
|
||||
npm publish packages/playwright-webkit --tag="next"
|
||||
npm publish packages/playwright-chromium --tag="next"
|
||||
npm publish packages/playwright --tag="next"
|
||||
echo "Done."
|
||||
else
|
||||
echo "unknown argument - '$1'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Loading…
Reference in a new issue