2

私は、一般的な自動化プロセスを改善しようとしています。VS2012 と TFS2012 を使用しています。

CIブランチにチェックインしたときに私がしたいことは次のとおりです。

  1. 建てる
    1. ビルド定義設定で構成されているように、選択したプロジェクト/ソリューションをビルドします。
    2. Web サイトの展開に使用できる展開パッケージを生成します (プロジェクト全体を再構築する必要はありません)。
    3. 後で公開できる nuget パッケージを生成します (プロジェクト全体を再度再構築する必要はありません。デバッグできるように、インデックス作成から作成されたシンボルと一致する dll が必要です)。
  2. テスト- ビルドが成功した場合のみ
    1. 構成されたすべての単体テストを実行します。
  3. デプロイ- すべての単体テストに合格した場合のみこれは、開発環境に重大な変更が入るのを防ぐためです
    1. (1.2) から展開パッケージを取得し、目的の環境に公開します (公開プロファイルと変換を使用して構成することをお勧めします)。
  4. 公開- すべての単体テストに合格した場合のみ
    1. (1.3) から nuget パッケージを取得し、プライベート nuget ギャラリーに公開します

プロセス全体に完全なチュートリアルは必要ありませんが (それは素晴らしいことですが)、それを統合する方法について詳しく説明します。

例えば:

  • ラッパー プロジェクトで msbuild を使用する必要がありますか?
  • TFS ビルド サーバーでのビルド時にパッケージを作成するにはどうすればよいですか?
  • 「IF AND ONLY IF ALL UNIT TESTS PASS」制約を強制するにはどうすればよいですか?
  • ビルドの一部として展開/公開を実行するための最良/最も簡単な方法は何ですか?

これは私たちが使用したいプロセスであり、これが非常に高く評価されていることを認識している助けがあれば. そして、他の多くの人々が、このスタイルのプロセスの統合に着手する方法に興味を持っていると確信しています.

また、関連する場合、ほとんどのソリューションには、共有 dll プロジェクト、Web サイト/API、および単体テストが混在しています。私がこのプロセスを必要とする理由の 1 つは、大きな DLL を分割し、小さな分離されたユニットにモジュール化できるようにすることです。

ありがとう、ゲイリー。

4

1 に答える 1

0

BUILD ビルド定義設定で構成されているように、選択したプロジェクト/ソリューションをビルドします。Web サイトの展開に使用できる展開パッケージを生成します (プロジェクト全体を再構築する必要はありません)。

これはすぐに使用できます。展開プロファイルをプロジェクトに追加し、それらを「Release」と呼びます MSBuild 引数に次を追加します

/p:DeployOnBuild=true;PublishProfile=リリース

発行プロファイルが MSBuild 引数に入力したものと一致する限り、Release を使用する必要はありません。

これにより、ビルドの一部として展開ファイルが生成されます (MSDEPLOY)

Generate a nuget package that can later be published (without having to rebuild the entire project again, i need the dlls to match the symbols created from indexing so we can debug them)

コード プレックスの Nugetter を参照してくださいhttp://nugetter.codeplex.com/

テスト - ビルドが成功した場合のみ 構成されたすべての単体テストを実行します。

すぐに使用できるはずですが、ビルド テンプレートを変更して、コンパイルが失敗した場合にビルドを失敗させることができます。これがニーズに適している場合です。

展開 - すべての単体テストに合格した場合のみ これは、重大な変更が開発環境に入るのを防ぐためです (1.2) から展開パッケージを取得し、目的の環境に公開します (公開プロファイルと変換を使用して構成することをお勧めします)。ユニット テスト パス (1.3) から nuget パッケージを取得し、プライベート nuget ギャラリーに公開します

上記のコードプレックスの Nugetter を参照してください

于 2014-06-25T13:22:41.897 に答える