我正在使用 jenkins 2.0 和Cloudbees Folder插件,因为这允许我创建多个类似的项目。可以将每个文件夹中的作业分解出来,留下可以调用参数化作业的顶级作业。
我想将参数化作业放在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放在与管道作业相同的文件夹中,这可以正常工作。
答案 0 :(得分:4)
您只需要在不使用斜杠的情况下设置文件夹。
如果您在文件夹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]]
}
}
无论您的工作位于何处,您只需指出完整路径。