3

Windows 2008R2 を実行する CruiseControl.Net を備えたビルド マシンがあります。ソースは git リポジトリにあります。CruiseControl はcygwinを使用して git リポジトリにアクセスします。タグ付け以外はすべてうまくいきます。成功したすべてのビルドにタグを付けたいので、ここにccnet.configの一部を示します。

<sourcecontrol type="git">
    <repository>git://xxx.xxx.xxx.xxx/Project</repository>
    <executable>C:\cygwin\bin\git</executable>
    <branch>projectName/branchToBuild</branch>
    <workingDirectory>Sources</workingDirectory>
    <autoGetSource>true</autoGetSource>
    <tagOnSuccess>true</tagOnSuccess>
    <tagCommitMessage>CCNet Build {0}</tagCommitMessage>
    <tagNameFormat>project/builds/v{0}</tagNameFormat>
    <committerName>CCNet</committerName>
</sourcecontrol>

しかし、ビルドはエラーで失敗します:

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: error: unable to create temporary sha1 filename : No such file or directory

error: unable to write tag file
. Process command: C:\cygwin\bin\git tag -a -m "CCNet Build 6.2.18.0" project/builds/v6.2.18.0
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git.GitCreateTag(String tagName, String tagMessage, IIntegrationResult result)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git.LabelSourceControl(IIntegrationResult result)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Build(IIntegrationResult result)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)

何が間違っている可能性がありますか?コマンドラインから同じコマンドを実行すると、すべて正常に動作します。

ありがとう!

これをmsbuildプロジェクトファイルに追加することで解決しました:

<Exec Command='C:\cygwin\bin\git tag -a -m "CCNet Build" project/builds/v$(CCNetLabel)' ContinueOnError="true"/>
<Exec Command='C:\cygwin\bin\git push origin tag project/builds/v$(CCNetLabel)' ContinueOnError="true"/>
4

1 に答える 1

1

これは、ccnet サービスを実行しているユーザーがリポジトリへの書き込みアクセス権を持っていないようです。

于 2013-02-20T17:25:48.460 に答える