我有一个构建作业和一个测试作业参数。
我想要在构建作业之后,同时在一个参数和同一个测试作业中运行测试作业,并在并行执行中使用不同的参数。
build job
|
/ \
test job test job
with one params with other params
| |
如何完成此操作以及是否可以在不编写自己的插件的情况下执行此操作?
谢谢!
答案 0 :(得分:20)
创建测试作业时,将其创建为“构建多配置项目” 在配置作业时选择“配置矩阵”,然后选择“用户定义的轴”
您可以使用此轴的名称作为作业中的参数。给定的参数将在不同的作业中同时启动。 (如果有足够的执行者可用)
答案 1 :(得分:2)
玩@Soo Wei Tan的回答,我发现以下效果很好。
然后,在shell中,编写一系列属性文件,Trigger插件将负责其余的工作。
您甚至可以通过有趣的方式将其与顶级矩阵式作业相结合。例如,在用户定义的轴上触发,使用网格跟踪所有轴。非常灵活的方法,如果有点隐藏。
答案 2 :(得分:1)
假设您在完成构建作业时知道参数,可以使用Parameterized Trigger Build插件触发具有不同参数的下游作业。
答案 3 :(得分:1)
我有相同的要求,并发现Parameterized Trigger Plugin不够灵活,无法将不同的参数并行传递给不同(或相同)的作业。是的,您可以将参数工厂与属性文件一起使用,但这意味着仅为了配置Jenkins而将新属性文件添加到我的版本控制中。具有配置矩阵的多配置项目似乎也过于复杂。
对我而言,更好,更直接的解决方案是Multijob Plugin,它具有阶段的概念。 MultiJob可以有多个阶段。阶段按顺序运行,阶段内的作业将同时运行(并行)。
安装MultiJob插件后,在创建新的Jenkins项目时,选择 MultiJob Project 。然后,您可以创建一个或多个阶段。 一个阶段中的每个作业都有自己的参数,单击高级... - >添加参数
如果特定作业失败,如果整个MultiJob继续或失败等,也很容易配置会发生什么,请参阅杀死阶段:和继续条件到下一个相 当工作状态为:设置时。
对我而言,这比参数化触发插件或多配置项目更直观,并且不需要在Jenkins之外进行任何额外配置。
答案 4 :(得分:0)
一种选择是使用Build Flow插件(https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin)和Job DSL插件(https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin)。您可以使用Job DSL定义使用不同命令行参数调用构建的作业步骤,并使用Build Flow编排构建。
答案 5 :(得分:0)
我的用例略有不同。我们在开发周期中有针对主构建的测试作业。在周期结束时;我们创建一个候选版本,并对其进行相同的测试。我们还希望继续测试主要版本。
Main Build Release Build
\ /
|
same set of tests
我可以用不同的名称创建重复的作业来处理这个问题。但必须有一种更优雅/更简单的方式。
答案 6 :(得分:-2)
您能否再说一下为什么您需要同时运行测试作业?
我确实使用需要拆分并同时运行的测试,但是我使用了一个权重为>的Jenkins / Hudson作业。 1(见Heavy Job Plugin)。