【问题标题】:Make Jenkins build multiple configurations with variable SVN URLs让 Jenkins 使用可变 SVN URL 构建多个配置
【发布时间】:2012-04-12 09:00:54
【问题描述】:

我想自动化我们的构建过程。

我们有 30 多种配置,每个配置都有不同的 SVN 分支。理想情况下,由于维护工作和人为错误的风险,我希望避免创建 30 个单独的 Jenkins 作业。

这就是 Jenkins 中的“多配置项目”的设计目的,但不幸的是,Jenkins 不支持在 SVN URL 中使用配置矩阵轴。

我也无法使用参数化构建进行构建,因为 Jenkins 不允许在本地结帐路径中使用变量(URL 中的变量可以正常工作,但它们最终总是会转到一个名为 ${BRANCH}(字面意思)的目录。

最后,我希望能够查看https://domain.ext/something/${BRANCH}/ 并将其保存到/some/path/${BRANCH}。如果这样做的方式能让我能够利用 Jenkins 的内置 SCM 功能(例如轮询),那就更好了。

如何让 Jenkins 了解我想要达到的目标?

【问题讨论】:

    标签: jenkins multi-configuration


    【解决方案1】:

    我可以看到,有两种方法可以按照您想要的方式做某事。您可以在单个项目中添加所有分支(通过配置中的“添加位置”),将它们检出到不同的目录并“手动”找出更改的内容(或构建所有内容)。这可以与多配置的东西集成在一起,您的配置轴是不同的结帐位置,即每个配置都通过参数获得不同的工作目录。

    另一种方法是不告诉 Jenkins 有关存储库的信息,而是手动触发构建(例如,通过 SVN 提交挂钩)并检查源代码作为第一个构建步骤。同样,这可以作为一个多配置项目按照上述类似的方式完成。

    【讨论】:

      【解决方案2】:

      我最终解决了这个问题,让 Jenkins 在如此高的级别上检查 SVN 存储库,它包含了我需要的所有分支。不过,这不是一个理想的解决方案,因为您在构建过程中会浪费时间在 everything 上运行“svn update”。

      【讨论】:

        【解决方案3】:

        有一个类似的小规模问题:必须构建主干和一个具有相同配置但不同 SVN 路径的分支。

        第一次尝试是在结帐 URL 中使用 $SVN_BRANCH 并使用字符串参数进行设置。在手动使用时效果很好,但不适用于矩阵作业(正如 Aleksi 已经指出的那样)。我对矩阵构建所能做的就是触发参数化工作作为后续工作,看起来有点难看。

        现在我最终使用了“Jobcopy Builder 插件”:我停用了我的初始工作并将其用作模板。在复制作业中,我有一个“复制作业”构建步骤,它复制停用的作业,将 $SVN_BRANCH 替换为实际的分支名称(主干或分支/some_branch)并激活这两个作业。由于我还选中了“覆盖”选项,因此在运行“复制作业”后会更新所有作业配置并保留构建历史记录。

        【讨论】:

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