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中datetime常用时间处理方法
Jun 15 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
Linux RedHat下安装Python2.7开发环境
May 20 Python
python实现装饰器、描述符
Feb 28 Python
python统计中文字符数量的两种方法
Jan 31 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
关于Python解包知识点总结
May 05 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 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
用文本作数据处理
2006/10/09 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
8个PHP数组面试题
2015/06/23 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
2011/03/01 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
python如何重载模块实例解析
2018/01/25 Python
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
创立科技Java面试题
2015/11/29 面试题
高职教师岗位职责
2013/12/24 职场文书
档案接收函范文
2014/01/10 职场文书
给同学的道歉信
2014/01/16 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
工作年限证明范本
2015/06/15 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android