我正在使用 Jenkins 2.0 使用 Cloudbees 文件夹插件,因为这允许我创建多个类似的项目。每个文件夹中的作业可以被分解,留下一个可以调用参数化作业的顶级作业。
我想将参数化作业放在 Generic 文件夹中,然后从管道脚本中调用它们。
所以在 jenkins 浏览器中,我会有 3 个文件夹:ProjA、ProjB 和 Generic。在 ProjA 下,我有一个管道作业,需要在通用文件夹中构建一个名为 TestJib 的作业。
我的管道是这样的:
node('master'){
stage ('Run job'){
build job: "../Generic/TestJob",
parameters: [[$class: 'StringParameterValue', name: 'testa', value: tests]]
}
}
运行这个给出: “错误:没有名为 ../TestJob 的参数化作业”
我在构建作业上尝试了许多变体:“../Generic/TestJob”,但我总是遇到相同的错误。
如果我将 TestJob 放在与管道作业相同的文件夹中,这可以正常工作。
最佳答案
之前只需要设置不带斜杠的文件夹。
如果您在文件夹 FolderA 中有一个 JobA,您的工作将类似于:
stage ('My Stage'){
build job: "FolderA/JobA",
}
所以对你来说,你的解决方案是:
node('master'){
stage ('Run job'){
build job: "Generic/TestJob",
parameters: [[$class: 'StringParameterValue', name: 'testa', value: tests]]
}
}
无论您的工作位于何处,您只需指明完整路径即可。
关于带有文件夹插件的 Jenkins 管道。如何构建位于不同文件夹的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41182186/