継続的インテグレーションの実装では、新しい WAR/Jar ファイルを数分ごとに構築し、これを最新鋭の候補として Nexus スナップショット リポジトリにデプロイします。これは満足のいく動作です。
また、ダウンストリーム ジョブとして多くの自動化された QA (findbugs、junit など) を実行します。これらのジョブは実行に時間がかかり、場合によってはリグレッションします。リグレッション/QA の失敗がない場合にのみ、アーティファクトをリリースと見なします。
ただし、元のビルド (スナップショットを作成し、アーティファクトをジェンキンにアーカイブしたもの) でダウンストリーム ジョブを使用すると、最終的に多くのリリースが行われます。
したがって、私たちが探しているのは、毎日のジョブを「アップストリーム」ジョブとして持つ方法です。これにより、promote-builds を使用して毎日リリースを行うことができます。
以下の図は、私たちがやろうとしていることの概要を示しています
Create_snapshot
|
--+----+------+--
| |
quick-regression |
| |
--+--------+-----+---+-- |
| | | |
Findbugs Integration Junit |
| test tests Daily-trigger
| | | |
| | | |
| | | |
| | | |
---+--------+----+----+-------+--
|
Deploy-as-release