是否可以在BuildBot中拥有多个源结帐步骤?我找不到任何明确的文档,但似乎在BuildBot中执行源签出也会将当前工作目录更改为checkout目录,这意味着不清楚从哪个“转”到另一个存储库签出然后运行一个使用两者的脚本。
考虑http://buildbot.net/buildbot/docs/0.8.1/BuildFactory.html处的示例:
从步骤开始,似乎执行了CVS结帐,然后运行make build
。这是BuildBot中的两个步骤,这很方便。
但是,如果您从命令行执行等效操作,那么它将是三个步骤:
cvs co $CVSROOT
cd directory_that_was_created
make build
BuildBot中cd directory_that_was_created
步骤发生在哪里?
但更重要的是,如果我想要两个source.CVS
(嗯,真的source.Git
)步骤怎么办?我跑完第二步后的目录是什么?第二个repo最终是在第一个repo的子目录中吗?
使用Git,似乎我可以创建另一个子模块以确保它们都可以一步完成检查,但如果可能的话,我宁愿不这样做。
答案 0 :(得分:4)
好的,我想出来了。我没有意识到每个步骤都有一个“workdir”的概念,表明“工作”发生在哪里。所有步骤的默认workdir
是名为build
的目录。
在{strong>来源结帐下的http://buildbot.net/buildbot/docs/latest/manual/cfg-buildsteps.html - > 常用参数 - > workdir ,它确实承认源步骤是特殊的“因为它们在workdir之外执行某些操作(比如创建workdir本身)。”
这解释了为什么在上面的例子中没有与cd
命令相对应的明确步骤。为了解决我的问题,我创建了两个Git
步骤,每个步骤都有自己的workdir
值。接下来是调用相应目录的后续ShellCommand
步骤,知道两个workdir
目录将成为彼此的兄弟。