我需要根据Hudson中构建的描述来过滤作业的构建结果。我找到了一个允许基于作业描述进行过滤的插件,但是我不确定如何开始为构建做同样的事情。
答案 0 :(得分:1)
将Hudsons XML API与XPATH一起使用
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