Skip to content

Commit 44896e4

Browse files
feat(release): add changelog generation
1 parent 7afb16a commit 44896e4

File tree

7 files changed

+51
-14
lines changed

7 files changed

+51
-14
lines changed

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,10 @@ $ gulp build
127127
2. Run tests
128128
3. Build everything
129129
4. Bump the version in `package.json`
130-
5. Commit the version change
131-
6. Create a git tag
132-
7. Run `git push` to `upstream/master`
130+
5. Generate a changelog based on the git log
131+
6. Commit the version change & `CHANGELOG.md`
132+
7. Create a git tag
133+
8. Run `git push` to `upstream/master`
133134

134135
```bash
135136
# Major release
@@ -151,6 +152,12 @@ $ aegir-release --env node
151152
$ gulp release --env node
152153
```
153154

155+
You can generate a changelog for all versions by using `--first`
156+
157+
```bash
158+
$ aegir-relase --first
159+
```
160+
154161
## Other Notes
155162

156163
There is a badge.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"gulp": "^3.9.1",
4040
"gulp-babel": "^6.1.2",
4141
"gulp-bump": "^2.2.0",
42+
"gulp-conventional-changelog": "^1.1.0",
4243
"gulp-eslint": "^3.0.1",
4344
"gulp-filter": "^4.0.0",
4445
"gulp-git": "^1.10.0",
@@ -89,4 +90,4 @@
8990
"dignifiedquire <[email protected]>",
9091
"greenkeeperio-bot <[email protected]>"
9192
]
92-
}
93+
}

src/utils.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
const runSequence = require('run-sequence')
44
const $ = require('gulp-load-plugins')()
5+
const fs = require('fs')
56

67
// Workaround gulp not exiting if there are some
78
// resources not freed
@@ -34,3 +35,7 @@ exports.fail = (msg) => {
3435
$.util.log($.util.colors.red(msg))
3536
process.exit(1)
3637
}
38+
39+
exports.getVersion = () => {
40+
return JSON.parse(fs.readFileSync('./package.json', 'utf8')).version
41+
}

tasks/release/bump.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
const $ = require('gulp-load-plugins')()
44
const semver = require('semver')
5-
const fs = require('fs')
65
const _ = require('lodash')
76

7+
const getVersion = require('../../src/utils').getVersion
8+
89
function getType () {
910
if (_.includes($.util.env._, 'major')) return 'major'
1011
if (_.includes($.util.env._, 'minor')) return 'minor'
@@ -13,21 +14,13 @@ function getType () {
1314
return 'patch'
1415
}
1516

16-
function getCurrentVersion () {
17-
return JSON.parse(fs.readFileSync('./package.json', 'utf8')).version
18-
}
19-
2017
module.exports = (gulp, done) => {
2118
const type = getType()
22-
const newVersion = semver.inc(getCurrentVersion(), type)
19+
const newVersion = semver.inc(getVersion(), type)
2320

2421
$.util.log('Releasing %s', newVersion)
2522

2623
return gulp.src('./package.json')
2724
.pipe($.bump({version: newVersion}))
2825
.pipe(gulp.dest('./'))
29-
.pipe($.git.add())
30-
.pipe($.git.commit(`chore: release version v${newVersion}`, {args: '-n'}))
31-
.pipe($.filter('package.json'))
32-
.pipe($.tagVersion())
3326
}

tasks/release/changelog.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
'use strict'
2+
3+
const $ = require('gulp-load-plugins')()
4+
5+
module.exports = (gulp, done) => {
6+
const releaseCount = $.util.env.first ? 0 : 1
7+
8+
return gulp.src('CHANGELOG.md')
9+
.pipe($.conventionalChangelog({
10+
preset: 'angular',
11+
releaseCount
12+
}))
13+
.pipe(gulp.dest('./'))
14+
}

tasks/release/commit.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
'use strict'
2+
3+
const $ = require('gulp-load-plugins')()
4+
5+
const getVersion = require('../../src/utils').getVersion
6+
7+
module.exports = (gulp, done) => {
8+
const newVersion = getVersion()
9+
10+
return gulp.src(['package.json', 'CHANGELOG.md'])
11+
.pipe($.git.add())
12+
.pipe($.git.commit(`chore: release version v${newVersion}`, {args: '-n'}))
13+
.pipe($.filter('package.json'))
14+
.pipe($.tagVersion())
15+
}

tasks/release/post-build.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ module.exports = (gulp, done) => {
66
runSequence.use(gulp)(
77
'release:contributors',
88
'release:bump',
9+
'release:changelog',
10+
'release:commit',
911
'release:push',
1012
'release:publish',
1113
done

0 commit comments

Comments
 (0)