最初にenv変数をtrueに設定して、batで使用可能な変数の出力/ステータスをjenkinsパイプラインに取得しようとしています。
私の予想では、bat内で割り当てられた変数の値(つまりstatus=false
)に基づいて、次のステージで式が指定されているため、そのステージを実行できませんでした。
pipeline {
agent any
environment{
STATUS='TRUE'
}
stages {
stage('test1') {
steps {
bat '''set status=FALSE
echo %status%'''
echo "$status"
}
}
stage('test2') {
when{
environment name: 'STATUS', value: 'TRUE'
}
steps {
input message: 'Push', ok: 'GO!!'
}
}
}
}
私が現在取得o/p: false
している出力はバット実行用であり、次のステップは出力をtrueとして提供します。
echo "$status"
環境としてパイプラインにあるSTATUS
変化がノード上で実行されています。AFAIKこれはパイプライン自体には反映されません。
あなたができることはreturnStdout: true
、パイプラインでこの変数の状態を使用して維持することです
def script = '''set status=FALSE
echo %status%'''
def status = bat(script: script, returnStdout: true)
echo "$status"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加