chore: fix puppeteer@next race condition (#3209)
When we merge commits to master, Travis kicks job to build a new commit and to publish new version of puppeteer@next. If two commits are landed in almost the same time, then travis starts two parallel jobs to build each commit. This race condition results in the incorrect puppeteer@next revision. This patch teaches apply_next_version.js to verify if current HEAD is matching upstream HEAD. If it doesn't, the predeploy hook fails which (hopefully) aborts deployment. Fixes #2925.
This commit is contained in:
parent
f230722ff0
commit
b7e922b5f5
@ -1,5 +1,20 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
const child_process = require('child_process');
|
||||||
|
|
||||||
|
// 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 = `git ls-remote https://github.com/GoogleChrome/puppeteer --tags master | cut -f1`;
|
||||||
|
const current_sha = `git rev-parse HEAD`;
|
||||||
|
const command = `if [[ $(${upstream_sha}) == $(${current_sha}) ]]; then echo "yes"; else echo "no"; fi`;
|
||||||
|
const output = child_process.execSync(command).toString('utf8');
|
||||||
|
if (output.trim() !== 'yes') {
|
||||||
|
console.log('REFUSING TO PUBLISH: this is not tip-of-tree!');
|
||||||
|
process.exit(1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const package = require('../package.json');
|
const package = require('../package.json');
|
||||||
let version = package.version;
|
let version = package.version;
|
||||||
|
Loading…
Reference in New Issue
Block a user