我正在尝试创建一个多配置项目,该项目测试一系列定义了兼容性矩阵的构建(例如,通过浏览器和操作系统)。我想通过Jenkinsfile
定义单个组合的步骤。
我如何才能做到这一点?我可以创建依赖于JenkinsFile的管道参数化构建,但我不知道如何将其连接到多配置构建。
发布于 2017-01-20 21:56:48
在多配置项目中使用Jenkinsfile作为构建步骤似乎是不可能的。Jenkins文件用于管道作业,该作业也是作业类型,而Jenkins不支持(简单)作业类型之间的转换。除此之外,buildstep意味着它在executor插槽中的特定节点上运行。然而,Jenkinsfile是在master上计算的,它本身定义了buildstep (带有它们的节点标签),如果它在buildstep本身中运行,就会固有地发生冲突。
可以通过多配置作业触发管道,并为其提供来自多配置作业的参数。(我还使用了参数化触发器插件来完成此操作)
我的管道作业有两个文本参数,label
和version
,以及一个示例Jenkinsfile,如下所示:
node(this.label){
println this.version
}
我的多配置作业具有以下配置:
alpha beta gamma
的自定义轴version
和具有选定节点的从属轴label
version=${version}
和version=${version}
触发管道作业这种设置导致管道作业被调用3次(因为我只选择了一个节点),每次都使用不同的版本,并在我指定的标签上运行。以下是其中一个日志:
[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
如果您只想传递基于文本的参数或标签名称,则此解决方案有效。如果你想做一些像“使用不同的jdks构建”这样的事情,那么使用它将会非常棘手。我希望它仍然是有帮助的。
https://stackoverflow.com/questions/36413443
复制相似问题