【问题标题】:How do I setup Jenkins to build all of my versions of a project?如何设置 Jenkins 来构建项目的所有版本?
【发布时间】:2012-06-05 18:55:38
【问题描述】:

我正在通过 subversion 学习整个版本控制,并为项目的所有不同工作/版本使用主干、分支、标签等。我还在尝试使用与 Jenkins 的持续集成来加快速度(尝试了 ccnet,设置真是一场噩梦!)。

所以我的问题是,如果我的项目 SVN 中有以下区域:

file:///E:/Data/SVN/MyProject/trunk
file:///E:/Data/SVN/MyProject/tags/version_1.0
file:///E:/Data/SVN/MyProject/branch/version_1.1

.. 在 Jenkins 中设置此构建项目的最佳实践是什么,以便持续监控我的 SVN 中的所有不同区域并构建任何更改?

我是否会设置一个项目,其中包含多个源代码存储库,每个版本/主干一个等?或者我会设置多个构建项目吗?我该怎么做?

编辑:我应该为此使用矩阵项目(构建多配置项目)吗?

【问题讨论】:

    标签: version-control continuous-integration hudson jenkins


    【解决方案1】:

    对于夜间构建(那些运行相对不频繁且需要较长时间的构建,通常是由于在其中进行了更多自动化测试),矩阵项目非常适合。它的主要优点是“单点更改”——您不必编辑多个作业即可将相同的更改引入您的构建。当然,这仅适用于工作在分支机构之间几乎没有差异的情况(顺便说一下,这种差异通常可以由Run Condition Plugin 巧妙地处理)。

    在这种情况下,多配置项目可能不适合交付构建(交付构建在开发人员提交到存储库以检查他/她的更改是否集成良好时运行)。原因是,如果您致力于主干,您只想构建主干,但矩阵构建将构建所有内容(消耗计算资源和时间)。

    对于交付构建,我将使用参数化构建,其中主要参数是要构建的分支。该构建可以由 SVN 挂钩触发(请参阅this document)。或者,您可以为每个轮询分支的分支关联一个触发器构建(通过Subversion plugin),并通过Parameterized Trigger plugin 使用适当的参数触发您的主构建。

    顺便说一句,我实际上使用了所有上述方法(除了 SVN 钩子,我不再这样做,不完全是技术原因)。

    【讨论】:

      【解决方案2】:

      设置多个作业,一个用于您要构建的每个分支/标签。一旦你得到一个工作良好,你可以复制它来创建其余的,只更改 SVN URL。

      您还应该在停止维护这些标签/分支时摆脱旧工作,以免您的 Jenkins 配置失控。

      【讨论】:

        猜你喜欢
        • 2017-11-27
        • 2012-01-15
        • 1970-01-01
        • 1970-01-01
        • 2018-10-26
        • 1970-01-01
        • 2012-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多