Python-jenkins 获取job构建信息方式


Posted in Python onMay 12, 2020

官方文档:

需求:当1个job启动构建后,获取它的构建状态.(成功,失败,驳回,构建中,正在排队)

关键函数:

获取job是否在排队的结果

获取正在排队构建的job队列 即pending状态中的所有job,如果没有 pending状态的job即返回1个空列表

queue_info = server.get_queue_info()

获取job构建结果

server.get_build_info(name, build_number)[
      'result'] # 构建结束 SUCCESS|FAILURE<class 'str'>  ABORTED <class 'str'> 构建中None None <class 'NoneType'>

代码示例:

def get_build_state(server, name, build_number):
  '''

  :param name: job_name
  :param build_number: 最后1次构建序号
  :param:jenkins_server
  :return: 最后1次构建状态 pending,success,false,building
  '''
  build_state = None

  # 获取正在排队构建的job队列 即pending状态中的所有job,如果没有 pending状态的job即返回1个空列表
  queue_info = server.get_queue_info()

  if queue_info:
    for queue_job_info in queue_info:
      if queue_job_info['task']['name'] == name:
        # msg = 'pending期,排队构建中'
        build_state = 'pending'
  else:

    build_state = server.get_build_info(name, build_number)[
      'result'] # 构建结束 SUCCESS|FAILURE<class 'str'>  ABORTED <class 'str'> 构建中None None <class 'NoneType'>
  return build_state

通过接口将该功能封装起来

@build_bp.route('/gotest/api/getBuildState', methods=['POST'])
def get_job_build_state():
  '''
    获取job构建状态
    return:build_state Success,Faild,Pending,Building
    '''
  data = request.get_json()
  job_name = data['job_name']

  server = get_jenkins_server()
  # 获取job的最后次构建号
  lastbuildNumber = server.get_job_info(job_name)['lastBuild']['number']
  #获取构建状态
  build_state = get_build_state(server, job_name, lastbuildNumber)

  if build_state is None:
    build_msg = 'Building'
  elif build_state == 'SUCCESS':
    build_msg = 'SUCCESS'
  elif build_state == 'FAILURE':
    build_msg = 'FAILURE'
  elif build_state == 'ABORTED':
    build_msg = 'ABORTED'
  elif build_state =='pending':
    build_msg = 'pending'

  response = {}
  datas={}
  response['code'] = 200
  response['msg'] = 'OK'

  datas['build_state'] = build_msg
  datas['buildNumber'] = lastbuildNumber
  response['datas'] = datas

  return response

测试接口:

import requests
url='http://127.0.0.1:5000/gotest/api/getBuildState'
data={'job_name':'android_official'}

r = requests.post(url,json=data)
print(r.text)

响应:

{"code":200,"datas":{"buildNumber":1010,"build_state":"SUCCESS"},"msg":"OK"}

以上这篇Python-jenkins 获取job构建信息方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中实现的RC4算法
Feb 14 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
Python装饰器入门学习教程(九步学习)
Jan 28 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
Python何时应该使用Lambda函数
Jul 02 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
python编写微信公众号首图思路详解
Dec 13 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 Python
python进行参数传递的方法
May 12 #Python
python输出数学符号实例
May 11 #Python
使用matlab 判断两个矩阵是否相等的实例
May 11 #Python
Django models文件模型变更错误解决
May 11 #Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 #Python
Django静态资源部署404问题解决方案
May 11 #Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 #Python
You might like
解析php php_openssl.dll的作用
2013/07/01 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php四种基础算法代码实例
2013/10/29 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
js 页面输出值
2008/11/30 Javascript
jQuery 使用手册(二)
2009/09/23 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
Python递归函数实例讲解
2019/02/27 Python
python urllib爬虫模块使用解析
2019/09/05 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
联想德国官网:Lenovo Germany
2018/07/04 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
大一自我鉴定范文
2013/12/27 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
秋天的雨教学反思
2014/04/27 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
受伤赔偿协议书
2014/09/24 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers