6

次の順序で実行する必要がある4つのジョブがあります

JOB A 
 |------> JOB B
 |------> JOB C 
            |------> JOB D

上記では

  1. A は B と C を同時にトリガーし、C は D をトリガーします。
  2. A は、3 つすべてが完了するまでジョブを実行中として保持する必要があります。

次のプラグインを試しましたが、探しているものを達成できませんでした

  • プラグインに参加
  • マルチジョブプラグイン
  • マルチ構成プロジェクト
  • パラメータ化されたトリガープラグイン

これを解決するのに役立つ、試したことのないプラグインはありますか。または、これは別の方法で達成できますか。お知らせ下さい。

4

5 に答える 5

2

Build FlowプラグインでDSL スクリプトを使用します。

あなたの実行のためにこの例を試してください:

   build("job A")

   parallel
   (
      {build("job B")}
      {build("job C")}
   )

   build("job D")
于 2015-06-25T11:09:29.843 に答える
1

これは最適な方法ではないかもしれませんが、うまくいくはずです。パラメータ化されたトリガー プラグインを使用します。ジョブ A にビルド ステップ (ビルド後のアクションではない) を追加して、同じビルド ステップでジョブ B と C の両方を開始し、終了するまでブロックします。ジョブ C で、ジョブ D を開始し、終了するまでブロックするビルド ステップ (ビルド後のアクションではない) を追加します。これにより、ジョブ A が全期間にわたって実行され続けるはずです。

ただし、これは実際には最適ではありません。ジョブ A は、B と C が終了するのを待って開いたままになります。次に、D が終了するまで C を開いたままにします。

ジョブ A を実行し続ける必要がある何らかの理由がありますか? もう 1 つの可能性は、ジョブ B と C が開始された後にジョブ A を終了させることですが、ジョブ B、C、および D が成功した後に最終アクションを実行するジョブ A のプロモーションを行うことです。

于 2012-10-17T03:13:27.603 に答える
1

私は同じシステムを構築しようとしています。パッケージャー/ビルド/デプロイ ジョブおよび対応するテスト ジョブを実行する必要がある認定パイプラインを構築しています。それらがすべて成功したら、テスト結果を集約し、Maven の自動リリースを実行できるリリース ジョブをトリガーしたいと考えています。

システムの可視化のためにビルド パイプライン プラグインを選択しました。最初は、ビルドをブロックするパラメーター化されたトリガー プラグインで試しました。アーティファクトのアーカイブは postbuild でのみ機能するため、アーティファクト/フィンガープリントとダウンストリーム ビルドの関係のアーカイブをこの方法でセットアップできませんでした。次に、パラメーター化されたトリガーをビルド後のアクティビティに配置します。このようにして、ダウンストリーム ビルド、フィンガープリント、集計テスト結果をセットアップできましたが、ビルドの失敗はアップストリーム ジョブ チェーンにバブリングされず、アップストリーム ジョブはブロックされませんでした。

私は最終的にこれらのプラグインを使用してこれを達成することができました-

  • パイプラインの構築
  • マルチジョブプラグイン
  • 指紋プラグイン
  • アーティファクト プラグインのコピー
  • プラグインに参加

私はジェンキンス1.514を使用しています

システムはこんな感じ

トリガー ジョブ --> ビルド (およびデプロイ) ジョブ (1..n) ---> テスト ジョブ (1..n)

トリガージョブ -

  • MultiJob として作成し、shell exec で指紋ファイルを作成します

    エコーdate +%s> 指紋.txt

トリックは、ビルド中にファイルをアーカイブする必要があることです。これを行うには、このスクリプトを実行します-

ARCHIVEDIR=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_ID/archive
mkdir $ARCHIVEDIR
cp fingerprint.txt $ARCHIVEDIR
  • ビルド/デプロイ ジョブで構成されるマルチジョブ フェーズを作成します。
  • ビルド/デプロイ ジョブ自体がマルチジョブです
  • フィンガープリンティングに関連して、ビルド/デプロイ ジョブを作成するための上記と同じ手順に従います。
  • アップストリーム ジョブから finger.txt アーティファクトをコピーします。
  • テスト ジョブをトリガーするデプロイ ジョブでマルチジョブ フェーズをセットアップする
  • 新しい指紋ファイルを作成し、上記の手順と同様に強制的にアーカイブします
  • 最終テスト ジョブで Junit の結果を収集します。


トリガー ジョブで、結合プラグインを使用して [結合時にビルド後のアクションを実行] を選択してリリース ジョブを実行し、トリガー ジョブの安定したビルドでのみリリース プロジェクトを実行します。このようにして、すべてのステップがビルド パイプライン ビューに表示され、トリガー ジョブはすべてのダウンストリーム ビルドの完了をブロックし、そのステータスを最悪のダウンストリーム ビルドとして設定して、リリース ジョブの決定点を示します。

于 2013-07-23T00:49:17.410 に答える
1

Locks and Latches プラグイン を試してください。

于 2012-10-16T22:26:19.100 に答える