Jenkins Groovy管道-调用另一个管道的构建步骤

Jes*_*son 5 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" ]])
  }
Run Code Online (Sandbox Code Playgroud)

[管道]回声

你好/ home / jenkins / workspace / hellopipeline

[管道] sh

[hellopipeline]运行shell脚本

。+ ls / home / jenkins / workspace / hellopipeline

自述文件

詹金斯

[管道] sh

[hellopipeline]运行shell脚本

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

css-ce-pipeline

CSS核心管道

css-dev-pipeline

css-prod-pipeline

手册

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

完成:失败

Phi*_*lip 5

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

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

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


Sim*_*ate 5

对我有用的是我没有正确地缩小斜线,所以我必须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

            }
        }
Run Code Online (Sandbox Code Playgroud)