ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[代码上线]-微信通知

2021-08-18 22:03:23  阅读:296  来源: 互联网

标签:插件 上线 NAME changelog 微信 代码 JOB jenkins


第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 + '\n' + "[项目地址] : " + Subject + '\n' + 
Content + '\n'
        },
        "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执行操作,然后将结果通过微信发送到手机上

标签:插件,上线,NAME,changelog,微信,代码,JOB,jenkins
来源: https://www.cnblogs.com/zhyunwei/p/15159011.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有