使用Jenkinsfile(构建管道插件)的多配置项目
我正在尝试创建一个多配置项目,测试一系列定义兼容性矩阵的构建(例如通过浏览器和操作系统)。我想通过使用Jenkinsfile(构建管道插件)的多配置项目,jenkins,jenkins-plugins,jenkins-pipeline,Jenkins,Jenkins Plugins,Jenkins Pipeline,我正在尝试创建一个多配置项目,测试一系列定义兼容性矩阵的构建(例如通过浏览器和操作系统)。我想通过Jenkinsfile为单个组合定义步骤 我怎样才能做到这一点?我可以创建一个依赖于Jenkins文件的管道参数化构建,但我不知道如何将其连接到多配置构建 在多配置项目中,似乎不可能将Jenkins文件作为构建步骤。Jenkins文件用于管道作业,管道作业也是作业类型,Jenkins不支持(轻松)作业类型之间的转换。除此之外,buildstep还意味着它在执行器插槽中的特定节点上运行。然而,Jenk
Jenkinsfile
为单个组合定义步骤
我怎样才能做到这一点?我可以创建一个依赖于Jenkins文件的管道参数化构建,但我不知道如何将其连接到多配置构建 在多配置项目中,似乎不可能将Jenkins文件作为构建步骤。Jenkins文件用于管道作业,管道作业也是作业类型,Jenkins不支持(轻松)作业类型之间的转换。除此之外,buildstep还意味着它在执行器插槽中的特定节点上运行。然而,Jenkins文件是在主文件上计算的,它本身定义了buildsteps(及其节点标签),如果它在buildstep本身中运行,则会发生固有的冲突 可以通过多配置作业触发管道,并向其提供多配置作业中的参数。(我还使用了参数化触发器插件来实现这一点) 我的管道作业有两个文本参数,
label
和version
,示例文件如下所示:
node(this.label){
println this.version
}
我的多重配置作业具有以下配置:
- 带有值的自定义轴
,以及带有选定节点的从属轴版本
标签
- buildstep“Trigger/call builds on other Project”使用预定义参数
和version=${version}
label=${label}
[Pipeline] node
Running on master in /var/lib/jenkins/jobs/pipelinejob/workspace
[Pipeline] {
[Pipeline] echo
gamma
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
如果只希望传递基于文本的参数或标签名称,则此解决方案有效。如果您想做“使用不同的JDK构建”之类的事情,那么使用它将非常困难。不过,我希望这仍然有帮助。奖励奖金通常意味着你也应该接受答案。