http://semver.org/でセマンティック バージョニングを読んだ後、次のパターンを使用することにしました。ただし、SDLC ツールの自動化と統合に関して、未解決の問題がいくつかあります。
Version Pattern:
major.minor.revision.build
そのような;
メジャー:メジャーな変更。手動でインクリメントする必要があります。
マイナー:マイナーな変更は、問題追跡システムで新しい機能または既存の機能の拡張が解決されるたびに、自動的にインクリメントされる必要があります。
リビジョン:マイナーな変更に影響しない変更は、問題追跡システムでバグが解決されるたびに自動的にインクリメントされます。
問題追跡システムで問題が解決されない限り、開発者は決してソースをコミットしないと仮定します。この構成では、問題追跡システムは JIRA です。これは、タスクとは別に、デフォルトで課題タイプとしてバグ、改善、および新機能があることを意味します。
さらに、この構成に継続的インテグレーション ツールを追加し、それが竹であると仮定します (ちなみに、以前は竹を使用したことがなく、Hudson を使用しました)。また、mylyn プラグインで Eclipse IDE を使用しており、さらにプロジェクトはMaven プロジェクト (ウェブ)。
ここで、次のシナリオを説明することで、何をしたいのかを明らかにしたいと思います。アナリスト (A) は、Maven プロジェクト (P) に関連する新機能であるイシュー (I) を開きます。開発者 (D) として、この問題に関するメールを受け取り、Eclipse で Mylyn インターフェイスを介してタスクを開きます。問題 (I) に関連する新機能を理解し、開発しています。私はテスト駆動開発指向の開発者であるため、Unit、DBUnit、および User-Acceptance (たとえば、Selenium を使用) の各テストをそれに応じて作成しました。最後に、変更をソース管理にコミットします。残りは自動的に循環する必要があると思いますが、どうすればこれを達成できるかわかりませんか? 自動循環される部分は次のとおりです。
ソース管理システムには、Continous Integration ツールをトリガーしてプロジェクトをビルドするポストフック スクリプトが必要です (P)。ビルド中、適切な段階でテスト コードを実行し、そのレポートを生成する必要があります。ユーザー受け入れテストは、専用サーバー (jboss、Tomcat など) で実行する必要があります。この受け入れテストの順序は、サーバーを起動し、UA テストを実行してから、UA テスト レポートを生成し、サーバーを停止する必要があります。これらのすべての手順が正常に完了したら、バージョン管理を実行する必要があります。バージョニング部分では、Maven プラグインなどは、Issue Tracking System から解決された問題の数を取得し、関連するバージョン フラグメント (マイナーおよびリビジョン) をインクリメントし、最後にビルド番号を追加する必要があります。バージョンのフラグメントは、ユーザー インターフェイスに表示するためにマニフェスト ファイルに保存できます。最後になりましたが、CI ツールはそれをテスト環境にデプロイする必要があります。それが私が望むすべての自動循環プロセスです。
実稼働環境へのアーティファクトのデプロイは、自動または手動で行う必要がありますか?