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|FAILUREABORTED 构建中NoneNone
代码示例:
defget_build_state(server,name,build_number): ''' :paramname:job_name :parambuild_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() ifqueue_info: forqueue_job_infoinqueue_info: ifqueue_job_info['task']['name']==name: #msg='pending期,排队构建中' build_state='pending' else: build_state=server.get_build_info(name,build_number)[ 'result']#构建结束SUCCESS|FAILUREABORTED 构建中NoneNone returnbuild_state
通过接口将该功能封装起来
@build_bp.route('/gotest/api/getBuildState',methods=['POST']) defget_job_build_state(): ''' 获取job构建状态 return:build_stateSuccess,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) ifbuild_stateisNone: build_msg='Building' elifbuild_state=='SUCCESS': build_msg='SUCCESS' elifbuild_state=='FAILURE': build_msg='FAILURE' elifbuild_state=='ABORTED': build_msg='ABORTED' elifbuild_state=='pending': build_msg='pending' response={} datas={} response['code']=200 response['msg']='OK' datas['build_state']=build_msg datas['buildNumber']=lastbuildNumber response['datas']=datas returnresponse
测试接口:
importrequests 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构建信息方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。