[解決済み] Jenkinsパイプラインの条件付きステップ/ステージ
質問
特定のブランチをビルドするときだけ、ビルドステップを実行するにはどうしたらよいですか?
例えば、デプロイメントステップを実行するのは、そのブランチが
deployment
というブランチの場合のみデプロイメントステップを実行し、他のすべては同じままにしておきます。
どのように解決するのですか?
宣言的パイプラインの構文で同じことをすると、以下のような例があります。
stage('master-branch-stuff') {
when {
branch 'master'
}
steps {
echo 'run this stage - ony if the branch = master branch'
}
}
stage('feature-branch-stuff') {
when {
branch 'feature/*'
}
steps {
echo 'run this stage - only if the branch name started with feature/'
}
}
stage('expression-branch') {
when {
expression {
return env.BRANCH_NAME != 'master';
}
}
steps {
echo 'run this stage - when branch is not equal to master'
}
}
stage('env-specific-stuff') {
when {
environment name: 'NAME', value: 'this'
}
steps {
echo 'run this stage - only if the env name and value matches'
}
}
もっと効果的な方法があります。
https://issues.jenkins-ci.org/browse/JENKINS-41187
も見てください -
https://jenkins.io/doc/book/pipeline/syntax/#when
ディレクティブは
beforeAgent true
を設定することで、条件を実行するためにエージェントを起動することを回避することができます。
when { beforeAgent true; expression { return isStageConfigured(config) } }
アップデイト
新しいWHEN句
REF:
https://jenkins.io/blog/2018/04/09/whats-in-declarative
equals - 2つの値(文字列、変数、数値、ブール値)を比較し、等しければ真を返す。 を比較し、等しい場合に true を返します。正直なところ、どうしてこれを以前 を見逃したのか、正直わからない。を使用して、quot;not equals" 比較を行うことができます。 {等しい... の組み合わせでもできます。
changeRequest - 最も単純な形として、このパイプラインが GitHub のプルリクエストのような変更要求を作成している場合に true を返します。 パイプラインが GitHub のプルリクエストのような変更要求を構築している場合に true を返します。 また、変更要求に対してより詳細なチェックを行うこともできます。 これは master ブランチに対する変更要求なのか? ブランチに対する変更要求なのか?" などと尋ねることができます。
buildingTag - SCM のタグに対してパイプラインが実行されているかどうかをチェックするだけのシンプルな条件です。 ブランチや特定のコミット参照ではなく、SCM のタグに対してパイプラインが実行されているかどうかをチェックするシンプルな条件です。 に対して実行されているかどうかをチェックします。
tag - buildingTag と同等で、より詳細なチェックが可能です。 タグの名前そのものに対してチェックすることができます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン