Django 如何在python中获取Jenkins挂起的构建id
视图.py 在这里,我可以获得当前正在运行的jenkins作业构建的所有信息。但当用户再次运行或触发同一作业时,它将在jenkins上生成队列,但作为挂起的构建。 所以我得到了当前正在运行的作业的构建id,而不是挂起的jenkins构建的id。实际上,我需要挂起生成的生成id。Django 如何在python中获取Jenkins挂起的构建id,django,python-2.7,jenkins,Django,Python 2.7,Jenkins,视图.py 在这里,我可以获得当前正在运行的jenkins作业构建的所有信息。但当用户再次运行或触发同一作业时,它将在jenkins上生成队列,但作为挂起的构建。 所以我得到了当前正在运行的作业的构建id,而不是挂起的jenkins构建的id。实际上,我需要挂起生成的生成id。 try: print "in try.." jenkinsStream = urllib2.ur
try:
print "in try.."
jenkinsStream = urllib2.urlopen( "http://10.211.213.138:8080/job/TE-mobius/lastBuild/api/json?pretty=true" )
print "after fetching url"
except urllib2.HTTPError, e:
print "URL Error: " + str(e.code)
print " (job name [" + jobName + "] probably wrong)"
try:
print "Before loading json"
buildStatusJson = json.load( jenkinsStream )
print "After loading json"
except:
print "Failed to parse json"
print "before while.."
print buildStatusJson["building"]
#print "[" + jobName + "] duration: " + str(buildStatusJson["duration"])
print buildStatusJson.has_key( "result" )
if buildStatusJson.has_key( "result" )==True:
print "in if"
print "[" + jobname + "] duration: " + str(buildStatusJson["duration"])
print "[" + jobname + "] building: " + str(buildStatusJson["building"])
print "[" + jobname + "] timestamp: " + str(buildStatusJson["timestamp"])
print "[" + jobname + "] url: " + str(buildStatusJson["url"])
print "[" + jobname + "] result: " + str(buildStatusJson["result"])
print "[" + jobname + "] build number: " + str(buildStatusJson["number"])
print "[" + jobname + "] JobName: " + str(buildStatusJson["fullDisplayName"])
在
http://10.211.213.138:8080/job/TE-mobius/api/json?pretty=true
具有nextBuildNumber
键
它也有
"queueItem" : {
"blocked" : false,
"buildable" : true,
"id" : 119,
"inQueueSince" : 1401783373284,
"params" : "",
"stuck" : false,
"task" : {
"name" : "YourJobName",
"url" : "http://jenkins/job/YourJobName/"
},
"url" : "queue/item/119/",
"why" : "Waiting for next available executor",
"buildableStartMilliseconds" : 1401783373290,
"pending" : false
}
提供有关该挂起构建的一些基本信息。在构建开始之前,您试图在代码中打印的一些构建信息不会存在于Jenkins中
不幸的是,这只会让您获得下一个待定版本的版本号。如果一个作业的队列中有一个参数化生成和多个生成,我不知道有什么方法可以获取其他挂起生成的生成号。如果需要的话,你可能需要写一个插件