【问题标题】:Jenkins - Publish HTML report to custom URLJenkins - 将 HTML 报告发布到自定义 URL
【发布时间】:2017-07-06 15:36:33
【问题描述】:

我在 Jenkins 中的一项工作会生成一个 html 报告,并使用 HTML Publisher Plugin 从相应的构建链接到它。在这种情况下,如果我想直接访问这个 HTML 页面(假设没有启用安全性,所以不需要登录),我需要点击以下形式的链接:

http://hostname:port/job/Some%20Job%20Name/buildNumber/Functional_Test_Report/

对于每个后续构建,URL 将根据buildNumber 更改。我想要一个“漂亮”的 URL,它会一直显示最后的报告。说这样的话:

http://hostname:port/testReport

每次构建完成时,实际的报告 HTML 将自动推送到此位置,并且无需每次都通过 Jenkins 来查看报告。

有没有办法做到这一点?

【问题讨论】:

    标签: html jenkins reporting


    【解决方案1】:

    您应该能够公开BUILD_NUMBER via environment variables 并从那里生成HTML 报告所在的URL。你想怎么做取决于你,但你可以做到这一点,所以 Jenkins 作业要么部署一个文件,该文件的内部版本号硬编码在 index.html 文件中,<script> 重定向到你在上面发布的 URL 模式。这实际上取决于您如何设置hostname:port。由于您只需要最新的报告,因此您可以简单地制作它,以便最新的作业始终覆盖旧文件。

    我们做了类似的事情,尽管我们只是将内部版本号公开给 PHP、JSP 等文件,以便 QA 知道他们正在查看的版本。然后我们有一个固定的 URL,他们可以随时访问 (hostname:port/status)。如果我们真的想要,我们可以让它重定向。

    【讨论】:

    • 感谢您的回答!是的,固定网址正是我想要的。内部版本号不应该是 URL 的一部分,只有最后一个应该是相关的。我不确定我是否理解如何按照您的建议生成这样的 URL?以及如何将报告推送给它?我假设它是一个包含 index.html 文件的文件夹?
    • 这真的取决于你如何配置你的 jenkins 作业,但我们实际上只是通过 jenkins 运行一个 shell 脚本来创建文件(在 shell 脚本中我们实际上只是调用cat)然后取决于你在哪里正在托管您的网站,我们让我们的 jenkins 工作进行部署并运行 shell 脚本,以便它将使用“动态”链接创建我们的网页。
    【解决方案2】:

    只是在这里发布我自己的解决方案。也许不是最优雅的,但一种方法是在 Jenkins 运行的同一台机器上部署 HTTP 服务器,并在相关 Jenkins 作业中添加“构建后步骤”以将 HTML 报告文件复制到 HTTP 服务器覆盖现有文件,如果有的。然后,报告将在 HTTP 服务器运行的任何端口上可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多