|
2 | 2 | "use strict";
|
3 | 3 |
|
4 | 4 | require('shelljs/global');
|
5 |
| -let _ = require('lodash'); |
6 |
| -var argv = require('yargs') |
7 |
| - .usage('Usage: $0 <packages> [options]') |
8 |
| - .command('packages', '[optional] Comma separated list of packages to build.') |
9 |
| - .alias('c', 'no-changelog') |
10 |
| - .describe('c', 'Do not update CHANGELOG.md') |
11 |
| - .alias('b', 'branch') |
12 |
| - .nargs('b', 1) |
13 |
| - .describe('b', 'Specify non-master branch to release from') |
14 |
| - .help('h') |
15 |
| - .alias('h', 'help') |
16 |
| - .example('$0 --no-changelog --branch feature', 'Release all packages from "feature" branch') |
17 |
| - .argv; |
| 5 | +let readlineSync = require('readline-sync'); |
| 6 | +let util = require('./util'); |
| 7 | +let _exec = util._exec; |
18 | 8 |
|
19 |
| -let path = require('path'); |
20 |
| -let _exec = require('./util')._exec; |
21 | 9 | let version = require('../package.json').version;
|
22 |
| -let rootDir = path.resolve(__dirname, '..'); |
23 |
| -let commands = []; // List of commands that will commit the release |
24 | 10 |
|
25 |
| -cd(rootDir); |
26 |
| - |
27 |
| -let knownProjects = ['core', 'ng1', 'ng1-bower', 'ng2']; |
28 |
| -let projects = knownProjects.slice(); |
29 |
| - |
30 |
| -projects.forEach(project => { |
31 |
| - if (knownProjects.indexOf(project) === -1) |
32 |
| - throw new Error(`Unknwon project: ${project}; try: ${knownProjects.join(',')}`); |
33 |
| -}); |
34 |
| - |
35 |
| -projects = projects.reduce((memo, key) => { memo[key] = true; return memo; }, {}); |
36 |
| - |
37 |
| - |
38 |
| -echo('--> Checking working copy status...'); |
39 |
| -_exec(`node ${rootDir}/scripts/ensure_clean_master.js ${argv.branch || 'master'}`); |
40 |
| - |
41 |
| -commands.push(``); |
42 |
| -commands.push(``); |
43 |
| -commands.push(`################# To perform the release ################# `); |
44 |
| - commands.push(``); |
45 |
| - |
46 |
| -if (!argv['no-changelog']) { |
47 |
| - echo('--> Updating CHANGELOG...'); |
48 |
| - _exec(`node ${rootDir}/scripts/update_changelog.js`); |
49 |
| - |
50 |
| - echo('--> Committing changelog...'); |
51 |
| - commands.push(`git commit -m "chore(*): Release prep - Update CHANGELOG" CHANGELOG.md`); |
| 11 | +if (!readlineSync.keyInYN('Did you bump the version number in package.json?')) { |
| 12 | + process.exit(1); |
52 | 13 | }
|
53 | 14 |
|
54 |
| -commands.push(`git tag ${version}`); |
55 |
| -commands.push(`git push origin ${version}`); |
56 |
| - |
57 |
| - |
58 |
| -Object.keys(projects).map(project => { |
59 |
| - echo(`Packaging ${project} for npm...`); |
60 |
| - _exec(`node ${rootDir}/scripts/package.js ${project}`); |
61 |
| - var pkgPath = path.resolve(rootDir, "build_packages", project); |
62 |
| - cd(pkgPath); |
63 |
| - |
64 |
| - if (test('-f', './package.json')) { |
65 |
| - commands.push(`echo To publish ${project} to npm:`); |
66 |
| - commands.push(`cd ${pkgPath}`); |
67 |
| - commands.push(`npm publish`); |
68 |
| - commands.push(``); |
69 |
| - } |
| 15 | +if (!readlineSync.keyInYN('Did you update CHANGELOG.md using scripts/update_changelog.js?')) { |
| 16 | + process.exit(1); |
| 17 | +} |
70 | 18 |
|
71 |
| - if (test('-f', './bower.json')) { |
72 |
| - commands.push(`echo To publish ${project} to bower:`); |
73 |
| - commands.push(`cd ${pkgPath}`); |
74 |
| - commands.push(`node ${rootDir}/scripts/publish_bower.js`); |
75 |
| - commands.push(``); |
76 |
| - } |
77 |
| -}); |
78 |
| - |
79 |
| -commands.forEach(line => echo(line)); |
| 19 | +if (!readlineSync.keyInYN('Did you commit/push all changes back to origin?')) { |
| 20 | + process.exit(1); |
| 21 | +} |
80 | 22 |
|
| 23 | +util.ensureCleanMaster('master'); |
| 24 | +_exec(`npm publish`); |
| 25 | +_exec(`git tag ${version}`); |
| 26 | +_exec(`git push origin ${version}`); |
81 | 27 |
|
0 commit comments