2014-03-04 130 views
3

我打个电话,如:如何通过API获取完成的Jenkins作业的最终状态?

http://jenkins.mysite.com/job/MYJOB/api/json?depth=2&tree=builds%5Bactions%5Bparameters%5Bname%2Cvalue%5D%5D%2Cnumber%2Cresult%5D

,并得到这样的结果:

{ 
    "builds": [{ 
     "actions": [{ 
      "parameters": [{ 
       "name": "JT_BUILD_ID", 
       "value": "1274" 
      }] 
     }, {}, {}, {}, {}], 
     "number": 3, 
     "result": "SUCCESS" 
    }, { 
     "actions": [{ 
      "parameters": [{ 
       "name": "JT_BUILD_ID", 
       "value": "1273" 
      }] 
     }, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], 
     "number": 2, 
     "result": "SUCCESS" 
    }, { 
     "actions": [{ 
      "parameters": [{ 
       "name": "JT_BUILD_ID", 
       "value": "0" 
      }] 
     }, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], 
     "number": 1, 
     "result": "SUCCESS" 
    }] 
} 

我传递JT_BUILD_ID这样我就可以匹配这个MYJOB的运行。

当我找到匹配的JT_BUILD_ID时,我看结果,当我看到成功时,我认为我完成了。但这项工作仍在继续发布构建操作。

我该如何匹配构建实例(使用参数JT_BUILD_ID)并检测作业的最终状态?

+0

你对API使用哪种脚本? javascript/python? “如何通过JT_BUILD_ID”直接在API中提问? –

+0

只是在python(没有库,只是原始代码) 像: /job/MYJOB/buildWithParameters?delay = 0sec&token = XBUILD&JT_BUILD_ID = 1276 – pbx

+0

在你的情况下,为什么不使用if语句来检查?让我们假设json_result在字符串之上,build_no是你想要的。然后'filter(lambda x:x [“actions”] [0] [“parameters”] [0] [“name”] =='JT_BUILD_ID'and x [“number”] == build_no,json_result [“builds” ])' –

回答

3

还有buildingbuilds下的另一个关键,如果后期构建仍在工作,状态将保持为true。当作业完成后,它将变为false

因此,你可以添加额外的检查building == false,最终的URL看起来像下面

https://ci.jenkins-ci.org/view/Libraries/job/lib-jira-api/api/json/?pretty=true&depth=2&tree=builds[actions[parameters[name,value]],number,result,building]

结果也能像你的情况之下,如果最新版本正在进行(在建后阶段)

{ 
    "builds": [{ 
    "actions": [{ 
     "parameters": [{ 
      "name": "JT_BUILD_ID", 
      "value": "1274" 
     }] 
    }, {}, {}, {}, {}], 
    "building" : true, 
    "number": 3, 
    "result": "SUCCESS" 
    }, { 
    "actions": [{ 
     "parameters": [{ 
      "name": "JT_BUILD_ID", 
      "value": "0" 
     }] 
    }, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], 
    "building" : false, 
    "number": 1, 
    "result": "SUCCESS" 
    }] 
} 
相关问题