-
Notifications
You must be signed in to change notification settings - Fork 92
/
release.config.cjs
123 lines (118 loc) · 4.15 KB
/
release.config.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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// Store the current branch in a variable
const branch = process.env.CURRENT_BRANCH || "master";
if (!branch) {
throw new Error("CURRENT_BRANCH not set");
}
const isBeta = branch === "beta";
const isMaster = branch === "master" || branch === "main";
/**
* @type {import("semantic-release").GlobalConfig}
*/
const config = {
branches: ["main", "master", { name: "beta", prerelease: true }],
plugins: [
[
"@semantic-release/exec",
{
// use semantic-release logger to print the branch name
prepareCmd: 'echo "Branch: ${branch}"',
},
],
[
"@semantic-release/commit-analyzer",
{
// Modify default release rules to include types that are not breaking change, feat, or fix as a patch release
// Default rules: https://github.com/semantic-release/commit-analyzer/blob/master/lib/default-release-rules.js
releaseRules: [
{
scope: "no-release",
release: false,
},
{
type: "build",
release: "patch",
},
{
type: "ci",
release: "patch",
},
{
type: "chore",
release: "patch",
},
{
type: "docs",
release: "patch",
},
{
type: "refactor",
release: "patch",
},
{
type: "style",
release: "patch",
},
// {
// type: "test",
// release: "patch",
// },
{
breaking: true,
release: "major",
},
],
},
],
[
"@semantic-release/release-notes-generator",
{
preset: "conventionalcommits",
presetConfig: {
types: [
{ type: "feat", section: "New Features" },
{ type: "fix", section: "Bug Fixes" },
{ type: "perf", section: "Performance Improvements", hidden: false },
{ type: "revert", section: "Commit Reverts", hidden: false },
{ type: "build", section: "Build System", hidden: false },
{ type: "ci", section: "Continuous Integration", hidden: false },
{ type: "chore", section: "Chores", hidden: false },
{ type: "docs", section: "Documentation", hidden: false },
{ type: "style", section: "Style Changes", hidden: false },
{ type: "refactor", section: "Code Refactoring", hidden: false },
{ type: "test", section: "Test Cases", hidden: true },
],
},
},
],
[
"@semantic-release/changelog",
{
changelogFile: isBeta ? "CHANGELOG-beta.md" : "CHANGELOG.md",
},
],
[
"@semantic-release/exec",
{
prepareCmd: 'echo "${nextRelease.version}" > latest',
},
],
[
"@semantic-release/git",
{
assets: ["CHANGELOG.md", "CHANGELOG-beta.md", "latest"],
message: "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}",
},
],
"@wizarrrr/semantic-release-discord",
[
"@wizarrrr/semantic-release-sentry-releases",
{
sourcemaps: "dist/apps/wizarr-frontend",
},
],
],
};
if (isMaster) {
config.plugins.splice(-2, 0, "@semantic-release/github");
}
module.exports = config;