YAMLファイルから1つのステージで読み込まれたデータを、別のステージまたはステージ外で使用するにはどうすればよいですか?Jenkinsパイプラインyamlから読み取る
pipeline {
agent any
environment {
MY_ENV_VAR1 = 'VALUE1'
}
parameters {
string(name: 'DEPLOY_ENV', defaultValue: 'staging', description: 'Environment to deploy on')
booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: 'Debug the build')
}
stages {
stage('Stage1') {
steps {
script {
def datas = readYaml file: 'release.yml'
echo "Got version as ${datas.version} "
}
echo "Deploying to ${params.DEPLOY_ENV} with debug=${params.DEBUG_BUILD}"
}
}
stage('Stage 2') {
steps {
sh 'run.sh datas.version'
}
}
}
}
私はStage 1
にフェッチされたStage 2
の手順内部で$ {datas.versionを}アクセスしたいです。
パイプライン定義をできるだけ宣言的にしたいと考えています。 docsを正しく読んだ場合、スクリプトセクションはステージ内にのみ追加できます。私はグローバルパイプラインレベルでこれを試しましたが、エラーUndefined section "script" at line 10
がありました。
私は、パイプラインレベルでちょうどdatas = readYaml file: 'release.yml'
を追加しましたが、エラーは一度ファイルを読み込み、その後の任意の段階でその読み出しデータを使用するための正しい方法だろう何Not a valid section definition: "datas = readYaml file: 'release.yml'". Some extra configuration is required line 10, column 3.
を言ってますか?
を追跡されている問題です。 – Neo
何が好きではないですか?私が与えた構文は、プラグインとは関係ありません。基本的なグルーヴィー変数スコープです。 –
groovyコードはおそらく問題ありませんが、パイプラインが有効ではないという問題があります。 – Neo