4

組織とそのさまざまな製品の中央シンボルサーバーをセットアップしようとしています。各製品には、ナイトリービルドと、「1回限りの」ベータ、RC、およびリリースビルドがあります。

私が持っている目標は、約1か月分のナイトリービルドシンボルを保持することです。ここでは多くの「ドッグフーディング」を実行して、人々が内部ビルドを使用できるようにします。可能な場合は、内部winqualから取得したファイルを簡単にデバッグしたいと考えています。

また、すべてのベータ、RC、およびリリースビルドシンボルを永続的に保持できる必要があります。

多くの調査を行った後、ここでの最善のアプローチは、2つのシンボルサーバーを用意することだと思います。1つはナイトリービルド(以前の〜30ビルドが登録されています)用で、もう1つはベータ、RC、リリースシンボルを永続的に保存するためのものです。製品タグとバージョンタグを使用してビルドスクリプトをシンボルストアに追加し、製品とビルド番号を記録します。ビルドが成功すると、スクリプトはシンボルサーバーのhistory.txtを使用して、削除されていない最も古いビルドを識別し、それをsymstoreから削除します。

ベータ版、RC版、リリース版の「1回限りの」ビルドの場合、作成後にビルドとインストールの担当者が識別し、2番目のシンボルサーバー(永続ストレージ用)にも追加します。

だから私はいくつかの質問があります:これはまったく合理的だと思いますか?これを行うにはもっと簡単な方法があるはずですが、シンボルサーバーを使用しているほとんどの組織はこの問題に取り組む必要はありませんか?

次に、このアプローチを進める場合、サーバーに登録されている最も古い既知のシンボルセットを識別するための絶対確実な方法はありますか?最終変更日を使用することを考えましたが、history.txtが最も適切であるように見えますが、エラーが発生しやすいスクリプト解析です。製品とバージョンの情報を含むシンボルを追加するだけでなく、製品とバージョンの情報を含むシンボルを削除できることを望んでいました。

助けてくれてありがとう。私は誰かが持っているかもしれないどんな質問にも喜んで答えるか、またはどんな説明も提供します。

4

2 に答える 2

5

2 つの個別のシンボル ストアが実際に最善の策になると思います。ナイトリー ビルドのストアを管理するには、AgeStore を参照することをお勧めします: http://msdn.microsoft.com/en-us/library/ff560046(v=vs.85).aspx

于 2011-08-17T16:59:43.020 に答える
2

以下を実行するすべてのビルドで実行されるウィジェットを Wise Script で作成しました。

バージョン管理が 1.0.1.0 であると仮定します。

1.) 1.0.1.0 から 1.0.6.0 までのシンボルがストアに追加されます (5 回の実行)

2.) ビルドがあるたびに、シンボル ストアの履歴ファイルが解析されます...

3.) 1.0.7.0 がビルドされ、シンボルが追加されると、1.0.1.0 シンボルがシンボル ストアから削除されます。

私は基本的にバージョン番号を解析しており、3 番目が現在よりも 5 以上少ない場合は、トランザクション ID を解析し、symstore.exe del /i %TRANS_ID% を実行します。

これにより、日次/CI ビルドのシンボルが最後の 5 つのビルド シンボルのみにプルーニングされます。

リリース、ホットフィックス、パッチなどの注目すべきシンボル...製品名を変更し、シンボルを手動で追加するだけです...そのようにして、私はデイリーを刈り込むだけです.

必要に応じて、ここのコードを SMS インストーラー コード (Wise と同じ) としてカット アンド ペーストできます。また、ローカル アーカイブを 5 ビルド深く保持する同様のウィジェットも作成しました。そうすれば、CI ビルド用のローカル アーカイブ用にスペースを無駄にすることはありません。私は両方使っていますが、どちらでも構いません。どちらも、実行時のナビゲーションに単純な .INI ファイルを使用します。そうすれば、両方を Jenkins/Jobs/ フォルダーに入れ、それぞれの .INI ファイルを編集するだけです。.EXE は、archive_prunerator 用に 161K、symstore_widget 用に 161K、さらに 4 行または 5 行の .INI ファイルであるため、非常に軽量です。

AJ

于 2013-02-07T21:58:11.730 に答える