|
|
@@ -1,27 +1,53 @@
|
|
|
#!/usr/bin/env groovy
|
|
|
import com.example.FeishuNotifier
|
|
|
|
|
|
-def call(String webhookUrl, String status) {
|
|
|
- // 1. 采集常规信息
|
|
|
+// 公共采集逻辑
|
|
|
+@NonCPS
|
|
|
+private Map gatherCommonInfo() {
|
|
|
def duration = currentBuild.durationString.replace(' and counting', '')
|
|
|
def commitMsg = sh(returnStdout: true, script: "git log -1 --pretty=%B").trim()
|
|
|
def author = sh(returnStdout: true, script: "git log -1 --pretty=%an").trim()
|
|
|
def commitTime = sh(returnStdout: true, script: "git log -1 --pretty=%ci").trim()
|
|
|
- def branch = env.brach ?: env.GIT_BRANCH ?: env.BRANCH_NAME ?: 'unknown'
|
|
|
+ def branch = env.BRANCH_NAME ?: env.GIT_BRANCH ?: 'unknown'
|
|
|
+ def buildUrl = env.BUILD_URL.replace('http://68.79.46.88:8080', 'https://jenkins.adwebcloud.com')
|
|
|
+ return [
|
|
|
+ duration : duration,
|
|
|
+ commitMsg: commitMsg,
|
|
|
+ author : author,
|
|
|
+ commitTime: commitTime,
|
|
|
+ branch : branch,
|
|
|
+ buildUrl : buildUrl
|
|
|
+ ]
|
|
|
+}
|
|
|
|
|
|
- // 2. 把原始 BUILD_URL 改成走 Nginx 代理的 https 域名
|
|
|
- def buildUrl = env.BUILD_URL.replace('http://68.79.46.88:8080', 'https://jenkins.adwebcloud.com')
|
|
|
+// 任务开始时调用
|
|
|
+def start(String webhookUrl) {
|
|
|
+ def info = gatherCommonInfo()
|
|
|
+ new FeishuNotifier(this, webhookUrl).send(
|
|
|
+ 'START', // 自定义状态
|
|
|
+ env.JOB_NAME,
|
|
|
+ env.BUILD_NUMBER,
|
|
|
+ info.buildUrl,
|
|
|
+ '0s', // 刚开始,持续时间为 0
|
|
|
+ info.branch,
|
|
|
+ info.commitMsg,
|
|
|
+ info.author,
|
|
|
+ info.commitTime
|
|
|
+ )
|
|
|
+}
|
|
|
|
|
|
- // 3. 发送飞书消息
|
|
|
+// 任务结束时调用(就是你现在的 call)
|
|
|
+def call(String webhookUrl, String status) {
|
|
|
+ def info = gatherCommonInfo()
|
|
|
new FeishuNotifier(this, webhookUrl).send(
|
|
|
status,
|
|
|
env.JOB_NAME,
|
|
|
env.BUILD_NUMBER,
|
|
|
- buildUrl,
|
|
|
- duration,
|
|
|
- branch,
|
|
|
- commitMsg,
|
|
|
- author,
|
|
|
- commitTime
|
|
|
+ info.buildUrl,
|
|
|
+ info.duration,
|
|
|
+ info.branch,
|
|
|
+ info.commitMsg,
|
|
|
+ info.author,
|
|
|
+ info.commitTime
|
|
|
)
|
|
|
}
|