jenkins pipeline dslを仕事の説明に使用します。エージェントを呼び出さずにジェンキンスパイプラインのステージをスキップしますか?
pipeline {
agent none
options {
timestamps()
}
environment {
//SOME ENV VARS
}
stages {
// more stages
stage('stage1'){
when {
expression { env.BRANCH_NAME == 'master' }
}
agent { label 'slave1' }
steps{
//doing stuff
}
}
}
マスターブランチが構築されたときにのみ実行する必要があり、ビルドプロセスのステージは、あなたがその方向に展開ジョブか何かを考えることができます。今、私たちはそのような何かを持っています。問題は、特定のラベルを持つ代理店のリソースが限られていることです。私たちが他のブランチを構築するときには、スレーブ1のエージェントが呼び出され、ブランチがマスターではないことを確認してからステージをスキップします。すべてのスレーブ1のエージェントがマスターブランチジョブで作業している場合、他のジョブは、スレーブ1のエージェントがそのステージを実行する必要があるかどうかを確認するために利用可能になるのを待たなければならないからです。
jenkinsパイプラインDSLで、スレーブ1エージェントがブランチを決定するのを待たずにそのステージをスキップする方法はありますか?
あなたのパイプラインの最上位レベル、つまり* before *あなたの 'stages'で' agent none'を宣言しましたか? – SevenEleven
はい、あります。編集 – Taron
を参照してください。このマルチブランチパイプラインですか?もしそうなら、 'when {branch 'master'}'の条件を試してください。 – Nexus