別のCCnet + SVNガイド

Cruise Controlは、非常に多数のCI(継続的統合)システムの1つです。 SVNと通信し、サイトを.NETに展開するように構成する方法について説明します。



まず、このサーバー上のSSのタスクについて少し説明します。





次に、構成ファイルの各部分をレイアウトし、少なくとも何らかの形で興味深い行ごとにコメントを付けます。 実際には、完全に機能する構成が実際にレイアウトされます。



したがって、内部セキュリティブロック:

<internalSecurity> <users> <passwordUser name="Dude"> <display>Dude the Builder</display> <password>blah-blah-blah</password> </passwordUser> </users> <permissions> <rolePermission name="Builders"> <forceBuild>Allow</forceBuild> <defaultRight>Deny</defaultRight> <viewProject>Allow</viewProject> <users> <userName> <name>Dude</name> </userName> </users> </rolePermission> </permissions> </internalSecurity>
      
      







最も単純なカテゴリのパラメーター-ユーザー名、システムでの表示方法、最後にパスワード。

実際には、 権限ブランチはユーザーグループを作成しています。 強制ビルド -ビルドを手動で実行する機能、 プロジェクトを表示する機能- プロジェクトを表示する機能。 それと別のものの両方は、システムで作業する必要があるユーザーのために追加することが望ましいです。 ユーザーのハイライト-ユーザーをグループに追加します。 これがすべて、簡単に言えばセキュリティの部分です。



次に、プロジェクトの分岐が始まります。 便宜上、それはいくつかのブロックに分割されます。

最初の部分は主な発表です。

 <project name="mysite"><workingDirectory>C:\develop\CCnet\mysiteCCnetMain</workingDirectory> <artifactDirectory>C:\develop\CCnet\mysiteCCnetArtifacts</artifactDirectory>
      
      





1行目と2行目では、すべてが単純です。これは、プロジェクトの名前とプロジェクトの作業フォルダーの宣言です。 3番目のフォルダーは疑わしい場合があります。 だから-ビルドの保存された副産物があります-たとえば、ログ。



第二部-ソース管理

  <sourcecontrol type="svn"> <executable>C:\Program Files (x86)\VisualSVN Server\bin\svn.exe</executable> <trunkUrl>https://127.0.0.1:443/svn/someproject</trunkUrl> <username>user</username> <password>passwd</password> </sourcecontrol>
      
      





リポジトリからファイルを取得できる実行可能ファイルへのパス、プロジェクトリポジトリ自体へのパスが示されている場合(この場合、同じマシン上にあり、まったく必要ありません)、 userおよびpasswdで特定のリポジトリにアクセスできるユーザーを指定することが重要です。



3番目の部分はタスクブランチです。 このブランチには、コマンドがあります。 その中で、たとえば、独自のスクリプトを呼び出すこともできます。

  <exec> <executable>iisreset</executable> <buildArgs>/stop</buildArgs> </exec>
      
      





リソースを同時に使用する可能性のある問題を解決するためにIISを停止します(私の場合、これはIISフォルダーにコピーする直前に後で実行できますが、事前にオフにすることはしばしば役立ちます。もちろん、プロジェクトのコンパイルと転送に時間がかかりません)。 原則として、単一のプロジェクトのみをオフにすることができます。 詳細については、以下のリンクをご覧ください。



 <msbuild> <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> <projectFile>mysite.sln</projectFile > <buildArgs> /p:Configuration=Debug </buildArgs> <targets>ReBuild</targets > <timeout>600</timeout > </msbuild>
      
      





残念ながら、このブロックについて特別なことはありません。 実行可能ファイルへのリンク、転送されるファイルの名前(実際にはworkingfirektoryからの相対パス)、呼び出しパラメーター、およびコンパイルに割り当てられた時間。



  <exec> <executable>robocopy.exe</executable> <baseDirectory>C:\develop\CCnet\mysiteCCnetMain</baseDirectory> <buildArgs>.\ C:\Inetpub\vhosts\mysite\httpdocs *.* /E /XA:H /PURGE /XO /XD ".svn" /NDL /NC /NS /NP</buildArgs> <buildTimeoutSeconds>300</buildTimeoutSeconds> <successExitCodes>1,0</successExitCodes> </exec>
      
      





Robocopyは、win7 / 2008以降のコピー用の標準コンソールユーティリティです 私は2つめを獲得しました-ジャンプのリンクは気にしませんでした。 だから-パラメータ。

実行可能ファイル -新しいウィンドウの場合はそのまま、または古いウィンドウの場合はファイルパス。

baseDirectory -robocopyが開始フォルダーと見なすフォルダー。

buildargs-順番に-。\-開始フォルダーから直接コピーすることを意味します。

2番目のパラメーター-フォルダーへのパス-コピー先。 *。*-マスクをコピーします。 さらに順番に

/ E-サブディレクトリの再帰的コピー

/ XA:H-隠しファイルをコピーします

/ PURGE-削除に置き換え

/ Xo-古いコピーしないでください

/ XD ""引用符で指定されたディレクトリをコピーから除外します

/ NDL / NC / NS / NP-コピーレポートを表示しない



buildTimeoutSeconds-完了までの時間。 時にはそれも十分ではありません。そのために間違いもあるかもしれません。

successExitCodes-操作が成功したと見なされる終了コード。 そのままにしておくことができます。



  <exec> <executable>iisreset</executable> <buildArgs>/start</buildArgs> </exec>
      
      







IISを開始します。 これでタスクの終わりです。



最後に、最後になりますが、重要な部分はプロジェクトの承認です。



 <security type="defaultProjectSecurity"> <defaultRight>Deny</defaultRight> <permissions> <rolePermission name="Builders" ref="Builders" /> </permissions> </security>
      
      





ここでは、実際には、デフォルトのアクセスルールと、プロジェクトの管理が許可されているグループが宣言されています。



私が出会った落とし穴について少し。




最初の問題は、SVN証明書の不信です。

解決策:ccnetを起動したユーザーの下からシステムに移動し、コンソールの下から目的のリポジトリからsvn updateを実行します。 そして、証明書に関して質問が生じたとき、pを入力してください-永続的な受け入れとはどういう意味ですか?



2番目の問題はRPCです。 サーバーがRPC使用不可エラーでクラッシュします。

解決策:実際には、パラメーターが正しく指定されていません。



残りの問題は、ソリューションに対する明白なアプローチを引き起こしませんでした。



使用された文献:

オマール・アル・ザビラによる記事



All Articles