【问题标题】:Jenkins pipeline with folder plugin. How to build a job located different folder带有文件夹插件的 Jenkins 管道。如何建立位于不同文件夹的作业
【发布时间】:2017-05-22 20:44:20
【问题描述】:

我正在使用带有 Cloudbees 文件夹插件的 jenkins 2.0,因为这允许我创建多个类似的项目。可以将每个文件夹中的作业分解出来,留下一个可以调用参数化作业的顶级作业。

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

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

我的管道是这样的:

node('master'){

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

运行它会给出:'ERROR: No parameterized job named ../TestJob'

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

【问题讨论】:

  • 你有没有试过绝对路径,即/Generic/TestJob

标签: jenkins directory cloudbees


【解决方案1】:

你只需要设置没有斜线的文件夹。

如果您在文件夹 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]]
  }
}

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

【讨论】:

  • 是相对于正在访问它的作业的文件夹路径吗?你能做吗../otherfolder/jobname
  • @red888 是的,除非它以 / 开头,否则它是相对的
猜你喜欢
  • 1970-01-01
  • 2018-10-25
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
相关资源
最近更新 更多