2009-05-13 14 views
2

開発者ビルドプロジェクトを構築してからサーバーに公開する必要があります。公開が成功したら、その開発者に対してテストプロジェクトをビルドする必要があります。基本的な考え方は、開発者がSvnで何かをコミットするたびにこのプロセスを実行することです。cc.netを使用した開発者ワークフローの自動公開

現在、私はCC.netとMSBuildを使用しています。どのようにこの作品を達成するためのアイデアを持っています。

ステップ1.開発者は、SVN上の変更を検出し、最近の変更でプロジェクトをビルドし、ビルドサーバー上 ステップ3を更新を取る ステップ4.その後、サーバー ステップ5にそれを公開SVN ステップ2にコミット(私はcc.net、msbuild、およびnunitを使ってこのプロセスを成功させています)

答えて

1

Projectタグを使用している場合は、パブリッシャに「in it」を含めることもできます。たとえば :ビルドが成功したか失敗した場合に

<project > 
<tasks> ... 
</tasks> 
<publishers> 
<buildpublisher> 
    <sourceDir>path with built binaries</sourceDir> 
    <publishDir>path that will be shared</publishDir> 
    </buildpublisher> 
</publishers> 
</project> 
+0

私はこの方法を使用しようとしましたが、公開していないので、source dirのすべてのファイルを宛先dirにコピーしています。私が望むのは、Webiteをサーバーに公開することです。任意のアイデアこれを行う方法 – sam

1

はCC.Netで出版社のセクションに関係なく実行されます。あなたは最後のビルドステップの後に置くというタスクのセクションの下で、タスクとして 'build server to publish'を追加する必要があります。

これにより、以前のすべての「タスク」が完了したときに、エラーコードを生成することなく、CC.Netには「パブリッシュ・ビルド・サーバー」のみが実行されます。

通常、DOS .batファイルに「パブリッシュ・ビルド・サーバー」が必要であることが分かっている場合は、次のようにします。

<tasks> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable> 
     <workingDirectory>c:\Somewhere</workingDirectory> 
     <projectFile>Something.sln</projectFile> 
     <buildArgs>/noconsolelogger /p:Configuration=Debug /v:m</buildArgs> 
     <targets>Build</targets> 
     <timeout>720</timeout> 
     <logger>C:\program files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger> 
    </msbuild> 
    <exec> 
     <executable>C:\program files (x86)\CruiseControl.NET\server\PublishToServer.bat</executable> 
     <baseDirectory>C:\somewhere</baseDirectory> 
     <buildArgs></buildArgs> 
     <buildTimeoutSeconds>9000</buildTimeoutSeconds> 
    </exec> 
</tasks> 

slawekgが指摘するように、ビルドが成功した場合は、しかし、私はまだbuildpublisherを使用して利用可能なものよりも多くの設定可能なコピーを行うために、バッチファイルを使用して見つけるのみを実行しますbuildpublisherを、使用することができます。

+0

パブリッシングのためのDos .batファイルを書き込む方法。私にコードを送ることができますか? – sam

0

また、MSビルドスクリプトに "プッシュ"を書くことも考えられます。これにより、Samが話している柔軟性と制御が得られますが、ビルドが成功した場合にのみ公開が確実に行われるようになります。

関連する問題