【问题标题】:Filtering out jenkins console output of a job过滤掉作业的詹金斯控制台输出
【发布时间】:2017-02-13 22:29:02
【问题描述】:

我是 Jenkins 的新手,我想从 jenkins 控制台输出中过滤掉仅通过 jenkins 作业运行的 unix 脚本的 json 输出 为了简化我的场景,我有一个返回 json 输出的 MyScript unix 脚本。 jenkins 作业使用“执行 shell”构建操作包装 MyScript 执行。 当我运行 jenkins 作业时,MyScript 被执行并且 jenkins 控制台输出返回以下输出:

Started by remote host ...
Building remotely on ... in workspace ...
Set build name.
New build name is '#11-/products/software/myScript.py'
[ScriptWrapper] $ /bin/sh -xe /tmp/hudson9139846468482145951.sh
+ /products/software/myScript.py -t ...
{'ip': '...', 'host': '...'}
Set build name.
New build name is '#11-/products/software/myScript.py'
Variable with name 'BUILD_DISPLAY_NAME' already exists, ...
Finished: SUCCESS

从上面的输出中,我想只过滤掉我的 unix 脚本的 json 输出,即 "{'ip': '...', 'host': '...'}" 。 当我们通过 REST API 调用 jenkins 作业时需要它,并且我们只需要获取被调用的 unix 脚本的 json 输出:

curl -s -k -u ... --request GET "https://<jenkins uri>/jenkins/view/ScriptWrapper/job/ScriptWrapper/19/consoleText"

我们尝试定义解析规则文件,但这样我们只能在“Parsed Console Output”jenkins 视图中突出显示控制台输出中的某些行。 此外,似乎无法通过 rest api 访问此“Parsed Console Output”:

curl -s -k -u ... --request GET "https://<jenkins uri>/jenkins/view/ScriptWrapper/job/ScriptWrapper/19/parsed_console"

-> 不行

有没有办法过滤掉詹金斯控制台输出? 我们还在评估使用 Jenkins Groovy Postbuild 插件的可能性。你认为它有帮助吗? 提前感谢您的任何建议。

【问题讨论】:

    标签: json jenkins


    【解决方案1】:

    如果我正确理解了这个问题,您希望生成只包含您想要的文本的干净输出吗? 如果是这样,那么我建议您修改您的 shell 脚本以将所需的文本输出到文件中,然后使用 Jenkins 中的“存档工件”功能使文件内容可用,或者使用“html 发布者”插件“发布”该文件。 https://wiki.jenkins-ci.org/display/JENKINS/HTML+Publisher+Plugin

    我的第三个选项可能是修改您的 shell 脚本以输出“魔术 cookie”作为您想要的字符串周围的分隔符。 这样您就可以使用 REST API 获取整个控制台输出,然后使用简单的正则表达式轻松过滤掉您想要的文本。

    【讨论】:

    • 嗨 Timmy,是的,我们希望只生成脚本返回的 json 输出。第三个选项不适用,因为:1)外部应用程序调用 jenkins rest api & 只期望 xml/json 结果。它无法使用正则表达式过滤掉文本 2)jenkins 执行 shell 构建操作以运行 myScript 3)myScript 返回 json 输出选项 html 发布者:ERR 目录 '/jenkins/workspace/ScriptWrapper/response' 存在但复制到 '/jenkins 失败/jobs/ScriptWrapper/htmlreports/Job_Response' index.html 应该如何构建?或者 myScript 应该返回 html 输出/应该生成这样的 index.html?
    • 嗨,蒂米,对不起,下面是有关使用 html 发布者的错误的更多详细信息:选项 html 发布者:HTML 目录:./response 索引页面:index.html 报告标题:作业响应错误:目录 '/jenkins/workspace/ScriptWrapper/response' 存在,但无法复制到 '/jenkins/jobs/ScriptWrapper/htmlreports/Job_Response' 错误:这特别奇怪,因为您的构建否则会成功
    • 不确定来自 html 发布者的那些错误。它应该能够发布任何文件。你试过“存档神器”功能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 2021-09-09
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多