Jenkins声明式管道动态参数

时间:2019-06-19 07:17:23

标签: jenkins jenkins-plugins

目标是从Jenkins声明性管道内部动态加载参数值。其中一个参数会从函数中预加载其值。调用该函数时,它会生成一个KMS键数组,但无法填充参数值字段。注意:我可以通过脚本化管道来完成此工作,但希望通过声明性管道来完成。

这是代码

def my_kms_keys=""

def LocalKmsKeys(){

    kms_keys = sh(script: """aws kms list-aliases --region eu-west-1 |jq -r '.Aliases[] |select (.AliasArn |contains(":alias/aws/") | not) | "\\(.AliasArn | split("/")[1]) --- \\(.TargetKeyId)"'""", returnStdout:true).trim()

    return kms_keys.split("\n");
}

pipeline {

    agent { label 'slave' }

    stages {
        stage('Load KMS Keys'){
            steps {
                script {
                    my_kms_keys = LocalKmsKeys()
                    println "Debug my_kms_keys : " + my_kms_keys
                }
            }
        }
    }

    parameters {
        string(name: 'Product', description: 'Product name', defaultValue: "product-1")
        choice(name: 'KmsKeys', description: 'Select Kms key for S3 bucket', choices: my_kms_keys)
        }
}

任何有关如何解决此问题的想法将不胜感激。

0 个答案:

没有答案