3

MVC3 フロント エンドと 2 つの Windows サービスを備えた .net アプリがあります。

それはすべて、Windows サービスまたは IIS として実行できる 2 つの RavenDB インストールに依存します。ここでは気にしません。

サービスは TopShelf を使用して構築され、テストはストレート NUnint で行われます。私はリポジトリとして Github を使用しています。

理想的には、「リリース」ビルドが成功するたびに、ビルド、テスト、ディレクトリと RavenDb データディレクトリのワイプを行い、(Web とサービス) をデプロイしてから、プロセスを開始して、私が構築しているコンソールアプリで仕上げを実行します。デフォルトのデータセットで実行します。

ここでの展開をどのように管理しますか? CI サーバーはまだありません。好きなようにできる完全に新しいサーバーがあります。CI/CD を長い間行っていないので、武器が変更されたのではないかと思います。

MSBuild/NAnt を見る必要がありますか? PSさけ、レーキ?チームシティ?

ビルド後のプロセスをどのように管理しますか?

4

2 に答える 2

4

私は psake で Jenkins を使用してきましたが、非常にうまく機能しています。正直なところ、ほとんどの作業は psake が行います。Jenkins は単純にソースをプルダウンしてから私の psake スクリプトを呼び出しますが、Nick Nieslanik が言うように、必要に応じて Jenkins に MSBuild/NUnit/etc を直接呼び出すことも簡単にできます。

ジェンキンス

StackOverflow での Jenkins スレッドと CruiseControl(.NET) スレッドの比較から、一般的なコンセンサスは Jenkins を使用するように見えました。CruiseControl を実際に試したことがないので、それを保証することはできませんが、Jenkins は非常に優れていると言えます。Jenkins はセットアップが簡単であることがわかりました。CruiseControl.NET をざっと見てみると、Jenkins の方が簡単に始められることがわかりました。TeamCity をまったく見ていないので、それについて話すことはできません。

Jenkins には優れたプラグイン システムと、psake スクリプトを簡単に呼び出せるようにする Powershell 用のプラグインを含む多くのプラグインがあります。

プサケ

これまでのところ、psakeは素晴らしいと思います。これは rake 構文に基づいていますが、rake よりも少し Windows にネイティブです。PowerShell の上にあるため、それに付随する多くの便利な Windows 管理機能を活用できます。たとえば 、psake タスクから直接 IIS アプリ プールとサイトをセットアップおよび破棄する優れた例については、この投稿を参照してください。それは素晴らしいことだと思いますが、MSBuild、Nant、または rake でそれを行う方法がわかりません。基本的なファイル システム操作も基本的な作業です。いくつかのファイルをどこかにコピーするためだけにたくさんの山かっこを使用するよりも優れているようです。

MSBuild と Nant に関しては、どちらもかなり強力だと思いますが、この種の XML ファイルを編集するのは苦痛に感じます。Powershell は、Windows との緊密な統合を備えた適切なスクリプト言語です。psake は、ビルドおよびその上にあるその他のタスクのための DSL です。いいコンビです。

とは言っても、実際にをビルドするには、それを psake 内から msbuild にファームアウトし、ビルドするソリューション/プロジェクト ファイルでそれを呼び出します。psake には、msbuild を呼び出して使用するバージョンを指定するためのコマンドが組み込まれています。

RavenDB を使用しているので、RavenDB (およびRhino-ESB ) の構築に psakeを使用していることに興味があるかもしれません。

一般的な psake のヒントについては、この投稿を参照してください。


簡単に言うと、個人的には Jenkins と psake をお勧めします。この組み合わせは、git、msbuild、NUnit、IIS、そしておそらく Windows サービスとうまく統合できます。

于 2012-04-08T23:19:10.667 に答える
1

Jenkins をジョブ実行エンジンとして使用します。次に、一連の MSBuild スクリプトを作成してコア ビルドを実行し、Jenkins プラグイン モデルを使用して、必要に応じてビルド前後のタスク (つまり、NUnit の実行と結果の解析、デプロイ用の Powershell スクリプトの実行) を追加します。 Post/Pre-commit フックを使用した Github との優れた統合により、CI ビルドを非常に簡単にセットアップできます。

于 2012-03-07T05:44:20.487 に答える