| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/env groovy
- import com.example.FeishuNotifier
- // 公共采集逻辑
- @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.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
- ]
- }
- // 任务开始时调用
- 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
- )
- }
- // 任务结束时调用(就是你现在的 call)
- def call(String webhookUrl, String status) {
- def info = gatherCommonInfo()
- new FeishuNotifier(this, webhookUrl).send(
- status,
- env.JOB_NAME,
- env.BUILD_NUMBER,
- info.buildUrl,
- info.duration,
- info.branch,
- info.commitMsg,
- info.author,
- info.commitTime
- )
- }
|