Jenkins创建新工作流程

Jenkins创建新工作流程,jenkins,groovy,jenkins-workflow,Jenkins,Groovy,Jenkins Workflow,我正在尝试从现有作业生成新作业的参数化构建,如下所示: 我试了两种方法: build('NEXT-DEPLOY-JOB', PARAM_FROM_BUILD:'1.4', DEPLOYMENT_ENVIRONMENT: "QA") 没有偏执的方式: build 'NEXT-DEPLOY-JOB', PARAM_FROM_BUILD:'1.4', DEPLOYMENT_ENVIRONMENT: "QA" 但是,在这两种情况下,我都会收到这样的错误: java.lang.IllegalArgu

我正在尝试从现有作业生成新作业的参数化构建,如下所示:

我试了两种方法:

build('NEXT-DEPLOY-JOB', PARAM_FROM_BUILD:'1.4', DEPLOYMENT_ENVIRONMENT: "QA")
没有偏执的方式:

build 'NEXT-DEPLOY-JOB', PARAM_FROM_BUILD:'1.4', DEPLOYMENT_ENVIRONMENT: "QA" 
但是,在这两种情况下,我都会收到这样的错误:

java.lang.IllegalArgumentException: Expected named arguments but got [{PARAM_FROM_BUILD=1.4, DEPLOYMENT_ENVIRONMENT=QA4}, NEXT-DEPLOY-JOB]
请告诉我,我做错了什么?

试试下面的方法(正如我从@Jesse Glick中学到的,这是不推荐的…)


@Jayan引用的语法将起作用,但不推荐使用。(工作流语法与状态的持久性无关。)


使用Snippet Generator查看正确语法的示例,该语法根据您正在触发的特定下游作业所需的参数类型进行定制。

当我在2.0管道中使用Snippet Generator时,会得到类似于
build('trunk/checkout',parameters:[$class:'StringParameterValue',name:'PIPELINE_ID',value:env.build_ID]])
,我仍然会遇到这个错误(
需要命名参数,但得到[{parameters=[{$class=StringParameterValue,name=PIPELINE\u ID,value=16}]},trunk/checkout]
)。您忘记了
作业:
。阅读本教程。重点是代码直接来自代码段生成器,就像现在一样(除了
env.BUILD\u ID
)。我没有删除'job:'参数。所以仅仅推荐代码片段生成器是不够的。嗯,如果生成器真的产生了你所说的东西,那肯定是个bug;如果可以的话,请将其归档,并提供准确的详细信息以进行复制,包括插件版本。
build job: 'NEXT-DEPLOY-JOB', parameters: [new hudson.model.StringParameterValue('PARAM_FROM_BUILD', '1.4'),
hudson.model.StringParameterValue('DEPLOYMENT_ENVIRONMENT', 'QA')
]