#!/usr/bin/env groovy def call(String phase) { // 先读凭据 String webhook = credentials('feishu-webhook') // 组装卡片(同上,略) String jobName = env.JOB_NAME String buildNum = env.BUILD_NUMBER String branch = env.GIT_BRANCH ?: 'unknown' String result = currentBuild.currentResult ?: 'UNKNOWN' String buildUrl = env.BUILD_URL String duration = phase == 'end' ? "${currentBuild.durationString}" : '-' String headerColor = phase == 'start' ? 'blue' : (result == 'SUCCESS' ? 'green' : 'red') String headerIcon = phase == 'start' ? 'rocket' : (result == 'SUCCESS' ? 'check_circle' : 'error') def card = [ header: [ title: [ tag: "plain_text", content: "Jenkins ${phase == 'start' ? '开始' : '结束'}通知" ], template: headerColor ], elements: [ [ tag: "div", text: [ tag: "lark_md", content: "**项目:** ${jobName}\n" + "**分支:** ${branch}\n" + "**构建:** #${buildNum}\n" + "**结果:** ${result}\n" + "**耗时:** ${duration}\n" + "**链接:** [查看详情](${buildUrl})" ] ] ] ] // 把真正的 url 传进去 feishu.send(webhook, card) }