データベースを共有する2つのJenkinsプロジェクトがあります。同時に実行してはなりません。厳密に言えば、非並行性を超える特定の依存関係はありませんが、現時点では、一方の「ダウンストリーム」を実行することにより、この制約を部分的に管理しています。これはほとんどの場合機能しますが、常に機能するとは限りません。 2番目の実行中にソース管理の変更が発生した場合、1番目は再び起動し、それらは同時に実行されるため、おそらく両方とも惨めに失敗します。
これは似ていますが、同一ではありません 特定のJenkinsジョブが同時に実行されないようにする方法 違いは、「スレッド数」の問題がないことです-すでに実行しているだけです2つの(異なるプロジェクト)ビルドが互いにストンプする場合でも、任意のプロジェクトで一度に最大で1つのスレッド。これはそのスレッドのいくつかの提案をすべて除外しているようです。
Locks and Latchesプラグイン で問題が解決するはずです。ロックを作成し、両方のジョブが同じロックを使用するようにします。これにより、ジョブが同時に実行されなくなります。
ロック可能なリソースプラグイン 。シンプルで、2016年5月にうまく機能しています。
プラグインをインストールします。 [Jenkinsの管理]> [システムの構成]で、[ロック可能なリソースマネージャー]に移動します。
[ロック可能なリソースの追加]を選択します。フィールドの値を入力します:名前と保存をクリックします。警告:[名前]フィールドにスペースを入力しないでください。
Jenkins>job_name> Configure> General、Selectチェックボックス:このビルドにはロック可能なリソースが必要です。フィールドの値に名前を入力します:リソース。
ビルドを開始します。ビルド#numberで、ロックされたリソースを選択します。このビルドは次のリソースをロックしています:resource_name-resource_description。
同じリソースを使用する別のビルドを開始します。ジョブ名を示すJenkinsステータス/メニューにビルドキューが表示されます。ホバーテキストは、開始済みby、リソースを待機中resources_list、待機中time。
(リソースタグ/ラベルも使用できます)
「このビルドにはロック可能なリソースが必要です」が表示されない一部のユーザーに問題があるように見えるため、ジョブ設定ページのスクリーンショットを追加:**チェックボックスが選択されていない場合、「[_]このビルドにはロック可能なリソースが必要です」のみが表示されます
編集:以下の情報は2014年4月10日付けで有効です
除外プラグイン https://wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin 少数のビルドが同じリソースを使用する場合に非常に便利です。テストデータベース。必要なのは、このリソースを使用してすべてのジョブの構成を更新することだけです。その結果、ジョブが並列に実行されることはなく、他のジョブが完了するのを待ちます。
以下から取得: http://www.kaczanowscy.pl/tomek/2012-07/jenkins-plugins-part-iii-towards-continuous-delivery
このプラグインは、2つ以上のジョブの並列実行をブロックします。
テストするには、これをjob1に対して実行します