Jenkins groovy管道 - 为另一个管道调用构建步骤

时间:2017-06-22 13:08:10

标签: jenkins jenkins-pipeline

编辑:

根据Andrew Bayer的说法,你不应该向其他人注入声明性管道。未来可能会支持它,但可能根本不会支持。

我目前正在尝试在管道中启动管道,但我想知道我需要做些什么来使它工作。 jenkins网页上的文档说如果新作业或管道与第一个文件夹在同一个文件夹中,您可以从直接名称或绝对路径调用它。我已经尝试了所有不同的方式,目前我正在尝试一个文件的绝对路径,我刚刚检查过一秒钟,但它说它不存在。

我想知道将不同管道连接在一起的正确方法是什么。

steps {
    echo "hello ${env.WORKSPACE}"
    sh "ls ${env.WORKSPACE}"
    sh "ls ${env.WORKSPACE}/jenkins"
    build(job: "${env.WORKSPACE}/jenkins/css-core-pipeline", parameters: [[$class: 'StringParameterValue', name: 'param1', value: "$pass1" ]])
  }
  

[Pipeline] echo

     

hello / home / jenkins / workspace / hellopipeline

     

[Pipeline] sh

     

[hellopipeline]运行shell脚本

     

。+ ls / home / jenkins / workspace / hellopipeline

     

README.md

     

     

     

     

詹金斯

     

[Pipeline] sh

     

[hellopipeline]运行shell脚本

     

。+ ls / home / jenkins / workspace / hellopipeline / jenkins

     

CSS-CE-管道

     

CSS-芯管道

     

CSS-DEV-管道

     

CSS-PROD-管道

     

manual.md

     

     

     

     

错误:找不到名为/ home / jenkins / workspace / hellopipeline / jenkins / css-core-pipeline的项目

     

完成:失败

2 个答案:

答案 0 :(得分:4)

没有任何前缀的作业名就足够了。

build(job: "css-core-pipeline", parameters: [[$class: 'StringParameterValue', name: 'param1', value: "$pass1" ]])

如果这不起作用,您可以使用代码段生成器获取有效的步骤片段。打开管道配置 - >流水线语法 - >片段生成器 - >选择构建步骤 - >填写字段(作业名称将有自动填充)

答案 1 :(得分:0)

对我有用的是我没有正确地转义斜杠,所以我不得不像这样替换 jobname/feature/my-branch-name

        stage('Calls another pipeline') {
            steps {
                build job: 'jobname/feature%2Fmy-branch-name', parameters: [
                    string(name: 'MY_VAR', value: 'my_value')
                ],  propagate: true, wait: true

            }
        }