首页 > 其他分享 >Jenkins 飞书消息通知

Jenkins 飞书消息通知

时间:2023-07-24 21:03:02浏览次数:42  
标签:USER -- 通知 构建 消息 env Jenkins ### BUILD

Jenkins 飞书消息通知_jenkins

Jenkins 飞书消息通知_群组_02

https://open.feishu.cn/open-apis/bot/v2/hook/bba16e19-55e9-4293-8c6b-e23ae2904cd8

 

 

消息通知

机器人概述  


Jenkins 集成实践消息通知

Jenkins 飞书消息通知_json_03

Jenkins 飞书消息通知_群组_04

注意: 为了获取构建用户的名称, 需要安装插件build user vars plugin

Jenkins 飞书消息通知_群组_05

完整的Jenkinsfile:

注意: 飞书的body中换行符要用双斜杠;(9499 参数错误)

pipeline{
    agent { label "master"}

    stages{

        stage("Dingding"){
            steps{
                script {
                    wrap([$class: 'BuildUser']){
                            echo "full name is $BUILD_USER"
                            echo "user id is $BUILD_USER_ID"
                            echo "user email is $BUILD_USER_EMAIL"
                            env.BUILD_USER = "${BUILD_USER}"
                    }

                    if ("${env.msgType}" == "dingding") {
                        DingDing("${env.BUILD_USER}")
                    } 

                    if ("${env.msgType}" == "weixin") {
                        WeiXin("${env.BUILD_USER}")
                    }

                    if ("${env.msgType}" == "feishu") {
                        FeiShu("${env.BUILD_USER}")
                    }
                    

                }
            }
        }
    }
}


//飞书

def FeiShu(users){
    sh """
        curl --location --request POST 'https://open.feishu.cn/open-apis/bot/v2/hook/c9dde6d6-d4dc-405c-b1df-2dc2f448f49d' \
        --header 'Content-Type: application/json' \
        --data '{
            "msg_type": "interactive",
            "card": {
                "config": {
                        "wide_screen_mode": true,
                        "enable_forward": true
                },
                "elements": [{
                        "tag": "div",
                        "text": {
                                "content": "## ${JOB_NAME}作业构建信息: \\n### 构建ID: ${BUILD_ID} \\n### 构建人:${users} \\n### 作业状态: ${currentBuild.currentResult} \\n### 运行时长: ${currentBuild.durationString} \\n###### 更多详细信息点击 [构建日志](${BUILD_URL}/console) \\n",
                                "tag": "lark_md"
                        }
                }, {
                        "actions": [{
                                "tag": "button",
                                "text": {
                                        "content": "作业链接",
                                        "tag": "lark_md"
                                },
                                "url": "${JOB_URL}",
                                "type": "default",
                                "value": {}
                        }],
                        "tag": "action"
                }],
                "header": {
                        "title": {
                                "content": "DEVOPS作业构建信息",
                                "tag": "plain_text"
                        }
                }
            }
        } '
    """
}

// 企业微信
def WeiXin(users){
    withCredentials([string(credentialsId: 'b992073c-c06d-4794-b36c-b0a845255977', variable: 'ACCESS_TOKEN')]) {

        sh """
            curl --location --request POST 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=${ACCESS_TOKEN}' \
                --header 'Content-Type: application/json' \
                --data '{
                    "msgtype": "markdown",
                    "markdown": {
                        "content": "## ${JOB_NAME}作业构建信息: \n  ### 构建ID: ${BUILD_ID} \n ### 构建人:${users} \n   ### 作业状态: ${currentBuild.currentResult} \n  ### 运行时长: ${currentBuild.durationString} \n  ###### 更多详细信息点击 [构建日志](${BUILD_URL}/console) \n"
                    }
                }'
        """
    }
}

