web-dev-qa-db-ja.com

Jenkinsの同時マルチブランチパイプラインビルドを制限する方法は?

Jenkinsで同時ビルドの数を特定の数に制限し、マルチブランチパイプラインワークフローを活用することを検討していますが、ドキュメントまたはGoogleでこれを行う良い方法が見つかりませんでした。

一部のドキュメントでは、Jenkinsfileのstageステップで並行性を使用してこれを達成できると述べていますが、私は 別の場所で読む も推奨されていません。

_Job Properties_を介して並行性を制限するために 何かがリリースされた があったように見えますが、ドキュメントが見つからず、コードを追跡するのに問題があります。 [〜#〜] pr [〜#〜] を見つけたのは、次のことを示しているだけです。

properties([concurrentBuilds(false)])

しかし、私はそれを機能させるのに苦労しています。

特定のマルチブランチプロジェクトの同時ビルドの数を制限する方法の良い例を知っているか、持っていますか?おそらく、マルチブランチの同時ビルドの数を制限または制限する方法を示すJenkinsfileスニペットですか?

27
jmreicha

私が探していたものを見つけました。 Jenkinsfileの次のブロックを使用して、同時ビルドを制限できます。

node {
  // This limits build concurrency to 1 per branch
  properties([disableConcurrentBuilds()])

  //do stuff
  ...
}

宣言構文でも同じことが実現できます。

pipeline {
    options {
        disableConcurrentBuilds()
    }
}
48
jmreicha

@VadminKotovが示したように、jenkins宣言型パイプラインを使用して並行ビルドを無効にすることも可能です:

pipeline {
    agent any
    options { disableConcurrentBuilds() }
    stages {
        stage('Build') {
            steps {
                echo 'Hello Jenkins Declarative Pipeline'
            }
        }
    }
}
4
030