-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrelease.config.cjs
More file actions
119 lines (107 loc) · 3.2 KB
/
release.config.cjs
File metadata and controls
119 lines (107 loc) · 3.2 KB
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
// release.config.cjs
module.exports = {
branches: [
"main",
{ name: "next", prerelease: true },
{ name: "develop", prerelease: "beta" },
],
// Debug mode فقط در محیط local
debug: !process.env.CI,
plugins: [
// 1. تحلیل commit ها
[
"@semantic-release/commit-analyzer",
{
preset: "angular",
releaseRules: [
// Features and fixes
{ type: "feat", release: "minor" },
{ type: "feature", release: "minor" },
{ type: "fix", release: "patch" },
{ type: "bugfix", release: "patch" },
// Documentation and improvements
{ type: "docs", release: "patch" },
{ type: "doc", release: "patch" },
{ type: "refactor", release: "patch" },
{ type: "perf", release: "patch" },
{ type: "style", release: "patch" },
// Security and dependencies
{ type: "security", release: "patch" },
{ type: "deps", release: "patch" },
{ type: "dep", release: "patch" },
// Breaking changes
{ breaking: true, release: "major" },
// No release for these
{ type: "chore", release: false },
{ type: "test", release: false },
{ type: "ci", release: false },
{ type: "build", release: false },
{ type: "revert", release: false },
],
parserOpts: {
noteKeywords: ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"],
headerPattern: /^(\w*)(?:\((.*)\))?: (.*)$/,
headerCorrespondence: ["type", "scope", "subject"],
},
},
],
// 2. تولید release notes
[
"@semantic-release/release-notes-generator",
{
preset: "angular",
writerOpts: {
commitsSort: ["subject", "scope"],
},
},
],
// 3. بهروزرسانی CHANGELOG.md
[
"@semantic-release/changelog",
{
changelogFile: "CHANGELOG.md",
changelogTitle:
"# 📝 Changelog\n\nAll notable changes to this project will be documented in this file.",
},
],
// 4. بهروزرسانی package.json و انتشار در NPM
[
"@semantic-release/npm",
{
npmPublish: true,
tarballDir: "dist",
},
],
// 5. ایجاد GitHub release
[
"@semantic-release/github",
{
assets: [
{
path: "dist/*.tgz",
label: "Package tarball",
},
{
path: "CHANGELOG.md",
label: "Changelog",
},
],
successComment:
"🎉 This issue has been resolved in version ${nextRelease.version}",
labels: ["released"],
},
],
// 6. Commit فایلهای بهروزرسانی شده (باید آخرین باشد)
[
"@semantic-release/git",
{
assets: ["CHANGELOG.md", "package.json", "package-lock.json"],
message:
"chore(release): 🚀 ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}",
},
],
],
// تنظیمات اضافی
repositoryUrl: "https://github.com/mostafarastegar/react-constore.git",
tagFormat: "v${version}",
};