You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Jenkins向MS Teams发送含构建详情的通知并解决发送失败问题

解决Jenkins流水线MS Teams通知失败及优化内容的方案

常见失败原因排查

  • Webhook URL错误:你提供的URL里有多余的////,这会导致请求无法正常发送到Teams,必须修正为Teams生成的标准Webhook地址(格式类似https://xxx.webhook.office.com/webhookb/xxxxxx)。
  • 插件未正确配置:确认Jenkins已安装并启用Office 365 Connector插件,且插件版本与当前Jenkins版本兼容。
  • 变量解析异常:检查${REPO}、${TAG}是否在流水线当前作用域中已正确定义并赋值,避免因变量为空导致通知内容异常。

包含Build Details、Tags、Committers的优化代码

下面是修复后的流水线代码,既解决通知发送问题,又添加了你需要的构建详情、镜像标签、提交者信息:

stage('MSTEAMS') {
    steps {
        script {
            // 获取构建相关信息
            def buildNumber = env.BUILD_NUMBER
            def buildUrl = env.BUILD_URL
            def committers = sh(script: 'git log --pretty=format:"%an" -1', returnStdout: true).trim()
            def imageUrl = "123456.dkr.ecr.ap-south-1.amazonaws.com/${REPO}:${TAG}"
            
            office365ConnectorSend(
                webhookUrl: "https://orosoft.webhook.office.com/webhookb/xxxxxxxxxxxxx", // 修正后的Webhook地址
                status: "Success",
                color: "00ff00",
                sections: [
                    [
                        activityTitle: "✅ Jenkins构建完成",
                        activitySubtitle: "构建编号: #${buildNumber}",
                        facts: [
                            [name: "镜像地址", value: imageUrl],
                            [name: "镜像标签", value: "${TAG}"],
                            [name: "最后提交者", value: committers],
                            [name: "构建详情", value: "[查看详情](${buildUrl})"]
                        ]
                    ]
                ]
            )
        }
    }
}

额外注意事项

  • 如果需要区分构建状态发送通知,建议添加post阶段,根据成功/失败发送不同内容:
    post {
        success {
            // 上述成功通知代码
        }
        failure {
            office365ConnectorSend(
                webhookUrl: "你的Webhook地址",
                status: "Failed",
                color: "ff0000",
                message: "构建编号 #${env.BUILD_NUMBER} 失败,[查看详情](${env.BUILD_URL})"
            )
        }
    }
    
  • 确保Jenkins服务器可以正常访问Teams的Webhook地址,没有防火墙或代理限制。

内容的提问来源于stack exchange,提问作者Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:05:25