72

可能な限り迅速なフィードバックを得るために、Jenkins ジョブを並列で実行したい場合があります。Jenkins には、ジョブの終了時に複数のダウンストリーム ジョブを開始する (またはパイプラインを「フォーク」する) 機能があります。ただし、Jenkins には、そのフォークのすべてのブランチの開始のみをダウンストリーム ジョブにする (またはフォークを「結合」する) 方法がないようです。

Jenkinsには「他のプロジェクトがビルドされた後にビルドする」ボタンがありますが、私はそれを「上流のジョブが終了したらこのジョブを開始する」と解釈します(「すべての上流のジョブが成功したときにこのジョブを開始する」ではありませ

これが私が話していることの視覚化です。私が求めていることを行うためのプラグインが存在するかどうかは誰にもわかりませんか? パイプラインの構築


編集:

2012 年に最初にこの質問を投稿したとき、Jason の回答 (参加およびプロモーテッド ビルド プラグイン) が最良であり、私が採用したソリューションでした。

ただし、dnozay の回答 (ビルド フロー プラグイン) は、この質問の 1 年ほど後に人気が出ました。これは、はるかに優れた回答です。価値のあることですが、今日人々が私にこの質問をした場合、私は代わりにそれをお勧めします.

4

7 に答える 7

27

過去にこのシナリオで使用した 2 つのソリューションがあります。

  1. 「デプロイ」ジョブでJoin プラグインを使用し、対象のジョブとして「昇格」を指定します。結合されたジョブとして「機能テスト」と「パフォーマンス テスト」を指定し、ビルド後に何らかの方法で開始する必要があります。Parameterized Trigger Pluginはこれに適しています。

  2. 「デプロイ」ジョブでプロモーテッド ビルド プラグインを使用し、ダウンストリーム ジョブが完了したときに機能するプロモーションを指定し、機能テスト ジョブとパフォーマンス テスト ジョブを指定します。プロモーション アクションの一環として、「プロモーション」ジョブをトリガーします。「デプロイ」から 2 つのテスト ジョブを開始する必要があります。

これらの両方のソリューションには重要な側面があります。指紋を正しく使用する必要があります。これが私が見つけたものです:

  1. 「ビルド」ジョブは、新しいフィンガープリント ファイルを作成する必要があります。つまり、Jenkins が最初のジョブによって生成されたと考えられるファイルのフィンガープリントを作成する必要があります。これを確認するには、ジョブの [指紋を表示] リンクを再確認してください。
  2. ダウンストリームにリンクされたすべてのジョブ (この場合、「デプロイ」、「機能テスト」、および「パフォーマンス テスト」) は、この同じファイルを取得してフィンガープリントする必要があります。Copy Artifacts プラグインは、この種の作業に最適です。
  3. 一部のプラグインでは、フィンガープリントとダウンストリーム ジョブの開始の順序を変更できることに注意してください。この場合、フィンガープリントの ORIGIN が適切に設定されるように、ダウンストリーム ジョブが同じファイルのフィンガープリントを作成する前にフィンガープリントを作成する必要があります。
于 2012-01-26T02:15:43.613 に答える
2

jason & dnozay による回答で十分です。しかし、誰かが簡単な方法を探している場合は、JobFanIn プラグインを使用してください。

于 2016-03-14T06:51:26.077 に答える
2

ワークフロー プラグインはパイプライン プラグインと呼ばれるようになり、ビルド フロー プラグインに触発された、元の質問に対する (現在の) 推奨されるソリューションであると思います。GitHub には入門チュートリアルもあります。

于 2016-02-14T19:39:15.113 に答える