我有多个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分别保存每个存储库的干净副本?
提前致谢!
答案 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发布时包含在内。