实现Jenkins集成企业微信-消息关照的功能

分享
手机游戏开发者 2024-9-27 03:58:04 17 0 来自 中国
Jenkins集成微信,工作中档git有新代码提交会触发钩子自动完成上线,运维和开辟人员不须时候盯着Jenkins,通过企业微信的方式显示给运维和开辟人员

  • 注册企业微信的公众号  申请地点:https://mp.weixin.qq.com/
    搜索微信公众平台->注册->选择企业微信

选择完成后把下面信息举行美满->利用自己微信扫描二维码举行管理后-点注册

注册乐成登岸后点击应用管理->创建应用

上传图片->填写应用名称-可见范围->创建应用-生存好agentld和secret写入py脚本

更改py脚本内对应的内容 touser 为账号名称

6.png Corpid为企业ID 这里只把corpid写入对应的位置

7.png python脚本内容

#!/usr/bin/python2.7#_*_coding:utf-8 _*_ import requests,sys,jsonimport urllib3urllib3.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 = {    #    "chatid": "JenkinsAlarm",  # 此处不明白请参考企业微信官网    #    "msgtype": "text",    #    "text": {    #        "content": "[项目名称] : " + ProName + '\n' + "[项目地点] : " + Subject + '\n' + Content + '\n'    #    },    #    "safe": "0"    #}    data = {        "touser" : "XXXXXX",        "msgtype" : "text",        "agentid" : 1000002,        "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 += " 无变更"    # print str1        return str1    except Exception as e:        #print('[ERROR] {0}'.format(e))    str1 += str(e) if __name__ == '__main__':    Corpid = "企业ID"    Secret = "Secret"     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完成后设置Jenkins

1.由于Jenkins没有官网的插件来完成此功能,以是我们只能用网络上一些开源的插件(线下班不需要以下步调,已集合在plugins)
Github下载代码:https://github.com/daniel-beck/changelog-environment-plugin
解压到某个目次 -> 进入目次实行以下操作
cd 到 changelog-environment-plugin-master 下,实行mvn verify时间较长,会在changelog-environment-plugin-master/target/下有个changelog-environment.hpi 文件,上传到Jenkins即可利用
2、设置jenkins
Jenkins进入到项目中->构建情况多了Add Changelog Information to Environment->点击选择
Entry Format中添加 %3$s(at %4$s via %1$s),参数分别为ChangeLog内容,时间,提交人。 Date Format中添加 yyyy‐MM‐dd HH:mm:ss 就是时间格式。构建后操作选择Post build task, 假如没有此选择致意装Hudson Post build task插件,SCM_CHANGELOG须安装changelog插件
上传py脚本->jenkins服务器上安装python requests模块。
假如网络速比较慢的,可以找国内源下载
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum -y install python-pip pip2.7 install requests参考文档:Python安装流程 - python2 安装 pip
https://www.jianshu.com/p/0dc71548b213
1) 是利用gitlab 设置自动触发构建、需要设置安全令牌Secret token


10.png 2) gitee 设置自动触发构建 Generic Webhook Trigger

设置长途仓库的钩子

进入到我们的长途仓库中,选择左侧的WebHooks后,设置URL,URL的格式为:
http://JENKINS_URL/generic-webhook-trigger/invoke?token=owner_tokenJENKINS_URL指的是你的IP地点和服务器的端标语
owner_token指的是之前在上一步设置的token

设置完成后,点击更新/完成。然后测试一下哀求是否乐成,假如乐成的话,可以在哀求汗青中看到对应的哀求效果

14.png 假如碰到哀求状态是403的话,就需要查抄一下返回的错误信息,看一下jenkins那边的设置有没有标题了。
可以试一下重启一下Jenkins,大概是查抄一下关于Jenkins安全相干的设置,在跨站哀求伪造保护模块中,选择启用署理兼容。需要留意的是,由于我的Jenkins版本比较高,以是不愿定和你们的页面完全一样,假如这里办理不了你的标题的话,照旧别的需要百度办理。

15.png
实现信息推送的操作(Gitee、GitLab等)

添加 Post build task

echo "==========Start Notify=============="echo ${SCM_CHANGELOG} > /tmp/${JOB_NAME}_change.logpython /data/script/jenkins_notify.py ${BUILD_URL} /tmp/${JOB_NAME}_change.log ${JOB_NAME}rm -fv /tmp/${JOB_NAME}_change.log 17.png 1) Gitee WebHooke发送哀求

18.png # 企业微信收到的信息[项目名称] : Java-Project01[项目地点] : http://JenkinsIP:端口/job/Java-Project01//[变更日志] : XXXXXXXXXXXXXX2)GitLab Webhook发送哀求

# 手动上传代码库git tag -a v1.X -m "v1.x稳固版"git commit -m "update index.html"git push -u origin v1.x# 企业微信收到的信息[项目名称] : Java-Project01[项目地点] : http://JenkinsIP:端口/job/Java-Project01//[变更日志] : XXXXXXXXXXXXXX
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 22:33, Processed in 0.170809 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表