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

标签 jenkins directory cloudbees

我正在使用 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/

相关文章:

c++使用字符串缓冲区文件名更改ofstream的目录

linux - bash 查找目录

php - 使用 PHP 以 tar.gz 格式动态压缩目录

java - CloudBees 上的应用程序 session 存储

github - 如何从 GitHub 评论为我的拉取请求触发 Travis 重建?

grails - Grails数据库迁移和Cloudbees上的Jenkins

jenkins - 在 Jenkins 管道中使用 agent none 定义环境变量

Jenkins 管道锁没有被释放

java - 将 Maven Artifact 部署到具有不同设置的多个存储库

linux - 使用 Jenkins 进行 Selenium 测试