【问题标题】:Jenkins: Display last console output on project pageJenkins:在项目页面上显示最后一个控制台输出
【发布时间】:2021-04-19 17:04:13
【问题描述】:

在 Jenkins 中查看项目时,我希望看到项目页面上显示的最后一个控制台输出。

这满足了两个需求:

  • 我经常只是想看看构建的输出是什么;点击到最后一个控制台输出似乎是不必要的麻烦
  • 非技术管理人员不记得在输出与他们相关的情况下如何/没有足够的动力点击到最后一个控制台输出,但前提是他们很容易看到它

我一直在寻找支持此功能的插件,但找不到。

我有什么选择?

【问题讨论】:

    标签: jenkins jenkins-plugins


    【解决方案1】:

    首先是一个简单的解决方案:职位描述(在主职位页面上按“编辑描述”按钮)承认 HREF 链接。将该链接设为您最新的构建控制台永久链接 (http://[jenkins_server]/job/[job-name]/lastBuild/console)。

    如果甚至单击太多,这里有一个可能的解决方案:您可以使用日志内容作为您的工作描述。您可以通过 Jenkins CLI 更新您的工作:

    java -jar jenkins-cli.jar -s http://[jenkins-server] update-job [job-name] < config.xml
    

    所以你需要做的是:在你的作业运行后,触发另一个作业,它将触发作业和控制台输出文件作为参数,将作业的 config.xml 中的 替换为控制台文件的内容(使用适当的转义等),然后像上面一样运行更新命令。当然,这种解决方案是劳动密集型且容易出错的。

    【讨论】:

    • 不错的建议,我会试一试第二个想法,不像看起来那么耗时,因为它可以很好地自动化。
    • 我的意思是自动化很耗时。
    【解决方案2】:

    我自己也有同样的问题,我最终发现这个选项很有用......

    http://[jenkins-server]/job/[job-name]/[build-number|lastBuild]/logText/progressiveText?start=0
    

    【讨论】:

      【解决方案3】:

      编辑:这在当前版本的 Jenkins 中不再有效

      与 malenkiy_scot 的回答类似,您实际上可以在描述中嵌入 iframe。

      我用:

      <iframe src='lastBuild/consoleText' style='width: 80%; height: 500px'></iframe>
      

      作为我的项目描述,并在项目描述页面显示最新的控制台文本。

      【讨论】:

      • 这是如何工作的?我刚刚在描述区域添加了上面的代码,但是它没有使用任何控制台文本进行更新。你能告诉我如何在项目描述/仪表板中显示最后一个构建链接吗?
      • 最新的 Jenkins 说该字段是“转义的 html”,实际上它不会呈现。所以我也很好奇我们能不能做到这一点。
      • 你说得对,这在最新版本的 Jenkins 中不起作用。如果我想出新的解决方案,我会再次发布。
      【解决方案4】:

      【讨论】:

      • 这些插件都不允许在项目页面上显示最后一个控制台输出
      • 是的,你是对的——我的错。但话又说回来,他们更进一步,允许直接从整体视图显示最后一个控制台。对你的非技术管理来说不是更好吗?
      【解决方案5】:

      可能你不需要它,你可以点击每个构建左侧的状态按钮,每个按钮显示每个构建的控制台输出。

      当然,此功能可能不适用于所有 Jenkins 版本。

      【讨论】:

      • 最新版本的构建不再有状态按钮。
      【解决方案6】:

      您的问题的解决方案是 Jenkins 的 https://wiki.jenkins-ci.org/display/JENKINS/Extra+Columns+Plugin 插件。安装后,您可以修改视图以添加控制台输出按钮作为附加列。

      【讨论】:

      • 该插件只能在视图页面添加控制台输出按钮,不能在项目页面添加。
      【解决方案7】:

      我刚刚创建了一个插件,可以在项目页面上显示最新构建的控制台输出。

      https://github.com/jenkinsci/display-console-output-plugin

      要使用这个插件,你必须输入mvn hpi:hpi 来创建一个display-console-output.hpi 文件。然后从http://localhost:8080/pluginManager/advanced上传这个插件。

      【讨论】:

        【解决方案8】:

        对于声明式管道,您可以通过在文件的最顶部添加以下行来在显示进度条的位置显示指向控制台的链接:

        currentBuild.description = """<a href="${JOB_URL}lastBuild/console">Job console</a>"""
        

        这取决于一个插件和一个设置,这两者都已经在我的系统上:

        • OWASP Markup Formatter plugin 提供设置Security &gt; Configure Global Security &gt; Markup Formatter,应设置为“安全 HTML”。
        • Jenkins -&gt; Manage Jenkins -&gt; Configure System -&gt; Jenkins Location -&gt; Jenkins URL 设置必须是 Jenkins 安装的 URL。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-09-18
          • 2015-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-21
          • 2017-06-11
          • 1970-01-01
          相关资源
          最近更新 更多