2010-06-16 47 views
0

我需要根据哈德逊版本的描述过滤作业的生成结果。我发现了一个允许基于作业描述进行过滤的插件,但我不知道如何开始为构建做同样的工作。根据描述过滤哈德森版本结果

回答

1

使用哈德森XML使用XPath API

http://<your hudson url>/api/xml?depth=1&xpath=//job/description[contains(./text(),'<search string>')]&wrapper=jobs 

会告诉你,包含给定的搜索字符串

一些更多的XPath的魔法所有作业的描述,你也许可以得到它的显示结果最新版本还(路径是工作/ lastBuild /结果,可能需要增加深度2)

咨询XML API在http://<your hudson url>/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