【问题标题】:Customizing buildbot webstatus自定义 buildbot 网站状态
【发布时间】:2014-06-29 14:28:32
【问题描述】:

我正在尝试为我的 buildbot 0.8.8 安装自定义 webstatus 模板 根据文档:

Buildbot 为 Web 界面使用模板系统。这些模板的来源可以在 buildbot 库区的 status/web/templates/ 目录中找到。您可以通过在 buildmaster 的基本目录中的 templates/ 目录中创建替代版本来覆盖这些模板。

我做了什么:

  • 将我的 buildbot 安装文件夹 (/usr/lib64/.../status/web/templates) 中的所有 html 模板复制到我在 buildmaster 安装根文件夹中找到的 templates 文件夹中(templates 已经存在,并且它包含一个 README 文件,似乎可以确认文档中的内容)
  • 修改了root.html模板

很遗憾,我在 webstatus 页面中看不到任何变化。

我做的另一个测试是直接更改buildbot安装路径中的原始模板文件。现在显示更改。似乎 buildmaster 没有在本地配置路径中“看到”新模板。 我检查了文件/目录权限,我没有发现任何问题。

尝试清理浏览器缓存也没有运气。 我是不是做错了什么?

【问题讨论】:

  • 我已经覆盖了 root.html 并将其放在 {master_dir}/templates 中。这个对我有用 !但是我在 buildmaster 配置期间复制了修改后的 root.html 文件,即当我启动 buildmaster 时。
  • @sk11 buildbot 邮件列表中的某个人指出需要在将新模板文件放入 {master_dir}/templates 后重新启动 master,以便 buildmaster 知道新文件。不幸的是,这对我不起作用。只有在系统范围的安装中修改模板文件才能看到修改。
  • 修改完你的templates目录为什么不重启master和slave呢?

标签: buildbot


【解决方案1】:

根据源代码,模板是从 WebStatus 对象中检索的,即 builder.py:573 ([1]) :

template = req.site.buildbot_service.templates.get_template("builders.html")

此属性在 baseweb.py:465 ([2]) 中创建:

self.templates = createJinjaEnv(revlink, self.changecommentlink,
                                    self.repositories, self.projects, self.jinja_loaders)

模板查找算法可以在 createJinjaEnv 函数中找到,在 base.py:506 ([3]) 附近:

all_loaders = [jinja2.FileSystemLoader(os.path.join(os.getcwd(), 'templates'))]
if jinja_loaders:
    all_loaders.extend(jinja_loaders)
all_loaders.append(jinja2.PackageLoader('buildbot.status.web', 'templates'))
loader = jinja2.ChoiceLoader(all_loaders)

根据文档 [4],jinja 将返回指定列表中的第一个现有文件,因此在尝试加载模板时,Jinja 将依次查找:

  • cwd
  • jinja_loaders 属性,可以通过 master.cfg 中的 jinja_loaders 参数在 WebStatus 构造函数中定义
  • python 包中的文件

IMO 最简单的选择是第二种。

希望对你有帮助

[1]https://github.com/buildbot/buildbot/blob/2ab0e16ed0c46249f1d33308fd6878a1fc953f6e/master/buildbot/status/web/builder.py#L573 [2]https://github.com/buildbot/buildbot/blob/2ab0e16ed0c46249f1d33308fd6878a1fc953f6e/master/buildbot/status/web/baseweb.py#L465 [3]https://github.com/buildbot/buildbot/blob/2ab0e16ed0c46249f1d33308fd6878a1fc953f6e/master/buildbot/status/web/base.py#L506 [4]http://jinja.pocoo.org/docs/dev/api/#jinja2.ChoiceLoader

【讨论】:

    猜你喜欢
    • 2012-11-28
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多