git - 使用 Hudson 并使用多个 git 存储库构建步骤

标签 git continuous-integration hudson jenkins

我正在试用 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/

相关文章:

c# - 使用 Git 将夜间构建分发到工作室

java - 如何获取在 hudson 中开始构建的用户的用户名

git - golang git pull repo

tfs - 为什么不使用 TFS 作为构建/CI 解决方案?

testing - 如何在 CI 环境中集成 cy.visit(local vs stage url)?

php - 在 Hudson CI 上加速 PHP 持续集成构建服务器

使用 Hudson 运行 Selenium2/Webdriver 测试时浏览器不可见

linux - centos linux 上的 dotnet 恢复错误 : access to path denied

git - Subgit:避免将 git 分支同步到 svn

Git 忽略除特定扩展名之外的所有文件,即使在子目录下也是如此