私は、一般的な自動化プロセスを改善しようとしています。VS2012 と TFS2012 を使用しています。
CIブランチにチェックインしたときに私がしたいことは次のとおりです。
- 建てる
- ビルド定義設定で構成されているように、選択したプロジェクト/ソリューションをビルドします。
- Web サイトの展開に使用できる展開パッケージを生成します (プロジェクト全体を再構築する必要はありません)。
- 後で公開できる nuget パッケージを生成します (プロジェクト全体を再度再構築する必要はありません。デバッグできるように、インデックス作成から作成されたシンボルと一致する dll が必要です)。
- テスト- ビルドが成功した場合のみ
- 構成されたすべての単体テストを実行します。
- デプロイ- すべての単体テストに合格した場合のみこれは、開発環境に重大な変更が入るのを防ぐためです
- (1.2) から展開パッケージを取得し、目的の環境に公開します (公開プロファイルと変換を使用して構成することをお勧めします)。
- 公開- すべての単体テストに合格した場合のみ
- (1.3) から nuget パッケージを取得し、プライベート nuget ギャラリーに公開します
プロセス全体に完全なチュートリアルは必要ありませんが (それは素晴らしいことですが)、それを統合する方法について詳しく説明します。
例えば:
- ラッパー プロジェクトで msbuild を使用する必要がありますか?
- TFS ビルド サーバーでのビルド時にパッケージを作成するにはどうすればよいですか?
- 「IF AND ONLY IF ALL UNIT TESTS PASS」制約を強制するにはどうすればよいですか?
- ビルドの一部として展開/公開を実行するための最良/最も簡単な方法は何ですか?
これは私たちが使用したいプロセスであり、これが非常に高く評価されていることを認識している助けがあれば. そして、他の多くの人々が、このスタイルのプロセスの統合に着手する方法に興味を持っていると確信しています.
また、関連する場合、ほとんどのソリューションには、共有 dll プロジェクト、Web サイト/API、および単体テストが混在しています。私がこのプロセスを必要とする理由の 1 つは、大きな DLL を分割し、小さな分離されたユニットにモジュール化できるようにすることです。
ありがとう、ゲイリー。