ビルド\テストにTeamCityを多用しています。
私が見る限り、TeamCity はパッケージ化と展開のための適切なツールではありません。もちろん、TeamCity によって任意のコマンドライン プロセスを開始できますが、欠けているのは、デプロイ先の「環境」の概念です。
Nolio などの一部のツールには、これが任意の形式で含まれています。たとえば、プロジェクトの環境タイプを定義できます。
1 app server:
- IIS web site with:
- Virtual Dir \ Web Application:
- App Pool
- .NET Framework version
- Windows service with:
- Name
- Description
1 db server:
- db name
- db user
- db password
したがって、すべての環境 (Dev、QA、PreProd、Prod) は、これらのパーツの異なるパラメーターを持ちます。また、パッケージ化ステップ (たとえば、Wix による MSI へ) で、これらのパラメーターを使用して、特定の環境用の MSI を作成できます。たとえば、Web.config の connectionString を更新します。
他のプロジェクトでは、環境の定義が異なる場合があります。このような構造や値を記述するには、おそらく XML 形式が最適でしょう。
このようなものを NAnt スクリプトに実装しました。環境ごとに .build ファイルがあり、フラットな値のリストが含まれています。次に<xmlpoke>
、値をWeb.config
ファイルに入れます。しかし、これを維持するのは非常に困難です。
そのため、TeamCity と統合して (ビルド アーティファクトを取得するため)、それらをインストール可能な MSI にパッケージ化し、環境に簡単にデプロイできるツールを探しています。このようなツールには、この概念「環境」が必要であり、構造を簡単に定義できるようにし (上記の例を参照)、環境インスタンスを追加\変更\削除できるようにし、パッケージ化\デプロイ時にそれらを自動的に使用できるようにする必要があります。
アイデアや経験はありますか?