2

入力としていくつかのビルド変数を取得する Jenkins パイプライン ジョブがあり、変数がユーザーによって渡されない場合は、スクリプトを実行してそれらの変数の値を取得します。後で、これらの変数の値を使用して他のジョブをトリガーする必要があります。

したがって、私のコードは次のようになります。

node {
withCredentials([[$class: 'StringBinding', credentialsId: 'DOCKER_HOST', variable: 'DOCKER_HOST']]) {

env.T_RELEASE_VERSION = T_RELEASE_VERSION
env.C_RELEASE_VERSION = C_RELEASE_VERSION
env.N_RELEASE_VERSION = N_RELEASE_VERSION
env.F_RELEASE_VERSION = F_RELEASE_VERSION

....

stage concurrency: 1, name: 'consul-get-version'
sh '''
        if [ -z ${T_RELEASE_VERSION} ]
        then
            export T_RELEASE_VERSION=$(ruby common/consul/services_prod_version.rb prod_t_release_version)
            aws ecr get-login --region us-east-1
            aws ecr list-images --repository-name t-server | grep ${T_RELEASE_VERSION}
        else
            aws ecr get-login --region us-east-1
            aws ecr list-images --repository-name t-server | grep ${T_RELEASE_VERSION}
        fi

.......


    't-integ-pipeline' : {
build job: 't-integ-pipeline', parameters: [[$class: 'StringParameterValue', name: 'RELEASE_VERSION', value: T_RELEASE_VERSION],
                                           [$class: 'BooleanParameterValue', name: 'FASTFORWARD_TO_DEPLOY', value: true]]
},

......

問題は、空の T_RELEASE_VERSION でメイン ジョブをトリガーすると、子ビルド ジョブ t-integ-pipeline が RELEASE_VERSION パラメーターの空の値でトリガーされることです。

シェル エグゼキュータ内で groovy パラメータを変更し、変更された値を使用して groovy エグゼキュータで再度アクセスするにはどうすればよいですか?

4

2 に答える 2