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中的ConfigParser模块使用详解
May 04 Python
json跨域调用python的方法详解
Jan 11 Python
python实现贪吃蛇小游戏
Mar 21 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
Aug 22 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
May 22 Python
python与pycharm有何区别
Jul 01 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
python pymysql库的常用操作
Oct 16 Python
Python中快速掌握Data Frame的常用操作
Mar 31 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
操作Oracle的php类
2006/10/09 PHP
PHP分页函数代码(简单实用型)
2010/12/02 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
php实现微信企业转账功能
2018/10/02 PHP
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python中的字符串查找操作方法总结
2016/06/27 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
设备动力科岗位职责范本
2014/02/23 职场文书
初三班主任寄语大全
2014/04/04 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
入党转正申请报告
2015/05/15 职场文书
2015年教师节感言
2015/08/03 职场文书
考试后的感想
2015/08/07 职场文书
正则表达式基础与常用验证表达式
2022/06/16 Javascript