带有文件夹插件的 Jenkins 管道。如何构建位于不同文件夹的作业

Gar*_*rry 5 directory jenkins cloudbees

我使用jenkins 2.0和 Cloudbees 文件夹插件,因为这允许我创建多个类似的项目。每个文件夹中的作业都可以分解,留下一个顶级作业,然后可以调用参数化作业。

我想将参数化作业放在通用文件夹中,然后从管道脚本中调用它们。

所以在 jenkins 浏览器中我会有 3 个文件夹:ProjA、ProjB 和 Generic。在 ProjA 下,我有一个管道作业,需要在通用文件夹中构建一个名为 TestJib 的作业。

我的管道是这样的:

node('master'){

    stage ('Run job'){ 
        build job: "../Generic/TestJob", 
        parameters: [[$class: 'StringParameterValue', name: 'testa', value: tests]]
    }
}
Run Code Online (Sandbox Code Playgroud)

运行此命令会给出:“错误:没有名为 ../TestJob 的参数化作业”

我尝试了构建作业的许多变体:“../Generic/TestJob”,但我总是遇到相同的错误。如果我将 TestJob 放在与管道作业相同的文件夹中,则效果很好。

Alg*_*rys 9

您只需之前设置不带斜杠的文件夹即可。

如果您的文件夹FolderA中有一个JobA,您的作业将如下所示:

stage ('My Stage'){ 
    build job: "FolderA/JobA", 
}
Run Code Online (Sandbox Code Playgroud)

所以对于你来说,你的解决方案将是:

node('master'){

stage ('Run job'){ 
    build job: "Generic/TestJob", 
    parameters: [[$class: 'StringParameterValue', name: 'testa', value: tests]]
  }
}
Run Code Online (Sandbox Code Playgroud)

无论您的工作位于何处,您只需指明完整路径即可。