使用变量从 Jenkins Pipeline 构建作业

Cat*_*nan 2 jenkins jenkins-pipeline

我无法通过传递作业名称变量的 jenkins 管道构建作业。请在下面的代码片段中找到。如果我用“微服务”替换 ${service} 它将触发工作

service = 'microservice'
echo "TESSSSSSSSTTT ${service}"
build(job: "'${service}'", parameters: [string(name: 'ENVNAME', value: 'uat')])
Run Code Online (Sandbox Code Playgroud)

面临的错误是:

[Pipeline] echo
TESSSSSSSSTTT microservice
[Pipeline] build
[Pipeline] End of Pipeline
ERROR: No item named 'microservice' found
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

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

msz*_*ach 5

我假设您的工作不是'microservice'在 Jenkins 中调用的,而是microservice(没有刻度)。

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

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

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