2017-11-07 23 views
1

Multibranchパイプラインを一度に1つだけビルドするように制限することはできますか?Multibranch Jenkins Pipeline - ビルド数を1に制限する

私は、チェックアウト、ビルド、テスト、およびデプロイするステップを持つパイプラインを持っています。展開段階では、他のブランチジョブと並行して実行できない特定のマシン上のファイルのコピー/実行が行われます。

私が試してみました:

properties([disableConcurrentBuilds()]) 

しかし、分岐基づいて、この唯一の制限の同時実行、まだ複数のブランチを並列に実行されるようにします。

また、通常の非パイプラインジェンキンスジョブで、オプションのチェックボックスがあります:

Checkbox

をしかし、これはマルチブランチ構成でも利用できません「必要に応じて同時ビルド実行」 。

これを達成するための他の設定がありますか、それとも設計上のものですか?

答えて

3

上記の状況では、lockable resourcesを使用します。

すべてのブランチを並列に実行することができます。しかし、特定の時点で1つのブランチだけがロックされたステップを実行します。

stage("locked stage") { 
    lock("deploy") { 

    //deploy steps/copy files here 

    } // resource is unlocked. 
} 
+0

正確に私が必要としていたこと、ありがとう。 – jayfah

+0

optionsディレクティブにロックを含めることで、ビルド全体をロックすることもできます。 'pipeline {options {lock resource: 'test-dbs'} stages {...}}' –

関連する問題