【问题标题】:Jenkins and multiple git branches?詹金斯和多个 git 分支?
【发布时间】:2011-11-09 10:37:19
【问题描述】:

我正在从事 Jenkins 的工作,我需要它在同一个存储库中构建两个分支。我该怎么做?

【问题讨论】:

    标签: git hudson branch jenkins


    【解决方案1】:

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

    【讨论】:

    • 难道没有办法在一个工作中建立两个分支吗?
    • @Marx:因为插件目前已经完成,不,因为它需要首先检查 one 特定版本。话虽如此,您可以在第三个作业(包装作业)中引用这两个作业,如 Join 插件 (wiki.jenkins-ci.org/display/JENKINS/Join+Plugin) 中所示
    • Jenkins 不能实现多种材料/源代码控制吗?在 Teamcity 中,我会添加两个来源,每个分支一个。
    • @manojlds:应该是可能的(issues.jenkins-ci.org/browse/JENKINS-4542issues.hudson-ci.org/browse/HUDSON-5158),但我认为它还没有集成,特别是当这些多个来源是来自 git repo 的两个分支时。
    【解决方案2】:

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

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

    然后这个单一的脚本将被单一的 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。

    【讨论】:

      【解决方案3】:

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

      因此,您基本上将拥有 2 个 git 存储库和两个 jenkins 构建,您可以将 git 插件配置为从每个存储库中的任何分支构建并合并到该存储库的 master 中。因此,每个存储库在此配置中就像一个分支。

      当我们从 1.x 发布线开始新的 2.x 发布线时,我们的计划就是分叉。我们将在实践中看到它是如何工作的。

      后来, 院长

      【讨论】:

        【解决方案4】:

        此插件将为您构建每个分支: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) 插件,它们可以在提交代码时触发构建,然后将构建提交到的分支。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-11
          • 1970-01-01
          • 2018-06-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多