我正在试用 Hudson 来替换我们当前的 Buildbot 设置。我安装了 git 插件。我们当前的设置如下:
ssh://server:/repo/test_framework.git
ssh://server:/repo/project_a.git
现在,为了构建 project_a
,我添加了一个包含多个 git 存储库(上面的那些)的新作业。我希望 Hudson 将存储库克隆到 $WORKSPACE
下的不同目录中,因为 test_framework
需要该层次结构。但 Hudson 似乎将所有内容 merge 到 $WORKSPACE
中。从控制台日志:
warning: no common commits
...
[workspace] $ git merge-base ce14a4579e87971659e5e0469136713847055a29 96d2b3c27595de243702414c4358366923696d78
[workspace] $ git merge-base ce14a4579e87971659e5e0469136713847055a29 5bb011b3fa288afd5e4392640b32b8bcc982103e
[workspace] $ git merge-base ce14a4579e87971659e5e0469136713847055a29 aa6ade81669883909ba5f5459a205df1bd0df3c0
我可以在 Hudson 中配置它以更好地适应我们的项目设置吗?我是否需要为每个项目创建一个本地虚拟 git 存储库作为 git 子模块或其他东西?
最佳答案
在 Hudson 中,您可以将多个作业链接在一起。您可以尝试为 test_framework 创建单独的 Hudson 作业,为 project_a 创建另一个作业。 Hudson 在 $WORKSPACE 中为每个作业创建一个单独的目录,因此现在您应该在 $WORKSPACE 下有两个不同的目录。
设置链接
在 project_a 的作业配置中向下滚动到 Post-build actions 并选中 Build other projects... 在 test_framework 中输入要构建的项目。
在 test_framework 的作业配置中,确保 Poll SCM 未选中并将在其他项目之后build设置为 project_a。
工作原理
您现在配置的是 project_a 将轮询 SCM 以查找更改,当发现更改时,它将从 git 中 pull 它们。运行构建步骤(如果有)并在完成时触发 test_framework 作业以从 git 中提取更改(如果有)并运行其构建步骤。
关于git - 使用 Hudson 并使用多个 git 存储库构建步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1808891/