在buildbot中检出多个git存储库时,如何使用复制模式

时间:2012-02-28 19:31:42

标签: git buildbot

我有多个git存储库,它们之间有一些相互依赖关系。在进行完整的系统构建时,我需要检查所有这些 使用buildbot,我可以将mode='clobber'参数用于Git源类构造函数,但这会导致每次都检出所有存储库:

factory.addStep(Git(repourl='ssh://build@build/repo1', mode='clobber', workdir='build/repo1'))
factory.addStep(Git(repourl='ssh://build@build/repo2', mode='clobber', workdir='build/repo2'))
factory.addStep(Git(repourl='ssh://build@build/repo3', mode='clobber', workdir='build/repo3'))

我想使用mode='copy',但是当我这样做时,所有三个存储库的源都会在同一位置检出,例如。 .../source/而不是.../source/repo1 .../source/repo2 .../source/repo3

有没有办法指示buildbot分别保存每个存储库的干净副本?

提前致谢!

2 个答案:

答案 0 :(得分:1)

您应该考虑使用将在source/由buildbot检出的父回购 除了父母回购会将您的所有其他回购参考为 submodules 当在父仓库中检出子模块时,它将在其自己的(repo1,repo2,...)目录中检出。

您只需要调整 buildbot Git parameters ,以便考虑子帐户。

submodules
  

(可选):初始化/更新Git存储库时,这决定了buildbot是否应该考虑git子模块。
  默认值:False。

答案 1 :(得分:1)

使用buildbot 0.8.5及更高版本,您可以使用新的主端源步骤(位于buildbot.steps.source.git.Git而不是builbot.steps.source.Git),然后Git(..., mode='full', ...)将执行结帐加git clean -xfd

此外,正在开展工作以正确支持使用多个源代码,这些代码将在buildbot 0.8.7发布时包含在内。