zoukankan      html  css  js  c++  java
  • [代码上线]-微信通知

    第1章 Jenkins使用微信发送结果通知

    1.登陆微信企业公众号

    登陆并填写注册信息:

    https://work.weixin.qq.com/wework_admin/loginpage_wx
    

    2.创建新应用

    3.填写应用详细信息

    上传logo,填写应用名称 ,应用介绍等

    4.查看并记录相关信息

    创建应用之后会生成几个信息需要我们记录一下,因为一会会用到

    1.Agentid
    2.Secret
    3.企业ID
    4.用户账号
    

    5.测试发送消息

    接下来我们来测试一下接口调用是否正常,测试地址:

    http://work.weixin.qq.com/api/devtools/devtool.php
    

    6.修改weixin发送消息脚本

    修改脚本里的企业ID,Secret,AgentID信息为自己的:

    cat >/scripts/jenkins/jenkins_notify.py <<'EOF'
    #!/usr/bin/python2.7
    #_*_coding:utf-8 _*_
     
    import requests,sys,json
    import urllib3
    urllib3.disable_warnings()
     
    reload(sys)
    sys.setdefaultencoding('utf-8')
     
    def GetToken(Corpid,Secret):
        Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
        Data = {
            "corpid":Corpid,
            "corpsecret":Secret
        }
        r = requests.get(url=Url,params=Data,verify=False)
        Token = r.json()['access_token']
        return Token
     
    def SendMessage(Token,Subject,Content, ProName):
        Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
        data = {
            # 接收通知的用户账号,多个用逗号隔开
            "touser" : "ZhangYa",
            "msgtype" : "text",
            # 自己的AgentId
            "agentid" : 1000009,
            "text" : {
               "content" : "[项目名称] : " + ProName + '
    ' + "[项目地址] : " + Subject + '
    ' + 
    Content + '
    '
            },
            "safe":0
        }
        r = requests.post(url=Url,data=json.dumps(data),verify=False)
        return r.text
     
    def action_from_file(filename):
        try:
            str1 = '[变更日志] : '
            with open(filename, 'r') as f:
                for i in f.readlines():
                    str1 += i
                    print str1
            if len(str1) == 17:
                str1 += "无变更"
            return str1
        except Exception as e:
            str1 += str(e)
     
    if __name__ == '__main__':
        # 企业 ID
        Corpid = "wwd26fdfb9940e7efa"
        # Secret
        Secret = "0yf0x_KuQi1IfGkI__K77k_JpjK1IOflxQTIre6qHM8"
     
        Subject = sys.argv[1]
        Content = action_from_file(sys.argv[2])
        ProName = sys.argv[3]
     
        Token = GetToken(Corpid, Secret)
        Status = SendMessage(Token,Subject,Content,ProName)
        print Status
    EOF
    

    7.安装python脚本需要的依赖

    yum install python-pip -y
    pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    8.配置Jenkins项目的构建环境

    参数解释:

    %3$s(at %4$s via %1$s) :
    参数分别为:Change Log,时间,提交人
    yyyy-MM-dd HH:mm:ss:
    时间格式 年-月-日 小时:分钟:秒
    

    插件安装方式:

    Add Changelog Information to Environment 选项是需要插件支持的
    如果没有选项,需要自己去github下载插件然后编译拷贝到jenkins插件目录下,项目地址:
    https://github.com/daniel-beck/changelog-environment-plugin 
    解压进入目录,执行mvn verify命令
    执行完会在changelog-environment-plugin-master/target/下生成一个changelog-environment.hpi文件
    上传到jenkins的插件目录下重启后即可使用。
    

    9.添加构建后操作

    执行内容:

    echo "==========Start Notify=============="				
    echo ${SCM_CHANGELOG} > /tmp/${JOB_NAME}_change.log	
    python /scripts/jenkins/jenkins_notify.py ${BUILD_URL} /tmp/${JOB_NAME}_change.log ${JOB_NAME}
    rm -fv /tmp/${JOB_NAME}_change.log
    

    插件解释:

    上述操作需要两个插件的支持:
    changelog:提供SCM_CHANGELOG;
    Hudson Post build task:提供 Post build task;
    

    10.提交变更查看信息

    此时我们如果提交新的代码,就会触发jenkins执行操作,然后将结果通过微信发送到手机上

  • 相关阅读:
    Elkstack2.0部署
    ZABBIX自定义用户KEY与参数USERPARAMETERS监控脚本输出
    elasticsearch 管理工具
    指定时间开启、结束定时器
    异步的作用
    快速生成几百万条测试数据
    查看查询索引
    蠕虫复制
    导出数据库
    header
  • 原文地址:https://www.cnblogs.com/alaska/p/13547790.html
Copyright © 2011-2022 走看看