不访问模板中的新文件

时间:2015-07-13 23:19:27

标签: buildbot

我正在尝试在网页中显示结果。我想从buildbot的瀑布页面链接这个。但是当我使用<a href="link to the page">click</a>时,所需的网页无法打开。我已将此新网页放在templates目录中。还有什么需要做的吗?

1 个答案:

答案 0 :(得分:1)

由于您要显示的结果是由您的某个构建产生的, 瀑布网页模板不相关,因为它们是模板 对于整个瀑布,包括所有构建,无论它们是否存在 是产生这些特定结果的构建。

如果您希望提供指向构建生成的某些文件的链接,请选择 构建中的构建步骤,或者为此目的创建一个构建步骤 瀑布显示中其状态框内的那些链接(例如,在 ShellCommand buildstep提供其stdio日志链接的方式。 例如,您可以使用描述向构建添加最后一步 报告发布

您必须编写自定义的BuildStep类来执行您选择的步骤 或创造。您的自定义BuildStep课程必须来自LoggingBuildStep, 或者来自ShellCommand已经派生的类LoggingBuildStep

必要的自定义是使用覆盖createSummary方法 您自己的实现,并在该实现中调用addURL方法来添加URL 到要发布到buildstep状态框的文件。你可以添加为 你喜欢的很多网址。这是一个大纲示例:

class ReportingStep(ShellCommand):
    ...
    command = ['upload','report',to','some','server']
    ...
    def createSummary(self,log):
        ...
        url = "url/to/the/report/on/the/server"
        self.addURL("Report", url)

现在,当ReportingStep完成时,其状态框将包含 标记为Report的链接指向该步骤已上传到服务器的报告。

Google“buildbot buildstep createSummary”获取更多潜在客户。

  

如果我的文件在本地保存怎么办?现在我只想让用户有一个下载压缩文件的链接?   据我所知,上述定制将有助于提供外部URL。

用户点击从 buildmaster 提供的链接。如果你的 build只是在本地保存这些文件,然后它们保存在 buildslave 上。 因此,除非您的buildslave与buildmaster位于同一台计算机上,否则该链接必须是“外部”文件的URL。

另一方面,如果您的buildstep将文件上传到 buildmaster , 然后链接可以成为本地文件的链接 - 在buildmaster上的本地文件 正在提供链接。

如果你的buildlave 与你的buildmaster在同一台机器上,那么显然 你不需要做任何上传:

addURL("Report",file:///path/to/the/zipfile.zip)

但请记住,如果您希望这些链接中的内容具有持久性 /path/to/the/zipfile.zip最好不要被某个遭到破坏的地方 每个构建。