Jenkins集成微信,工作中档git有新代码提交会触发钩子自动完成上线,运维和开辟人员不须时候盯着Jenkins,通过企业微信的方式显示给运维和开辟人员
- 注册企业微信的公众号 申请地点:https://mp.weixin.qq.com/
搜索微信公众平台->注册->选择企业微信
选择完成后把下面信息举行美满->利用自己微信扫描二维码举行管理后-点注册
注册乐成登岸后点击应用管理->创建应用
上传图片->填写应用名称-可见范围->创建应用-生存好agentld和secret写入py脚本
更改py脚本内对应的内容 touser 为账号名称
Corpid为企业ID 这里只把corpid写入对应的位置
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
2) gitee 设置自动触发构建 Generic Webhook Trigger
设置长途仓库的钩子
进入到我们的长途仓库中,选择左侧的WebHooks后,设置URL,URL的格式为:
http://JENKINS_URL/generic-webhook-trigger/invoke?token=owner_tokenJENKINS_URL指的是你的IP地点和服务器的端标语
owner_token指的是之前在上一步设置的token
设置完成后,点击更新/完成。然后测试一下哀求是否乐成,假如乐成的话,可以在哀求汗青中看到对应的哀求效果
假如碰到哀求状态是403的话,就需要查抄一下返回的错误信息,看一下jenkins那边的设置有没有标题了。
可以试一下重启一下Jenkins,大概是查抄一下关于Jenkins安全相干的设置,在跨站哀求伪造保护模块中,选择启用署理兼容。需要留意的是,由于我的Jenkins版本比较高,以是不愿定和你们的页面完全一样,假如这里办理不了你的标题的话,照旧别的需要百度办理。
实现信息推送的操作(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
1) Gitee WebHooke发送哀求
# 企业微信收到的信息[项目名称] : 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 |