首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制buildbot webstatus状态

定制buildbot webstatus状态
EN

Stack Overflow用户
提问于 2014-06-29 14:28:32
回答 1查看 736关注 0票数 4

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

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

在这里我所做的:

  • 将所有html模板从我的buildbot安装文件夹(/usr/web 64/./state/web/ templates )复制到我在buildmaster安装根文件夹中找到的templates文件夹中(模板已经在那里,它包含一个似乎确认文档状态的自述文件)
  • 修改了root.html模板

不幸的是,我看不到网页状态的任何变化。

我所做的另一个测试是直接更改buildbot安装路径中的原始模板文件。现在显示这些更改。看起来构建主程序并没有在本地配置路径中“看到”新模板。我检查了文件/dir权限,在这一边找不到任何问题。

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

EN

回答 1

Stack Overflow用户

发布于 2015-11-23 16:37:30

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

代码语言:javascript
复制
template = req.site.buildbot_service.templates.get_template("builders.html")

此属性是在baseweb.py:465 (2)中创建的:

代码语言:javascript
复制
self.templates = createJinjaEnv(revlink, self.changecommentlink,
                                    self.repositories, self.projects, self.jinja_loaders)

模板查找算法可以在createJinjaEnv函数中找到,围绕着base.py:506 (3):

代码语言:javascript
复制
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中的jinja_loaders param在WebStatus构造函数中定义。
  • python包中的文件

海事组织最简单的选择是第二个。

希望它能帮上忙

1 2 3 4

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24477000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档