そこで、PHP プロジェクト用に次のように設定しました。
- すべてのコードを含む Git リポジトリ。
- その上で PhpUnderControl が実行されている Cruisecontrol のインスタンス。
CruiseControl プロジェクト ディレクトリに新しいプロジェクトを作成し、2 分ごとに git リポジトリの変更をチェックするようにポーラーを設定しました。この Cruisecontrol インスタンスで 2 つのプロジェクトを実行していますが、最初にセットアップしたプロジェクトは問題なく動作します。
プラットフォーム プロジェクトで発生している問題は、エラー ログに次のように表示されます。
2010-02-04 06:07:27,076 [Thread-14061] INFO プロジェクト - プロジェクト プラットフォーム: ブートストラップ 2010-02-04 06:07:27,077 [Thread-14061] INFO ProjectController - プラットフォーム コントローラー: ビルド進行状況イベント: ブートストラップ 2010-02-04 06:07:27,496 [Thread-14061] INFO GitBootstrapper - すでに最新です。 2010-02-04 06:07:27,500 [Thread-14061] INFO プロジェクト - プロジェクト プラットフォーム: 変更の確認 2010-02-04 06:07:27,500 [Thread-14061] INFO ProjectController - プラットフォーム コントローラー: ビルド進行状況イベント: 変更の確認 2010-02-04 06:07:27,583 [Thread-14063] 警告 Git - 警告: '' のログは 2010 年 1 月 26 日 13:43:11 -0500 までしか戻りません。 2010-02-04 06:07:27,584 [Thread-14063] 警告 Git - 致命的: 無効なリビジョン範囲 @{ 1264038932}..@{ 1265281647} 2010-02-04 06:07:27,584 [Thread-14061] INFO プロジェクト - プロジェクト プラットフォーム: 変更が見つかりません。ビルドは不要です。 2010-02-04 06:07:27,584 [スレッド-14061] INFO プロジェクト - プロジェクト プラットフォーム: アイドル状態 2010-02-04 06:07:27,584 [Thread-14061] INFO ProjectController - プラットフォーム コントローラー: ビルド進行状況イベント: アイドル
ここで奇妙なことに、プロジェクト ディレクトリを確認すると、コード ベースが更新されます。(作業ディレクトリでいくつかの小さなコミットでテストしました。) 問題は、Git がエラーになるため、他のビルド プロセスがまったく実行されないことです。
ディレクトリに直接移動しprojects/platform
て git pull を実行すると、正常に動作します。プロジェクト ディレクトリから ant ビルドを実行しても問題なく動作します。
関連する構成ファイルは次のとおりです。
<project name="platform" buildafterfailed="false">
<plugin name="git" classname="net.sourceforge.cruisecontrol.sourcecontrols.Git" />
<modificationset quietperiod="60">
<git localWorkingCopy="projects/${project.name}/" />
</modificationset>
<bootstrappers>
<gitbootstrapper localWorkingCopy="projects/${project.name}/" />
</bootstrappers>
<schedule interval="120">
<ant antscript="/usr/bin/ant" buildfile="projects/${project.name}/build.xml" />
</schedule>
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<log dir="logs/${project.name}">
<merge dir="projects/${project.name}/build/logs/" />
</log>
<publishers>
<artifactspublisher dir="projects/${project.name}/build/api"
dest="artifacts/${project.name}"
subdirectory="api"/>
<artifactspublisher dir="projects/${project.name}/build/coverage"
dest="artifacts/${project.name}"
subdirectory="coverage"/>
<execute command="phpuc graph logs/${project.name} artifacts/${project.name}"/>
<execute command="phpcb
--log projects/${project.name}/build/logs
--source projects/${project.name}/lib/model
--ouput projects/${project.name}/build/php-code-browser" />
<artifactspublisher dir="projects/${project.name}/build/php-code-browser"
dest="artifacts/${project.name}"
subdirectory="php-code-browser" />
</publishers>
</project>
私のgitエラーの検索では、良い洞察が得られなかったので、ここの誰かが知っていることを願っています!