1
我正在尝试使用Groovy的JsonBuilder和Groovy PostBuild插件创建Jenkins构建的JSON输出。一切似乎都在工作,除了构建结果。它不给我JSON输出中的实际生成结果,它给了我所有可能结果(即SUCCESS,UNSTABLE,FAILURE等)的数组。如果我只是将结果打印到控制台,它将打印出实际结果。将Jenkins构建结果写入JSON
下面是代码:
import groovy.json.*
def result = manager.build.result
manager.listener.logger.println result // Prints just the build result
def json = new groovy.json.JsonBuilder()
def root = json.build {
build_number manager.build.number
build_timestamp manager.build.timestamp
build_duration manager.build.duration
build_url manager.build.url
build_project_name manager.build.project.name
build_culprits manager.build.culprits
build_result result // Prints an array of all possible results
build_result manager.build.result // Also prints an array of all possible results
}
manager.listener.logger.println "...and the status is ${result}" // Prints just the build result
manager.listener.logger.println JsonOutput.prettyPrint(json.toString())
这里是输出:
UNSTABLE
...and the status is UNSTABLE
{
"build": {
"build_number": 85,
"build_timestamp": "2014-01-14T13:26:06+0000",
"build_duration": 0,
"build_url": "job/JSON_Test/85/",
"build_project_name": "JSON_Test",
"build_culprits": [
],
"build_result": {
"names": [
"SUCCESS",
"UNSTABLE",
"FAILURE",
"NOT_BUILT",
"ABORTED"
],
"completeBuild": true
}
}
}
我曾尝试用于可变结果的各种不同的语法组合,例如$结果,$ {结果}和$ {result}在json.build块中,但都会导致编译错误。
你可以尝试'build_result result.toString()' –
这奏效了 - 非常感谢你! – JamesE
作为回答添加:-) –