【发布时间】:2010-06-16 18:36:08
【问题描述】:
我需要根据 Hudson 中的构建描述过滤作业的构建结果。我找到了一个允许根据职位描述进行过滤的插件,但是我不确定如何开始为构建做同样的事情。
【问题讨论】:
标签: user-interface reporting hudson filtering
我需要根据 Hudson 中的构建描述过滤作业的构建结果。我找到了一个允许根据职位描述进行过滤的插件,但是我不确定如何开始为构建做同样的事情。
【问题讨论】:
标签: user-interface reporting hudson filtering
通过 XPATH 使用 Hudsons XML API
http://<your hudson url>/api/xml?depth=1&xpath=//job/description[contains(./text(),'<search string>')]&wrapper=jobs
将向您显示包含给定搜索字符串的所有职位的描述
使用更多的 xpath 魔法,您可能还可以让它显示最新构建的结果(路径是 job/lastBuild/result ,可能您需要将深度增加到 2)
请参阅http://<your hudson url>/api 的 xml api 以获取更多参考
编辑:
http://<your hudson url>/api/xml?depth=2&xpath=child::hudson/job[contains(displayName,'<search string>')]/*[self::name or self::lastBuild]&wrapper=jobs
几乎对我有用,它显示了名称和最后一次构建,但不幸的是在这样的结构中
<jobs>
<name>job1</name>
<lastBuild>
<!-- snip a lot -->
<result>SUCCESS</result>
<!-- snip a lot -->
</lastBuild>
<name>job2</name>
<lastBuild>
<!-- snip a lot -->
<result>SUCCESS</result>
<!-- snip a lot -->
</lastBuild>
</jobs>
而我更喜欢这个:
<jobs>
<job>
<name>job1</name>
<lastBuild>
<!-- snip a lot -->
<result>SUCCESS</result>
<!-- snip a lot -->
</lastBuild>
</job>
<job>
<name>job2</name>
<lastBuild>
<!-- snip a lot -->
<result>SUCCESS</result>
<!-- snip a lot -->
</lastBuild>
</job>
</jobs>
有人可以提供必要的 xpath 微调吗?
再次编辑
现在我意识到您想阅读有关构建的信息,而不是作业,因此请改用以下代码:
http://<your hudson url>/job/<your job name>/api/xml?depth=1&xpath=//build[contains(action/cause/shortDescription,'<search string>')]/*[self::result or self::number]&wrapper=builds
【讨论】: