概要
並列ビルドを無効にするにはoptions
でdisableConcurrentBuilds()
を追加します。
注意点として、
JenkinsはJobが並列実行される時、WORKSPACE
を自動で分けてくれます。
通常時 -> ${JENKINS_HOME}/workspace/{job-name}
並列時 -> ${JENKINS_HOME}/workspace/{job-name@2}
このWORKSPACE
分けはJobが実行されたタイミングで行わるため、
Pipelineの中で並列かをチェックしても${WORKSPACE}
は振り分け済みです。
pipeline{ agent any options{ lock 'hoge' } stages{ stage('stage1'){ steps{ // 意図しないcloneになっているかも git branch: 'main', url: 'hoge.git' } } } }
WORKSPACE
分けてほしくないという時はdisableConcurrentBuilds
を使います。
pipeline{ agent any options{ disableConcurrentBuilds() } stages{ stage('stage1'){ steps{ echo 'hello' } } } }
親ジョブを作りlock
で制御させるのもありです。
pipeline{ agent any stages{ stage('stage1'){ options{ lock 'hoge' } steps{ build job: 'other_job' } } } }