def DingDing(users){
    withCredentials([string(credentialsId: 'b191eaa5-0bb7-40e2-bb0f-4d3ca8bad72f', variable: 'TOKEN')]) {
        sh """
            curl --location --request POST "https://oapi.dingtalk.com/robot/send?access_token=${TOKEN}" \
                --header 'Content-Type: application/json' \
                --data '{
                    "msgtype": "markdown",
                    "markdown": {
                        "title": "DEVOPS通知",
                        "text": "## ${JOB_NAME}作业构建信息: \n  ### 构建ID: ${BUILD_ID} \n ### 构建人:${users} \n   ### 作业状态: ${currentBuild.currentResult} \n  ### 运行时长: ${currentBuild.durationString} \n  ###### 更多详细信息点击 [构建日志](${BUILD_URL}/console) \n"
                    },
                    "at": {
                        "isAtAll": true
                    }
                }'
            """
    }

}

标签:USER,--,通知,构建,消息,env,Jenkins,###,BUILD
From: https://blog.51cto.com/u_14035463/6839346

相关文章

  • 分布式开放消息系统(RocketMQ)的原理与实践
    备注:1.如果您此前未接触过RocketMQ,请先阅读附录部分,以便了解RocketMQ的整体架构和相关术语2.文中的MQServer与Broker表示同一概念分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:消息的顺序问......
  • 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)
    前言   但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子。假如一个项目,由A、B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端。A和B都习惯使用SVN作为代码管理工具,他们分别开始工作,一个功能完成后会提交到SVN,以便对......
  • 关于你需要的源文件重要通知
    关于你需要的源文件重要通知 【公众号已更换名字,logo】......
  • .net消息队列
    .NET消息队列消息队列是一种常用的软件架构模式,可以实现异步通信和解耦合。在分布式系统中使用消息队列可以提高系统的可伸缩性和可靠性。.NET框架提供了一个称为.NET消息队列(.NETMessageQueue,简称MSMQ)的组件,用于在应用程序之间发送消息。什么是.NET消息队列?.NET消息队列是一......
  • 十三、批量消息
    如果要发送很多消息,可以使用批量消息,一次发送,避免多次调用网络,同时提供吞吐量。代码如下:@ComponentpublicclassMessageDataUtils{privateStringdata;publicStringgetData(){returndata;}publicvoidsetData(Stringdata){......
  • android 通知渠道
    Android通知渠道在Android设备上,通知是一种重要的方式来向用户展示及时的信息,如消息、提醒或其他重要更新。为了提供更好的用户体验,Android8.0(API级别26)引入了通知渠道的概念,它允许应用程序将通知进行分类和分组,用户可以对每个渠道进行自定义设置。本文将介绍Android通知渠道的概......
  • jenkins中邮件推送内容或控制台输出乱码
    在电脑的环境变量里新增JAVA_TOOL_OPTIONS-Dfile.encoding=UTF8然后在jenkins的系统配置-全局属性里新增键值对:JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF8LANG:zh.CN.UTF-8PYTHONIOENCODING:UTF8重启Jenkins......
  • 一个故事告诉你什么是消息队列
    有一天,产品跑来说:“我们要做一个用户注册功能,需要在用户注册成功后给用户发一封成功邮件。”小明(攻城狮):“好,需求很明确了。”不就提供一个注册接口,保存用户信息,同时发起邮件调用,待邮件发送成功后,返回用户操作成功。没一会功夫,代码就写完了。验证功能没问题后,就发布上线了。线上......
  • (四) MdbCluster分布式内存数据库——业务消息处理
    (四)MdbCluster分布式内存数据库——业务消息处理 上篇:(三)MdbCluster分布式内存数据库——节点状态变化及分片调整 离上次更新文章已有快5个月,我还是有点懒。但我们系统的研发并没有因此停下来。下面先简单介绍下MdbCluster最近的一些进展。1.提供了java语......
  • 测试发送消息到Microsoft Teams
    创建测试频道:点击团队右侧“···”,点击添加频道: 然后完善频道信息: 创建好频道之后,点击频道右侧“···”管理频道: 可以进行频道人员的添加与删除管理: 点击频道右侧“···”连接器: 在搜索框中,搜索webhook进行搜索: 将IncomingWebhook 添加到频道中: 可......