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入门篇之函数
Oct 20 Python
python获取mp3文件信息的方法
Jun 15 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
tensorflow实现简单的卷积神经网络
May 24 Python
python爬取微信公众号文章
Aug 31 Python
python: 判断tuple、list、dict是否为空的方法
Oct 22 Python
python实现AES和RSA加解密的方法
Mar 28 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
Python 中判断列表是否为空的方法
Nov 24 Python
使用python创建生成动态链接库dll的方法
May 09 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函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
php数组合并的二种方法
2014/03/21 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
web 页面分页打印的实现
2009/06/22 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
类如何去实现接口
2013/12/19 面试题
普通大学毕业生自荐信
2013/11/04 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
怎么写工作检讨书
2014/11/16 职场文书
2015年工程部工作总结
2015/04/30 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
微信小程序和php的登录实现
2021/04/01 PHP