一尘不染

Jenkins管道将所有参数传递给下游作业

jenkins

我有一个名为 buildall 的管道作业,如下所示:

pipeline {
    stages {
        stage("job1") {
            build job: "job1"
        }
    }
}

buildall 作业有25个参数。我想将所有 buildall 的参数传递给 job1
。有没有一种简单的方法可以代替手动指定每个参数呢?

在此问题中:向下游作业传递管道参数是一个子问题,但从未得到回答:
甚至更好的是,有没有一种麻烦的方法可以将所有管道参数传递给下游作业。

我有同样的问题。


阅读 360

收藏
2020-07-25

共1个答案

一尘不染

以下似乎有效(尽管我尚未对其进行广泛测试):

pipeline {
    agent any
    parameters {
        string(name: 'PARAM1', description: 'Param 1?')
        string(name: 'PARAM2', description: 'Param 2?')
    }
    stages {
        stage('Example') {
            steps {
                echo "${params}"
                script {
                    def myparams = currentBuild.rawBuild.getAction(ParametersAction).getParameters()
                    build job: 'downstream-pipeline-with-params', parameters: myparams
                }    
            }
        }
    }
}

缺点:要访问rawBuild和getAction,必须在“管理Jenkins”>“进程内脚本批准”下禁用Groove沙箱或在Jenkins中批准这些签名。该对话框将向您显示您可能引入了安全漏洞。因此,是否要承担此风险取决于您的环境。

2020-07-25