zoukankan      html  css  js  c++  java
  • 【Jenkins pipeline企业微信消息推送】message_send.py

    企业微信消息推送本质是向连接发送HTTP请求并发送消息

    curl "https://qyapi.weixin.qq.com/cgi-bin/webhook/XXXXX" -H "Content-Type: application/json" -d '{"msgtype": "markdown","markdown": {"content":"<font color="info">$JOB_NAME</font>构建<font color="info">$result</font>
    >构建用时:<font color="comment">3s</font>
    >[查看控制台]$BUILD_URL"}}'
    
    # coding=gbk
    #coding:utf-8
    import requests
    import json
    import urllib.request
    import urllib.error
    import time,os
    # 引用Jenkins全局变量
    CONF_DONE=os.environ["CONF_DONE"] #获取是构建是否成功
    ProjectName=os.environ["JOB_NAME"]#获取构建项目名称
    BUILD_URL=os.environ["BUILD_URL"]#获取构建项目URL
    BUILD_NUMBER=os.environ["BUILD_NUMBER"]#获取构建编号,用于allure报告链接拼接
    duration=os.environ["Elapsed"]#获取构建耗时
    #时间换算
    def main():
        millis = int(duration)
        seconds=(millis/1000)%60
        seconds = int(seconds)
        minutes=(millis/(1000*60))%60
        minutes = int(minutes)
        hours=(millis/(1000*60*60))%24
        print ("%d:%d:%d" % (hours, minutes, seconds))
        return str("%d时%d分%d秒" % (hours, minutes, seconds))
    headers = {"Content-Type": "text/plain"}
    send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/XXXXXXXXXXXXX"# 企业微信机器人的webhook
    report=f"http://XXXXX:8080/job/{ProjectName}/{BUILD_NUMBER}/allure/"   #allure报告地址
    result=""
    colour=""
    if CONF_DONE=="0":
        result="成功"
        colour="info"
    elif CONF_DONE=="1":
        result = "失败"
        colour = "warning"
    elif CONF_DONE=="2":
        result = "中断"
        colour = "comment"
    send_data = {
        "msgtype": "markdown",  # 消息类型,此时固定为markdown
        "markdown": {
            "content": f"**<font color="{colour}">【{ProjectName}】</font>构建"+f"<font color="{colour}">{result}</font>**!!!
    " +  # 标题 (支持1至6级标题,注意#与文字中间要有空格)
                       f"> 项目名称:<font color="{colour}">{ProjectName}</font> 
    " +  # 引用:> 需要引用的文字
                       f"> 构件编号:<font color="{colour}">#{BUILD_NUMBER}</font> 
    " +  # 引用:> 需要引用的文字
                       f"> 构建用时:<font color="{colour}">{main()}</font> 
    " +  # 引用:> 需要引用的文字
                       f"[报告链接]({report})
    "+
                       f"[控制台]({BUILD_URL})"
                         # 加粗:**需要加粗的字**
        }
    }
    res = requests.post(url=send_url, headers=headers, json=send_data)
    print(res.text)
    
  • 相关阅读:
    小小知识点(二)——如何修改win10 的C盘中用户下的文件夹名称
    Day15 Python基础之logging模块(十三)
    Day14 Python基础之os/sys/hashlib模块(十二)
    Day13 Python基础之time/datetime/random模块一(十一)
    Day12 Python基础之生成器、迭代器(高级函数)(十)
    Day11 Python基础之装饰器(高级函数)(九)
    火狐HACK
    javascript操作cookie
    <!DOCTYPE>标签的定义与用法
    前端性能优化
  • 原文地址:https://www.cnblogs.com/ricebug2/p/14324291.html
Copyright © 2011-2022 走看看