Skip to content

Commit 5e2d0c5

Browse files
committed
Merge pull request react-bootstrap#866 from AlexKVal/oneRelease
Make one tools/release with --docs option.
2 parents 1bc3253 + 95dbf0a commit 5e2d0c5

File tree

4 files changed

+46
-107
lines changed

4 files changed

+46
-107
lines changed

tools/release-docs

Lines changed: 0 additions & 8 deletions
This file was deleted.

tools/release-docs-scripts/release-docs.js

Lines changed: 0 additions & 70 deletions
This file was deleted.

tools/release-scripts/release.js

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import preConditions from './pre-conditions';
77
import versionBump from './version-bump';
88
import addChangelog from './changelog';
99
import repoRelease from './repo-release';
10+
import tag from './tag';
1011
import tagAndPublish from './tag-and-publish';
11-
import test from './test';
12+
import test, { lint } from '../release-scripts/test';
1213
import build from '../build';
1314

1415
import { bowerRepo, bowerRoot, tmpBowerRepo, docsRoot, docsRepo, tmpDocsRepo } from '../constants';
1516

1617
const yargsConf = yargs
17-
.usage('Usage: $0 <version> [--preid <identifier>]')
18+
.usage('Usage: $0 <version> [--preid <identifier>]\nor\nUsage: $0 --docs')
19+
.example('$0 --docs', 'Release only docs')
1820
.example('$0 minor --preid beta', 'Release with minor version bump with pre-release tag')
1921
.example('$0 major', 'Release with major version bump')
2022
.example('$0 major --dry-run', 'Release dry run with patch version bump')
@@ -23,6 +25,10 @@ const yargsConf = yargs
2325
.command('minor', 'Release minor')
2426
.command('major', 'Release major')
2527
.command('<version>', 'Release specific version')
28+
.option('docs', {
29+
demand: false,
30+
describe: 'Release only docs'
31+
})
2632
.option('preid', {
2733
demand: false,
2834
describe: 'pre-release identifier',
@@ -50,37 +56,23 @@ if (argv.dryRun) {
5056
let version;
5157

5258
const versionBumpOptions = {
53-
preid: argv.preid,
59+
preid: argv.docs ? 'docs' : argv.preid,
5460
type: argv._[0]
5561
};
5662

57-
if (versionBumpOptions.type === undefined && versionBumpOptions.preid === undefined) {
58-
console.log('Must provide either a version bump type, preid, or both'.red);
63+
if (!argv.docs && versionBumpOptions.type === undefined && versionBumpOptions.preid === undefined) {
64+
console.log('Must provide either --docs or a version bump type, preid (or both)'.red);
5965
console.log(yargsConf.help());
6066
process.exit(1);
6167
}
6268

63-
preConditions()
64-
.then(test)
65-
.then(versionBump(versionBumpOptions))
66-
.then(v => { version = v; })
67-
.then(() => addChangelog(version))
68-
.then(() => {
69-
return build(argv.verbose)
70-
.catch(err => {
71-
console.log('Build failed, reverting version bump'.red);
72-
73-
return exec('git reset HEAD .')
74-
.then(() => exec('git checkout package.json'))
75-
.then(() => exec('git checkout CHANGELOG.md'))
76-
.then(() => console.log('Version bump reverted'.red))
77-
.then(() => {
78-
throw err;
79-
});
80-
});
81-
})
82-
.then(() => safeExec(`git commit -m "Release v${version}"`))
83-
.then(() => {
69+
function tagAndRelease() {
70+
if (argv.docs) {
71+
return Promise.all([
72+
tag(version),
73+
repoRelease(docsRepo, docsRoot, tmpDocsRepo, version)
74+
]);
75+
} else {
8476
let releases = [
8577
tagAndPublish(version),
8678
repoRelease(bowerRepo, bowerRoot, tmpBowerRepo, version)
@@ -91,7 +83,33 @@ preConditions()
9183
}
9284

9385
return Promise.all(releases);
94-
})
86+
}
87+
}
88+
89+
function prepareRepo() {
90+
if (argv.docs) {
91+
return exec(`npm run docs-build${ argv.verbose ? ' -- --verbose' : '' }`);
92+
} else {
93+
return build(argv.verbose).then(() => addChangelog(version));
94+
}
95+
}
96+
97+
function revertAndThrow(err) {
98+
console.log('Build failed, reverting version bump'.red);
99+
100+
return exec('git reset HEAD .')
101+
.then(() => exec('git checkout package.json'))
102+
.then(() => console.log('Version bump reverted'.red))
103+
.then(() => { throw err; });
104+
}
105+
106+
preConditions()
107+
.then(argv.docs ? lint : test)
108+
.then(versionBump(versionBumpOptions))
109+
.then(v => { version = v; })
110+
.then(() => prepareRepo().catch(err => revertAndThrow(err)))
111+
.then(() => safeExec(`git commit -m "Release v${version}"`))
112+
.then(tagAndRelease)
95113
.then(() => console.log('Version '.cyan + `v${version}`.green + ' released!'.cyan))
96114
.catch(err => {
97115
if (!err.__handled) {

tools/release-scripts/repo-release.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ import path from 'path';
33
import fsp from 'fs-promise';
44
import { exec, safeExec } from '../exec';
55
import { copy } from '../fs-utils';
6-
7-
const repoRoot = path.resolve(__dirname, '../../');
6+
import { repoRoot } from '../constants';
87

98
const license = path.join(repoRoot, 'LICENSE');
109

0 commit comments

Comments
 (0)