-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathnextVersion.js
executable file
·75 lines (70 loc) · 1.54 KB
/
nextVersion.js
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
const stream = require('stream')
run()
async function run() {
const { default: semanticRelease } = await import('semantic-release')
const config = {
dryRun: true,
branches: ['main', 'next'],
plugins: [
[
'@semantic-release/commit-analyzer',
{
releaseRules: [
{
breaking: true,
release: 'major',
},
{
type: 'feat',
release: 'minor',
},
{
type: 'fix',
release: 'patch',
},
{
type: 'docs',
scope: 'README',
release: 'patch',
},
{
type: 'chore',
release: 'patch',
},
],
parserOpts: {
noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES', 'BREAKING'],
},
},
],
],
}
const stdoutBuffer = new stream.Writable({
write: (chunk, encoding, next) => {
next()
},
})
const stderrBuffer = new stream.Writable({
write: (chunk, encoding, next) => {
next()
},
})
try {
const result = await semanticRelease(config, {
cwd: process.cwd(),
env: { ...process.env },
stdout: stdoutBuffer,
stderr: stderrBuffer,
})
if (result) {
const { nextRelease } = result
console.log(nextRelease.version)
} else {
console.log('No result')
process.exit(1)
}
} catch (err) {
console.error(err)
process.exit(1)
}
}