我想自动化构建过程。
我们有30多个配置,每个配置都有不同的SVN分支。理想情况下,由于维护工作和人为错误的风险,我希望避免创建30个单独的Jenkins作业。
这是Jenkins设计的“多配置项目”,但遗憾的是Jenkins不支持在SVN URL中使用配置矩阵轴。
我也无法使用参数化构建进行构建,因为Jenkins不允许在本地校验路径中使用变量(URL中的变量工作正常,但它们总是最终进入名为${BRANCH}
的目录(字面值) )。
在一天结束时,我希望能够查看https://domain.ext/something/${BRANCH}/
并将其保存到/some/path/${BRANCH}
。如果这样做可以让我能够利用Jenkin的内置SCM功能(例如民意调查),那就更好了。
如何让Jenkins了解我想要实现的目标?
答案 0 :(得分:1)
有两种方法可以按照你想要的方式做一些事情。您可以在一个项目中添加所有分支(通过配置中的“添加位置”),将它们检出到不同的目录,并“手动”找出更改的内容(或构建所有内容)。这可以与多配置事物集成,配置轴是不同的结账位置,即每个配置通过参数获得不同的工作目录。
另一种方法是不告诉Jenkins有关存储库的信息,而是手动触发构建(例如通过SVN提交钩子)并将源代码作为第一个构建步骤。同样,这可以作为一个多配置项目完成,如上所述。
答案 1 :(得分:0)
我最终解决了这个问题,让Jenkins在如此高的级别上检查了SVN存储库,它包含了我需要的所有分支。这不是一个理想的解决方案,因为你在构建过程中会浪费时间在所有上运行'svn update'。
答案 2 :(得分:0)
有一个类似规模较小的类似问题:必须构建具有相同配置但不同SVN路径的中继和分支。
首次尝试在结帐网址中使用$ SVN_BRANCH并使用字符串参数进行设置。手动使用效果很好,但没有使用矩阵工作(正如Aleksi已经指出的那样)。我用矩阵构建所做的就是触发参数化工作作为后续工作,看起来很丑陋。
现在我最终使用" Jobcopy Builder插件":我取消激活我的初始工作并将其用作模板。在复印工作中,我有一份复印工作"构建步骤复制已停用的作业,用实际的分支名称(trunk或branches / some_branch)替换$ SVN_BRANCH并激活这两个作业。因为我也检查了"覆盖"选项,运行"复制作业后,所有作业配置都会更新"并保留构建历史记录。