-
Notifications
You must be signed in to change notification settings - Fork 164
/
.releaserc.cjs
102 lines (88 loc) · 2.21 KB
/
.releaserc.cjs
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
This file contains the configuration for semantic release, the library we use to tag the correct
semantic version numbers onto releases. We have two release paths, one on main and one on release branch.
In the code below we check the env variable RELEASE_BRANCH to decide what we should do. As of
the time of this file semantic release does not support specifying a config file from their CLI,
so this is the only we can have dynamic configs based on branch.
To test run this file, first get a github token at https://github.com/settings/tokens
and add it to the GITHUB_TOKEN env variable then specify what branch you want to run (main or release) under RELEASE_BRANCH
$ export GITHUB_TOKEN=<token>
$ export RELEASE_BRANCH=<main or release>
$ run yarn run semantic-release -d
*/
const commitAnalyzerSetting = [
'@semantic-release/commit-analyzer',
{
preset: 'angular',
releaseRules: [
{
type: 'feat',
release: 'minor',
},
{
type: '*',
release: 'patch',
},
],
parserOpts: {
noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],
},
},
];
const githubSetting = [
'@semantic-release/github',
{
assets: [{ path: 'dist/index.js', label: 'SDK Distributable' }],
failTitle: false,
successComment: false,
failComment: false,
labels: false,
},
];
const gitSetting = [
'@semantic-release/git',
{
assets: ['package.json'],
message:
'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}',
},
];
const npmRelease = [
'@semantic-release/npm',
{
npmPublish: true,
},
];
const changelogGen = ['@semantic-release/changelog', {}];
const releaseNotesGen = ['@semantic-release/release-notes-generator', {}];
let plugins;
if (process.env && process.env.BRANCH_NAME === 'release') {
plugins = [
commitAnalyzerSetting,
githubSetting,
changelogGen,
releaseNotesGen,
npmRelease,
gitSetting,
];
} else {
plugins = [
commitAnalyzerSetting,
githubSetting,
changelogGen,
releaseNotesGen,
npmRelease,
];
}
module.exports = {
branches: [
{
name: 'release',
},
{
name: 'master',
prerelease: 'alpha',
},
],
plugins,
};