詹金斯和多个git分支?

时间:2011-09-02 19:28:02

标签: git hudson branch jenkins

我正在开展Jenkins工作,我需要它在同一个存储库中构建两个分支。我怎么能这样做?

4 个答案:

答案 0 :(得分:5)

考虑到Jenkins无法在两个版本的存储库上执行一个作业(这将获得两个不同分支的内容),我建议创建两个不同的作业,每个分支一个(使用Jenkins Git plugin)。

答案 1 :(得分:3)

您是否在询问是否要在同一个签出的工作区目录中构建两个分支?

如果在同一个工作区目录中,您需要做的就是创建一个脚本,该脚本将检出一个分支,构建它,完成后,检查下一个分支然后构建它。

这个单个脚本将是单个Jenkins作业调用的脚本。

例如,您的构建脚本看起来像这样:

git clone url:repo.git workspace
cd workspace 
git checkout branchA
make
# now you're done building branchA
# next checkout branchB and run make
git checkout branchB
make
# now you are done building branchB

每次结帐都会安装所需分支的文件。这将相应地构建它。但是,由于它们将共享相同的工作空间目录,这可能意味着第一个构建将生成新文件,然后在第二个构建运行时将出现这些文件。我假设这是你想要的效果,因为你想在同一个工作区目录中构建两个分支。

更新:如果你想为下一次构建提供一个新的工作空间,请使用git clean -xdf。

答案 2 :(得分:3)

此插件将为您构建每个分支:https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin

您还可以使用GitLab(https://wiki.jenkins-ci.org/display/JENKINS/GitLab+Plugin)/ GitHub(https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin)插件,这些插件可以在提交代码时触发构建,然后构建已投入的分支。

答案 3 :(得分:0)

如果您需要上述内容并且想要Jenkins构建任何新分支的高级功能,并且仅在构建成功时将其合并为主(即,您需要两个主分支和两个构建),您可能需要考虑分叉存储库和存储库之间的合并更改(git是为那种东西而构建的,虽然我还没有完全达到这个用途)。

所以你基本上会有2个git存储库和两个jenkins构建,你可以配置git插件来构建每个存储库中的任何分支并合并到该存储库的master中。因此,每个存储库在此配置中都像一个分支。

这是我们的计划,当我们从1.x版本线开始新版本2.x时,无论如何都是fork。我们将看到它在实践中的运作方式。

后, 迪安