【问题标题】:BuildBot - Possible to do a dynamic repo checkout?BuildBot - 可以进行动态回购结帐吗?
【发布时间】:2019-03-26 17:59:38
【问题描述】:

我的目标是设置一个 buildbot,它从 github 服务器侦听 webhook,然后通过通用 make all 命令构建 webhook 中列出的 repo。

我遇到的问题是它出现在我需要提前指定 github repo 的构建步骤中,即

factory.addStep(
    steps.GitHub(
        repourl= "github.<domain>.com/<user>/<repo>/", 
        mode='full',
        method='clobber'        
   )
)

理想情况下,我希望能够从 http 请求中获取 repo url(显然在盲目运行代码之前对其进行验证)然后检查它。比如:

factory.addStep(
    steps.GitHub(
        repourl= request["repo_url"], 
        mode='full',
        method='clobber'        
   )
)

这在 buildbot 框架中可行吗?任何要查看的提示或其他文档将不胜感激!!

【问题讨论】:

标签: python continuous-integration buildbot


【解决方案1】:

只要把其他人遇到这个我发现了两个潜在的解决方案。首先,webhook 中有一个未记录的选项,它允许将所有 HTTP 请求信息添加到属性对象中:

'www' : { 
    ...
    "change_hook_dialects" : {'github': {"github_property_whitelist": "*"}},
    ...
}

然后,您可以访问调度程序/构建器阶段中的所有 http 请求信息。然后,您还可以使用 util 属性在 build_steps 阶段获取属性信息,即

factory.addStep(
    steps.GitHub(
        repourl= util.Property('repository'), 
        mode='full',
        method='clobber', 
        submodules=True
    )
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 2014-05-13
    • 2019-03-30
    • 1970-01-01
    • 2020-01-12
    • 2013-02-28
    • 2010-09-15
    相关资源
    最近更新 更多