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

 更新时间:2020年05月12日 08:51:16   作者:wangju003  
这篇文章主要介绍了Python-jenkins 获取job构建信息方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

官方文档:

需求:当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之基数排序的实现

    这篇文章主要介绍了python之基数排序的实现,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Python永久配置国内镜像源安装再也不用担心卡顿

    Python永久配置国内镜像源安装再也不用担心卡顿

    这篇文章主要为大家介绍了Python如何永久配置国内镜像源,从此安装再也不用担心卡顿,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • Python判断一个三位数是否为水仙花数的示例

    Python判断一个三位数是否为水仙花数的示例

    今天小编就为大家分享一篇Python判断一个三位数是否为水仙花数的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • django实现将修改好的新模型写入数据库

    django实现将修改好的新模型写入数据库

    这篇文章主要介绍了django实现将修改好的新模型写入数据库,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python3中_(下划线)和__(双下划线)的用途和区别

    Python3中_(下划线)和__(双下划线)的用途和区别

    经常会看到以下划线或者双下划线开头的方法或者属性,到底它们有什么作用,又有什么样的区别呢?今天我们来总结一下,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • python查看模块,对象的函数方法

    python查看模块,对象的函数方法

    今天小编就为大家分享一篇python查看模块,对象的函数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python字符串查找基本操作代码案例

    Python字符串查找基本操作代码案例

    这篇文章主要介绍了Python字符串查找基本操作代码案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python爬虫技术

    Python爬虫技术

    本文将要介绍的是python爬虫基础知识,感兴趣的小伙伴一起来学习吧
    2021-08-08
  • 快速部署 Scrapy项目scrapyd的详细流程

    快速部署 Scrapy项目scrapyd的详细流程

    这篇文章主要介绍了快速部署 Scrapy项目scrapyd的详细流程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • python生成lmdb格式的文件实例

    python生成lmdb格式的文件实例

    今天小编就为大家分享一篇python生成lmdb格式的文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11

最新评论