私は同じシステムを構築しようとしています。パッケージャー/ビルド/デプロイ ジョブおよび対応するテスト ジョブを実行する必要がある認定パイプラインを構築しています。それらがすべて成功したら、テスト結果を集約し、Maven の自動リリースを実行できるリリース ジョブをトリガーしたいと考えています。
システムの可視化のためにビルド パイプライン プラグインを選択しました。最初は、ビルドをブロックするパラメーター化されたトリガー プラグインで試しました。アーティファクトのアーカイブは postbuild でのみ機能するため、アーティファクト/フィンガープリントとダウンストリーム ビルドの関係のアーカイブをこの方法でセットアップできませんでした。次に、パラメーター化されたトリガーをビルド後のアクティビティに配置します。このようにして、ダウンストリーム ビルド、フィンガープリント、集計テスト結果をセットアップできましたが、ビルドの失敗はアップストリーム ジョブ チェーンにバブリングされず、アップストリーム ジョブはブロックされませんでした。
私は最終的にこれらのプラグインを使用してこれを達成することができました-
- パイプラインの構築
- マルチジョブプラグイン
- 指紋プラグイン
- アーティファクト プラグインのコピー
- プラグインに参加
私はジェンキンス1.514を使用しています
システムはこんな感じ
トリガー ジョブ --> ビルド (およびデプロイ) ジョブ (1..n) ---> テスト ジョブ (1..n)
トリガージョブ -
トリックは、ビルド中にファイルをアーカイブする必要があることです。これを行うには、このスクリプトを実行します-
ARCHIVEDIR=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_ID/archive
mkdir $ARCHIVEDIR
cp fingerprint.txt $ARCHIVEDIR
- ビルド/デプロイ ジョブで構成されるマルチジョブ フェーズを作成します。
- ビルド/デプロイ ジョブ自体がマルチジョブです
- フィンガープリンティングに関連して、ビルド/デプロイ ジョブを作成するための上記と同じ手順に従います。
- アップストリーム ジョブから finger.txt アーティファクトをコピーします。
- テスト ジョブをトリガーするデプロイ ジョブでマルチジョブ フェーズをセットアップする
- 新しい指紋ファイルを作成し、上記の手順と同様に強制的にアーカイブします
- 最終テスト ジョブで Junit の結果を収集します。
トリガー ジョブで、結合プラグインを使用して [結合時にビルド後のアクションを実行] を選択してリリース ジョブを実行し、トリガー ジョブの安定したビルドでのみリリース プロジェクトを実行します。このようにして、すべてのステップがビルド パイプライン ビューに表示され、トリガー ジョブはすべてのダウンストリーム ビルドの完了をブロックし、そのステータスを最悪のダウンストリーム ビルドとして設定して、リリース ジョブの決定点を示します。