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 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
基于python OpenCV实现动态人脸检测
May 25 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
python三大神器之fabric使用教程
Jun 10 Python
对python中UDP,socket的使用详解
Aug 22 Python
python获取array中指定元素的示例
Nov 26 Python
Python2与Python3的区别点整理
Dec 12 Python
Python 字符串池化的前提
Jul 03 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
python编程项目中线上问题排查与解决
Nov 01 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
js form action动态修改方法
2008/11/04 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
JS模板实现方法
2013/04/03 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
python selenium firefox使用详解
2019/02/26 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
趣味活动策划方案
2014/02/08 职场文书
法律七进实施方案
2014/03/15 职场文书
仓库文员岗位职责
2014/04/06 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
工人先锋号申报材料
2014/12/29 职场文书
黄石寨导游词
2015/02/05 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
2019年思想汇报
2019/06/20 职场文书