Jenkins获得构建和参数列表

时间:2013-05-15 22:04:31

标签: api jenkins

我想对Jenkins进行API调用,以获取构建列表及其参数和状态。我们当前传递一个git commit sha1作为参数来构建一个特定的分支。我有什么想法可以轻松获得这些信息吗?

3 个答案:

答案 0 :(得分:8)

Jenkins提供了一个很好的api。

记录于:

http://$HOST/jenkins/api

您可能需要以下内容:

http://$HOST/jenkins/api/xml?xpath=/hudson/job[1]/build[1]/action[1]/parameter&depth=2

答案 1 :(得分:2)

据我所知,这不能在单个API调用中完成。

首先查询所有版本。

/job/<jobname>/api/xml
/job/<jobname>/api/json

这将分别返回xml或json输出。

获得构建号后,您可以查询每个构建号。

/job/<jobname>/<jobnum>/api/xml?xpath=/freeStyleBuild/action/lastBuiltRevision/SHA
/job/<jobname>/<jobnum>/api/json?tree=actions[lastBuiltRevision[SHA]]

然后,您可以根据SHA检查结果中的SHA。

答案 2 :(得分:0)

将@ user1255162的评论与答案结合起来。我必须查询一组构建并打印其参数以生成报告。这是groovy中的代码片段

import groovy.json.JsonSlurper


def root = "<url to job>"
def options = "/api/json?tree=builds[actions[parameters[name,value]],result,building,number,duration,estimatedDuration]"

def jsonSlurper = new JsonSlurper()
def text = new URL("${root}/${options}").text
def data = jsonSlurper.parseText(text)

data["builds"].each { buildsdata ->
    def result = buildsdata["result"]
    def num = buildsdata["number"]
    print("${root}/${num}/parameters  |")
    buildsdata["actions"].each { actions ->
        if (actions["_class"].equals("hudson.model.ParametersAction")) {
            actions["parameters"].sort({it.name}).each { param ->
                    print("${param.name}=${param.value}|")
            }
        }
    }
    println("")
}