【问题标题】:Jenkins groovy pipeline - calling build step for another pipelineJenkins groovy 管道 - 为另一个管道调用构建步骤
【发布时间】:2017-11-25 18:55:21
【问题描述】:

编辑:

根据 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" ]])
  }

[管道]回显

你好 /home/jenkins/workspace/hellopipeline

[管道] sh

[hellopipeline] 运行 shell 脚本

.+ ls /home/jenkins/workspace/hellopipeline

README.md

.

.

.

詹金斯

[管道] sh

[hellopipeline] 运行 shell 脚本

.+ ls /home/jenkins/workspace/hellopipeline/jenkins

css-ce-管道

css-core-pipeline

css-dev-pipeline

css-prod-管道

manual.md

.

.

.

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

已完成:失败

【问题讨论】:

标签: jenkins jenkins-pipeline


【解决方案1】:

作业名不带前缀就足够了。

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

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

【讨论】:

    【解决方案2】:

    对我有用的是我没有正确地调整斜线,所以我不得不像这样替换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
    
                }
            }
    

    【讨论】:

      最近更新 更多