1

複数のgitリポジトリを使用するワークフローがある場合、各git pushはJenkinsのビルドをトリガします。複数のgit reposを使用するとJenkinsのパイプライン(ワークフロー)が複数のビルドをトリガーするのを防ぐにはどうしたらいいですか?

10 gitのリポジトリをポーリングするようにワークフロージョブを設定していて、それらのすべてに変更をプッシュした場合(リリースビルド時にかなり可能です)、キューには10個のビルドがあります。これは良いものと悪いものです。異なるリポジトリに変更があり、すべてのファイルが入ったらビルドを開始したいので、悪いです。同時に、私はリポジトリのポーリングを避けたくありません。

舞台 'REPO-1' {
gitのブランチ: "機能/ testbranch"、変更履歴:真、 世論調査:真、URL: 'SSH://[email protected]/repo1.git' 、credentialsId: 'XXX' }

舞台 'REPO-2' {
Gitのブランチ: "機能/ testbranch"、変更履歴:真、 世論調査:真、URL:「SSH://のgitの@スタッシュ。 com/repo2.git '、credentialsId:' xxx ' }

この動作がポーリングに遅延を招くのを防ぐ方法はありますか?

答えて

0

Additional Behaviours: Polling ignores commits with certain messagesとお考えですか?

設定し、ジェンキンスは、ジェンキンスさんがビルドをトリガーする必要があるかどうかを判断する際に、パターンにマッチしたメッセージにコミットさリビジョンを無視する変更をポーリングするように設定されている場合は

...

ステップ:

  1. IGNOREメッセージで変更を確定します。
  2. すべてのリポジトリが最新の状態になったら、手動でビルドを開始するか、no-IGNOREメッセージでビルドを開始します。

チェックアウトステップ:私は沈黙期間オプションを有効にし、60秒のタイムアウトを追加した

checkout([$class: 'GitSCM', 
    branches: [[name: '*/master']], 
    doGenerateSubmoduleConfigurations: false, 
    extensions: [[$class: 'UserExclusion', excludedUsers: ''], 
    [$class: 'MessageExclusion', excludedMessage: '.*\\[ignore-this-commit\\].*']], 
    submoduleCfg: [], 
    userRemoteConfigs: [[url: 'https://github.com/luxengine/math.git']]]) 
+0

ワークフローで静かな期間オプションを試してみましたが、かなりうまくいきました。 – Balualways

+2

このmetodを試してもビルドはまだ実行されています。 – Woland

+0

私もこの問題を抱えているようです。これは修正されている場合は誰ですか? – Hafiz

0

。これにより、Jenkinsのワークフローは、静かな期間内に複数のリポジトリの変更を1つにまとめ、すべてのSCM変更に対して複数のビルドをトリガーするのではなく、1つのビルドをトリガするのに役立ちます。 enter image description here

私のケースでは、静かな期間が60秒に設定されています。他の変更が60秒以内であれば、リポジトリ内のその他の変更を監視するために60秒の静かな期間が追加されます。しかし、60秒後にもう一度リポジトリを変更すると、別のビルドになります。

+2

Jenkinsfileで静かな期間を設定する方法を説明できますか?私はマルチブランチプロジェクト内でこれを有効にしています –

+0

@FedericoBonelli私は、マルチブランチプロジェクトを使用する場合、静かな期間は利用できないと思います。 – luka5z

関連する問題