-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathworkflow.config.js
120 lines (118 loc) · 3.47 KB
/
workflow.config.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
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
/**
* @typedef {import("@gzteacher/workflow/types").WorkFlowConfig} WorkFlowConfig
*/
/**
* @type {WorkFlowConfig}
*/
const config = {
/**
* tag 相关配置
*
* 支持格式:{version}-{env}-{order}
*/
tag: {
/**
* 配置获取 tag 格式 {version}-{env}-{order} 中 version 值的方法。
*
* 默认取上一个标签中 version 的值。
* @default ({ preVersion }) => preVersion
*/
getVersion: ({ preVersion }) => preVersion,
/**
* 配置获取 tag 格式 {version}-{env}-{order} 中 env 值的方法。
*
* 默认取上一个标签中 env 的值。
* @default ({ preEnv }) => preEnv
*/
getEnv: ({ branchName }) => {
if (branchName === 'master') {
return 'prod';
}
return 'dev';
},
/**
* 配置获取 tag 格式 {version}-{env}-{order} 中 order 值的方法。
*
* 默认取上一个标签中 order 的值加 1。
* @default ({ preOrder }) => `${Number(preOrder) + 1}`
*/
getOrder: ({ preOrder }) => `${Number(preOrder) + 1}`,
/**
* 配置获取 tagName 的方法。结果将替换原 {version}-{env}-{order} 格式的组装。
*
* @default undefined
*/
getTagName: ({ preVersion, preEnv, preOrder }) => {
const order = Number(preOrder) + 1;
return `${preVersion}-${preEnv}-${order}`;
},
/**
* 配置获取 commit 内容的方法。
* @default ({ tagName }) => `chore: release ${tagName}`
*/
getMsg: ({ tagName }) => `🔖 ${tagName}`,
/**
* 配置获取版本号文件名的方法,`false` 时关闭更新版本号文件的行为。
* @default "VERSION"
*/
getVersionFileName: ({ branchName }) => {
if (branchName !== 'master') {
return 'VERSION.DEV';
}
return 'VERSION';
},
/**
* 配置获取第一个 tag 名的方法,将在仓库还没有 tag 记录时使用。
*
* `undefined` 时不自动提交第一个 tag。
* @default undefined
*/
getFirstTagName: ({ branchName }) => {
if (branchName === 'master') {
return '1.0.0-prod-1';
}
return '1.0.0-dev-1';
},
/**
* 允许触发 tag 流程的分支名。
*
* `undefined` 时不限制分支名。
* @default undefined
*/
allowBranchs: ['master', 'dev', 'test'],
},
/**
* 企业微信消息通知相关配置
* @see https://developer.work.weixin.qq.com/document/path/91770
*/
notify: {
/**
* 配置获取消息机器人 webhook 的方法。
*
* 添加机器人方法: https://developer.work.weixin.qq.com/document/path/91770
*
* `undefined` 时不发送消息。
* @default undefined
*/
getWebhookUrl: () => 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=<your key>',
/**
* 配置获取消息内容的方法。支持 md 格式。
*
* `undefined` 时不发送消息。
* @see https://developer.work.weixin.qq.com/document/path/91770
* @default undefined
*/
getContent: ({ username, tagName }) => `前端项目正式环境更新。\n
>项目:<font color="comment">前端项目名</font>
>执行人:<font color="comment">${username}</font>
>TAG:<font color="comment">${tagName}</font>`,
/**
* 允许触发消息通知流程的分支名。
*
* `undefined` 时不限制分支名。
* @default undefined
*/
allowBranchs: ['master'],
},
};
module.exports = config;