【问题标题】:Referencing parameters in Jenkins Pipeline在 Jenkins Pipeline 中引用参数
【发布时间】:2022-11-24 09:02:47
【问题描述】:

我正在尝试设置一个由初始管道触发的管道,并将一些值从触发管道传递到第二个管道。

我正在使用“构建作业”选项调用第二个管道,它可以很好地触发管道,但是我似乎无法正确引用我在第二个管道中传递的参数。

我正在调用第二个管道并像这样传递参数:

script{
                build job: 'Docker-Pipeline', paramters: [string(name: 'source_branch', value: String.valueOf(BRANCH_NAME))]
                
            }

并在第二个管道中定义参数:

parameters {
      string(name: 'source_branch', defaultValue: "", description: 'set by triggering pipeline')
    }

但是我不知道如何正确引用参数以使用传递的值。尝试将其写出不会返回任何结果:

stage('PrintParameter'){
            steps{
                sh 'echo ${source_branch}'
            }
        }

在控制台输出中产生以下结果:

[Pipeline] { (hide)
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (PrintParameter)
[Pipeline] sh
+ echo


[Pipeline] }

关于如何正确传递/定义/引用参数的任何建议都会非常有帮助。詹金斯文档似乎没有涵盖这一级别的细节。

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    要使字符串插值起作用,您需要用双引号将命令括起来。

    sh "echo ${source_branch}"
    
    

    【讨论】: