1、概述

     jenkins项目发布,为了更加有效通知到相应开发人员和测试人员进行发布代码审查和进行业务测试,因为很多公司都是通过企业微信办公,所以可以通过企业微信机器人通知相关的人员。

2、企业微信配置

如上图,首先创建一个群组,然后通过“...”,弹出快捷菜单,创建机器人,然后使用webhook地址进行配置。详细的机器人配置方式地址:​​https://work.weixin.qq.com/api/doc/90000/90136/91770​

jenkins发布提醒之企业微信_jenkins

3、jenkins插件

'Extended Choice Parameter':实现复选框功能

'Execute Python script':实现获取jenkins内置环境变量

'Build Timestamp Plugin':实现获取job构建时间

任务中,多选框配置如下图:

jenkins发布提醒之企业微信_jenkins_02

name:AlarmContact,用于下面Python环境变量中获取value值

Description:选择发布联系人,解释说明

Parameter Type:Check Boxes,表示多选或单选

Number of Visible Items:10,表示当前页面展示10条

Delimiter:,表示value的分隔符

value:企业微信的’weixin_id‘,特别注意

Python环境变量配置如下图:

jenkins发布提醒之企业微信_python_03

代码如下:


#!/usr/bin/python3
# -*- coding: iso-8859-15 -*-
import os
# 获取的都是jenkins内置环境变量
BuildTime=os.getenv("BUILD_TIMESTAMP")
BuildNumber=os.getenv("BUILD_NUMBER")
JobName=os.getenv("JOB_NAME")
UrlJob=os.getenv("BUILD_URL")
alarm_contact=os.getenv("AlarmContact")
GitCommit=os.getenv("GIT_COMMIT")
GIT_BRANCH=os.getenv("GIT_BRANCH")



WeChat_url = "企业微信上webhook地址"

import json
import requests
import sys

data = json.dumps(
{
"msgtype": "markdown",
"markdown": {
"content": "# <font color=\"warning\">jenkins发布提醒</font> \n"
">任务名称:<font color=\"info\">%s</font> \n"
">构建时间:<font color=\"info\">%s</font> \n"
">任务分支:<font color=\"comment\">%s</font> \n"
">构建次数:<font color=\"comment\">%s</font> \n"
">任务地址:[%s](%s) \n"
">构建版本:<font color=\"comment\">%s</font> \n"
">任务已构建完成确认:<font color=\"info\">%s</font> \n" %(JobName, BuildTime,GIT_BRANCH,BuildNumber,UrlJob, UrlJob,GitCommit,alarm_contact),
},
}
)
requests.post(WeChat_url, data, auth=('Content-Type', 'application/json'))

4、jenkins项目发布展示

jenkins发布提醒之企业微信_python_04

jenkins发布提醒之企业微信_jenkins_05