背景:在通过python的API调用Jenkins,启动Jenkins的job任务时,是需要知道Jenkins的编译状态,获取编译状态为

status=server.get_build_info(jobname, get_number2)['result'] #jobname,为任务的job名称,get_number2为编译版本号

 目前是以前项目中截取的代码,我连接Jenkins是用了两种方式,因为有一种方式不能进行编译job,另外一种获取其他数据有问题,也是一直存在的bug

def connet_jenkinsjob(self):  #连接Jenkins
server = Jenkins(jenkins_url, username=jenkins_user, password=jenkins_password,
requester=CrumbRequester(username=jenkins_user, password=jenkins_password,
baseurl=jenkins_url))
return server def stats_jenkinsjob(self):#连接Jenkins
server = jenkins.Jenkins(jenkins_url, username=jenkins_user, password=jenkins_password)
return server
def bulids_job(self):
global get_number2
server = self.stats_jenkinsjob()
server_build = self.connet_jenkinsjob()
    server_build.build_job(jobname, params=param_dict) # 待观察这个问题有解决方案不 进行项目的编译
sql = "update auto_caseList SET runStart='运行中' WHERE id= '" + key + "'""
try:
get_number2 = server.get_job_info(jobname)['nextBuildNumber'] #获取下一个编译版本号
get_number = server.get_job_info(jobname)['lastBuild']['number'] #获取编译的版本号
except Exception, e:
print "首次创建所以获取不到编译的版本号", e
self.mysql_uptate_operation(sql)
else:
get_buildstats = server.get_build_info(jobname, get_number)['building']#获取编译的状态,是否在编译
if get_buildstats == False:
print "编译中,数据状态进行更新"
else:
print "没有编译"
finally:
sleep(23) #一定要加,在启动编译后,不能马上获取编译状态,不然一直是编译成功,如果Jenkins编译失败是会在20-23S之间
status=server.get_build_info(jobname, get_number2)['result']#获取编译的状态,编译是否成功,如果不成功,就会返回FAILURE,编译成功是返回NONE
if status == "FAILURE":
print "构建出错: %s | 构建项目编号:%s" % (jobname, get_number2)
sql = "update auto_caseList SET runStart='构建出错' WHERE id= '" + key + "'""
self.mysql_uptate_operation(sql)
else:
print "构建成功:%s | 构建项目编号:%s" % (jobname, get_number2)

  

我这里的逻辑是获取到编译状态后,在等23s后查看编译是否成功,如果编译成功,编译完成会是None,而不通过的就是FAILURE

最新文章

  1. win2003 Enterprise Edition sp2 企业版序列号
  2. 教你ECSHOP去版权与标志(新增272版)
  3. au3 制作自动安装wps 特别是:控件下的edit 要修改路径
  4. SQL Server 之 解锁
  5. 【转】六年软件测试感悟-从博彦到VMware
  6. insert一句话实现插入一条数据并且返回这条数据的某列
  7. oracle dataguard
  8. hdu4753
  9. poj3237(树链剖分)
  10. CF 299 div2 C 博弈
  11. 【JQuery基础知识/statusCode(状态码)】---初学者必备
  12. zabbix的Java API(一)
  13. Centos7新功能
  14. C#反射调用方法实例
  15. DirectX11 With Windows SDK--12 深度/模板状态、平面镜反射绘制
  16. Android转换集合数据(ArrayList)为Json格式并上传服务器
  17. 我写的Java相关的文章
  18. 并发工具箱 concurrent包的原理分析以及使用
  19. mybatis--Mapper 常见报错总结(持续总结)
  20. G1收集器的收集原理

热门文章

  1. [转]如何配置Log4Net使用Oracle数据库记录日志
  2. jQuery事件篇---高级事件
  3. nodejs简易代理服务器
  4. [javaSE] 多线程(守护线程)
  5. MySQL数据源驱动报错
  6. MVC 手机端页面 使用标签file 图片上传到后台处理
  7. 工厂模式的认识(GOF23)
  8. Hibernate 注解(Annotations 四)多对多双向注解
  9. COGS2217 papertask
  10. 专访探探DBA张文升:PG在互联网应用中同样也跑的很欢畅