Ank*_*han 18 jenkins jenkins-plugins jenkins-pipeline
我正在尝试创建一个多配置项目,测试一组定义兼容性矩阵的构建(例如通过浏览器和操作系统).我想定义单个组合的步骤Jenkinsfile
.
我怎样才能做到这一点?我可以创建一个依赖于JenkinsFile的管道参数化构建,但我无法弄清楚如何将它连接到多配置构建.
似乎不可能将 Jenkinsfile 作为多配置项目中的构建步骤。Jenkinsfile 用于流水线作业,它也是作业类型,并且 Jenkins 不支持(简单)作业类型之间的转换。除此之外,构建步骤意味着它在执行程序槽中的特定节点上运行。然而,一个 Jenkinsfile 在 master 上进行评估,它本身定义了 buildsteps(带有它们的节点标签),如果它在 buildstep 本身中运行,它会固有地发生冲突。
可以通过多配置作业触发管道并为其提供来自多配置作业的参数。(我也使用了参数化触发器插件来做到这一点)
我的管道作业有两个文本参数,label
以及version
一个如下所示的示例 Jenkinsfile:
node(this.label){
println this.version
}
Run Code Online (Sandbox Code Playgroud)
我的多配置作业具有以下配置:
version
带有值的自定义轴alpha beta gamma
和label
带有选定节点的从轴version=${version}
和label=${label}
这种设置导致管道作业被调用 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
Run Code Online (Sandbox Code Playgroud)
如果您只想传递基于文本的参数或标签名称,则此解决方案有效。如果您想做诸如“使用不同的 jdks 构建”之类的操作,使用起来会相当棘手。我希望它仍然有帮助。
归档时间: |
|
查看次数: |
2873 次 |
最近记录: |