使用变量从Jenkins管道生成作业

使用变量从Jenkins管道生成作业,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我无法通过jenkins管道为作业名称传递变量来构建作业。请在下面找到代码片段。如果我将${service}替换为'microservice',它将触发作业 service = 'microservice' echo "TESSSSSSSSTTT ${service}" build(job: "'${service}'", parameters: [string(name: 'ENVNAME', value: 'uat')]) 面临的错误是: [Pipeline] echo TESSSSSSS

我无法通过jenkins管道为作业名称传递变量来构建作业。请在下面找到代码片段。如果我将${service}替换为'microservice',它将触发作业

service = 'microservice'
echo "TESSSSSSSSTTT ${service}"
build(job: "'${service}'", parameters: [string(name: 'ENVNAME', value: 'uat')])
面临的错误是:

[Pipeline] echo
TESSSSSSSSTTT microservice
[Pipeline] build
[Pipeline] End of Pipeline
ERROR: No item named 'microservice' found
Finished: FAILURE

我之所以使用这种方法,是因为我想为所有通过多行字符串参数传递名称的微服务点击一个build命令,最后我想将这个build设置为一个循环。

我假设您的作业在Jenkins中不是叫
'microservice'
,而是叫
microservice
(没有记号)

因此,将您的
build
行更改为在双引号之后不包含单引号:

build(job: "${service}", parameters: [string(name: 'ENVNAME', value: 'uat')])

对我的jenkins实例进行了一些简单的测试,并通过将服务变量设置为现有作业名称来调用作业。

谢谢,我想我只在循环中使用双引号进行了测试,但失败了,错误为:请检查组!java.util.AbstractList$Itr。我看到外面的循环工作完美。再次感谢。