Skip to content

Commit 57c45f0

Browse files
authored
fix: properly publish all packages on travis (#1187)
1 parent 342a2cf commit 57c45f0

File tree

4 files changed

+96
-64
lines changed

4 files changed

+96
-64
lines changed

.travis.yml

+4-47
Original file line numberDiff line numberDiff line change
@@ -37,50 +37,7 @@ script:
3737
jobs:
3838
include:
3939
- node_js: '12'
40-
after_success: npm run apply-next-version
41-
deploy:
42-
- provider: npm
43-
src: "."
44-
edge: true
45-
46-
on:
47-
branch: master
48-
tag: next
49-
api_token:
50-
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
51-
- provider: npm
52-
src: "packages/playwright-firefox"
53-
edge: true
54-
55-
on:
56-
branch: master
57-
tag: next
58-
api_token:
59-
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
60-
- provider: npm
61-
src: "packages/playwright-chromium"
62-
edge: true
63-
64-
on:
65-
branch: master
66-
tag: next
67-
api_token:
68-
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
69-
- provider: npm
70-
src: "packages/playwright-webkit"
71-
edge: true
72-
73-
on:
74-
branch: master
75-
tag: next
76-
api_token:
77-
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
78-
- provider: npm
79-
src: "packages/playwright"
80-
edge: true
81-
82-
on:
83-
branch: master
84-
tag: next
85-
api_token:
86-
secure: MzswBGmhSf8AR47qvqEfwWLvMx7+UDLXL0CeTXdHi7gRg6XPQjnUf5xtV9+3WEsCrsUFa0rFYNKLQ8M2Qmubc1/UltnVQubF00/ImIW6gMRQn5wyE0CPKb+DPdSj892wh0LwCXzaUr3e7NdDRcOSRlvyIuPwhVZLeua5Z01CcIKQ/DCFguXrrgURB73hrrM77CdcPW3Fjy3SKo2tilBM0LX8KdJFxPqBTNA0CZwUdSGDyvyG6Z2+/RdMTh7appRdydKbvNVfAfNMo0vYPAwb7V+Exmxox2d/XKq0KeZusn20g17rZRndha9NPx/vGQrROz8FjSZh0kyqLfvxYCkh0qa7sj+DHOrxZnXSoFp5mTq7zm25GP7lp+MRzcEx2gGhpwu6j2n6XeFA1EuDtjDneLqGunK1UZA49ooQEfZoQHqtgoYV19VizG0kB3Lv8SAr/8zGZNofOWHaGCEGrof5WIC2HUJNurqXqVU5r/UUOy6eW941W0FNidbDZUvTbcI33dUlvvss7kDs4lHEBT4Hw/6Uusb2RLE69RgvNj83OaJ+F8V8e88ge4weYKhlcftlNS05UTSZiZQySXjiXyzYLZiZLTjO5T4zBITSAIP9mTdgfTYTPqApskzZZ1Yn5h35YcP8nopkO0WtKfAiZRV3/i/n/OdM+w8yYH6XBfQ4Gdk=
40+
41+
after_success:
42+
- node utils/apply_next_version.js
43+
- ./utils/publish_all_packages.sh --tip-of-tree

package.json

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
"clean": "rimraf lib",
3333
"build": "node utils/runWebpack.js --mode='development' && tsc -p .",
3434
"watch": "node utils/runWebpack.js --mode='development' --watch --silent | tsc -w -p .",
35-
"apply-next-version": "node utils/apply_next_version.js",
3635
"version": "node utils/sync_package_versions.js && npm run doc"
3736
},
3837
"author": {

utils/apply_next_version.js

-16
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
const path = require('path');
2-
const fs = require('fs');
3-
const execSync = require('child_process').execSync;
4-
5-
// Compare current HEAD to upstream master SHA.
6-
// If they are not equal - refuse to publish since
7-
// we're not tip-of-tree.
8-
const upstream_sha = execSync(`git ls-remote https://github.com/Microsoft/playwright --tags master | cut -f1`).toString('utf8');
9-
const current_sha = execSync(`git rev-parse HEAD`).toString('utf8');
10-
if (upstream_sha.trim() !== current_sha.trim()) {
11-
console.log('REFUSING TO PUBLISH: this is not tip-of-tree!');
12-
process.exit(1);
13-
return;
14-
}
15-
16-
171
const package = require('../package.json');
182
let version = package.version;
193
const dashIndex = version.indexOf('-');

utils/publish_all_packages.sh

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
#!/bin/bash
2+
set -e
3+
set +x
4+
5+
trap "cd $(pwd -P)" EXIT
6+
cd "$(dirname $0)"
7+
8+
if [[ $1 == "--help" ]]; then
9+
echo "usage: $(basename $0) [--release|--tip-of-tree]"
10+
echo
11+
echo "Publishes all packages."
12+
echo
13+
echo "--release publish @latest version of all packages"
14+
echo "--tip-of-tree publish @next version of all packages"
15+
exit 1
16+
fi
17+
18+
if [[ $# < 1 ]]; then
19+
echo "Please specify either --release or --tip-of-tree"
20+
exit 1
21+
fi
22+
23+
if [[ $(git rev-parse --abbrev-ref HEAD) != "master" ]]; then
24+
echo "ERROR: Cannot publish from branch other then 'master'"
25+
exit 1
26+
fi
27+
28+
if ! command -v npm >/dev/null; then
29+
echo "ERROR: NPM is not found"
30+
exit 1
31+
fi
32+
33+
if [[ (-n $CI) && (-n $NPM_AUTH_TOKEN) && (! -f $HOME/.npmrc) ]]; then
34+
echo "//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}" > $HOME/.npmrc
35+
fi
36+
37+
if ! npm whoami >/dev/null 2>&1; then
38+
echo "ERROR: NPM failed to log in"
39+
exit 1
40+
fi
41+
42+
UPSTREAM_SHA=$(git ls-remote https://github.com/microsoft/playwright --tags master | cut -f1)
43+
CURRENT_SHA=$(git rev-parse HEAD)
44+
45+
if [[ "${UPSTREAM_SHA}" != "${CURRENT_SHA}" ]]; then
46+
echo "REFUSING TO PUBLISH: this is not tip-of-tree"
47+
exit 1
48+
fi
49+
50+
cd ..
51+
52+
if [[ $1 == "--release" ]]; then
53+
if [[ -n $CI ]]; then
54+
echo "Found \$CI env - cannot publish real release from CI"
55+
exit 1
56+
fi
57+
if [[ -n $(git status -s) ]]; then
58+
echo "ERROR: git status is dirty; some uncommitted changes or untracked files"
59+
exit 1
60+
fi
61+
VERSION=$(node -e 'console.log(require("./package.json").version)')
62+
echo -n "Publish Playwright v${VERSION} (y/N)? "
63+
read ANSWER
64+
if [[ "$ANSWER" != "y" ]]; then
65+
echo "Bailing out."
66+
exit 1
67+
fi
68+
69+
npm run clean
70+
npm publish .
71+
npm publish packages/playwright-firefox
72+
npm publish packages/playwright-webkit
73+
npm publish packages/playwright-chromium
74+
npm publish packages/playwright
75+
echo "Done."
76+
elif [[ $1 == "--tip-of-tree" ]]; then
77+
if [[ -z $CI ]]; then
78+
echo "Did not find \$CI env - cannot publish tip-of-tree release not from CI"
79+
exit 1
80+
fi
81+
npm run clean
82+
npm publish . --tag="next"
83+
npm publish packages/playwright-firefox --tag="next"
84+
npm publish packages/playwright-webkit --tag="next"
85+
npm publish packages/playwright-chromium --tag="next"
86+
npm publish packages/playwright --tag="next"
87+
echo "Done."
88+
else
89+
echo "unknown argument - '$1'"
90+
exit 1
91+
fi
92+

0 commit comments

Comments
 (0)