按描述过滤Hudson构建结果

时间:2010-06-16 18:36:08

标签: user-interface reporting hudson filtering

我需要根据Hudson中构建的描述来过滤作业的构建结果。我找到了一个允许基于作业描述进行过滤的插件,但是我不确定如何开始为构建做同样的事情。

1 个答案:

答案 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