-2

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 ツールはそれをテスト環境にデプロイする必要があります。それが私が望むすべての自動循環プロセスです。

実稼働環境へのアーティファクトのデプロイは、自動または手動で行う必要がありますか?

4

1 に答える 1

0

副次的な質問から始めましょう。本番環境への自動展開では、「ビジネス」の承認が必要です。本番環境に自動的にプッシュするには、テストがどの程度優れている必要がありますか? それらは、物事をただライブに移行することを信頼できるほど十分に優れていますか? ダウンタイムは?それは受け入れられますか?テストに何かが欠けている場合、ロールバックできますか? 問題が発生したかどうかを確認するために、生産を監視していますか? 一般に、これらの質問に対する答えは否定的であり、ビルド/自動テスト イベントの結果としてそこに自動デプロイすることはできません。

追跡に関しては、いくつかのものが必要です。すべての仮定が真実である必要があります (そうであるとは思えませんが、そこにたどり着いたら素晴らしいことです)。テスト結果に基づいてビルド時間後にインクリメントできるビルド番号も必要です。ソースの変更にバグ ID の注釈を付ける必要があります。ソースの変更を解析し、課題と関連付けるには、ビルド システムが必要です。ビルドに関連する問題の数を取得できるように、ビルド システムへの API が必要です。最後に、クエリを実行し、それに応じてビルド番号を更新するための独自のスクリプトが必要になります。

  • それは完全に実行可能ですが、本当に価値があるのでしょうか? 番号付けスキームに付加する価値は何ですか?
于 2011-12-27T18:41:50.820 に答える