Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Jenkinsfile(构建管道插件)的多配置项目_Jenkins_Jenkins Plugins_Jenkins Pipeline - Fatal编程技术网

使用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}
此设置导致管道作业被调用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

如果只希望传递基于文本的参数或标签名称,则此解决方案有效。如果您想做“使用不同的JDK构建”之类的事情,那么使用它将非常困难。不过,我希望这仍然有帮助。

奖励奖金通常意味着你也应该接受答案。