【发布时间】:2014-03-04 21:20:54
【问题描述】:
我这样打电话:
并得到如下结果:
{
"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 时,我会查看结果,当我看到 SUCCESS 时,我认为我已经完成了。但该作业仍在运行中,以发布构建操作。
如何既匹配构建实例(使用参数 JT_BUILD_ID)又检测作业的最终状态?
【问题讨论】:
-
您对 API 使用哪种脚本? javascript/蟒蛇?问题中的“你如何直接在 API 中传递 JT_BUILD_ID”?
-
只是在 python 中进行 http 调用(没有库,只有原始代码),例如:/job/MYJOB/buildWithParameters?delay=0sec&token=XBUILD&JT_BUILD_ID=1276
-
在你的情况下,为什么不使用 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"]) -
我认为你没有理解我的问题。这不是解析问题...我看到结果“成功”但构建尚未完成,它仍有构建后的命令要运行。