我无法通过jenkins管道为作业名称传递变量来构建作业。请在下面找到代码段。如果我用“微服务”替换$ {service}'它会触发工作
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
我使用这种方法是因为我想点击所有使用多行字符串参数传递名称的微服务的构建命令,最后我想将此构建设置为循环。
答案 0 :(得分:4)
我认为你的工作在詹金斯不是'microservice'
,而是microservice
(没有勾号)。
因此,在双引号后更改您的build
行,不要包含单引号:
build(job: "${service}", parameters: [string(name: 'ENVNAME', value: 'uat')])
使用我的jenkins实例做了一些简单的测试,并且能够通过将服务变量设置为现有的作业名来调用作业。