This repository was archived by the owner on Sep 30, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun-mergeversion
More file actions
executable file
·33 lines (27 loc) · 1.36 KB
/
run-mergeversion
File metadata and controls
executable file
·33 lines (27 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#! /usr/bin/env node
const { EOL } = require('os');
const { $, $$, exit } = require('./helpers');
const { getRepoInfo } = require('./repo');
const mergePullRequest = require('./merge-pull-request');
const [/*node*/, /*file*/, releaseVersion] = process.argv
if (!releaseVersion) {
exit(`release version is required`)
}
const { remote, releaseBranch, productionBranch, prTitle, defaultBranch, milestone } = getRepoInfo(releaseVersion);
// find current pull request for version release
const rawResults = $(`hub pr list --head ${releaseBranch} --base ${productionBranch} -f "%I"`);
const [prId, ...others] = rawResults.split(EOL);
const arrow = "\u2190";
if (typeof prId !== 'string' || prId.length === 0) {
exit(`no open pull request for ${productionBranch} ${arrow} ${releaseBranch}`);
} else if (others.length > 0) {
exit(`multiple pull requests open for ${productionBranch} ${arrow} ${releaseBranch}`);
}
// merge version release into production branch
mergePullRequest(prId);
// update/create release branch to match production branch
$$(`hub checkout -B ${releaseBranch} ${productionBranch}`);
// re-publish version branch
$$(`hub push --follow-tags --set-upstream ${remote} ${releaseBranch}`);
// create pull request to merge production commits into default branch
$$(`hub pull-request --no-edit --message "${prTitle}" --base "${defaultBranch}" --milestone "${milestone}"`);