私は 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 サービスとうまく統合できます。