スクリプトパイプラインを宣言パイプラインに変換しようとしています。 steps {}
ブロック内で単純なif文を実行する方法が分かります。Jenkinsの宣言パイプライン内で単純なifステートメントを実行する方法
stage ('Deploy to Docker') {
steps {
parallel (
"instance1" : {
environment {
containerId = sh(script: "docker ps --quiet --filter name=${fullDockerImageName}", returnStdout: true).trim()
}
steps {
if (containerId.isEmpty()) {
docker.image('some/image').run("--name ${fullDockerImageName}")
}
}
}
)
}
}
これは、次の例外が発生:私は、steps {}
ブロック内での簡単なif(..)
を行うためにこれを行う方法上の任意のアイデアを許可されていないよので
WorkflowScript: 201: Expected a step @ line 201, column 29.
if (containerId.isEmpty()) {
を?
これは、when {}
で完全な段階にするのは意味がありません。単純な段階(存在する場合は停止したコンテナを開始するなど)でさらに多くの手順があるためです。
単純な場合はどうすればよいですか?
@ jon-sこれは私の他の質問と非常によく似ていますが(https://stackoverflow.com/questions/42277936/assigning-variables-in-a-parallel-step-using-declarative-pipeline-steps-in-jenki)、私は非常に一般的なシナリオ(if-statemen tとvar-assignment)、それをとにかく投稿します。 多分あなたはこれについて別の洞察力を持っていますか? –