| 123456789101112131415161718192021222324252627282930313233 |
- def call(String webhook, String status) {
- def info = gatherCommonInfo()
- new com.example.FeishuNotifier(this, webhook).send(
- status,
- env.JOB_NAME,
- env.BUILD_NUMBER,
- info.buildUrl,
- info.duration,
- info.branch,
- info.commitMsg,
- info.author,
- info.commitTime
- )
- }
- // ========== 下面是 CPS 安全的采集逻辑 ==========
- @com.cloudbees.groovy.cps.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
- ]
- }
|