代码之家  ›  专栏  ›  技术社区  ›  dave

按描述筛选Hudson生成结果

  •  0
  • dave  · 技术社区  · 15 年前

    我需要根据在Hudson中构建的描述筛选作业的构建结果。我发现了一个插件,它允许基于工作描述进行过滤,但是我不确定如何开始对构建进行同样的过滤。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Sean Patrick Floyd    15 年前

    将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)

    请访问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