首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么TeamCity不能运行我的Nant构建文件?

为什么TeamCity不能运行我的Nant构建文件?
EN

Stack Overflow用户
提问于 2008-12-19 16:28:39
回答 3查看 4.6K关注 0票数 1

我有一个简单的NAnt构建文件,它试图在指定的目录上从subversion执行更新。测试构建文件内容的示例如下:

代码语言:javascript
复制
<?xml version="1.0" ?>
<project name="Project_name" default="update">
<property name="root" value="C:\Subversion\UpdateDir" overwrite="false"/>
<property name="build.repos" value="http:/server/svnrepos" overwrite="false"/>
<property name="build.user" value="user" overwrite="false"/>
<property name="build.pwd" value="userpw" overwrite="false"/>
    <target name="update">
        <!-- Update all files to latest (head) revision from the repository -->
        <svn-update destination="${root}" uri="${build.repos}" username="${build.user}" password="${build.pwd}" commandline="-r HEAD -q --no-auth-cache"/>
    </target>
</project>

当构建在TeamCity (已配置为执行测试构建文件)中运行时,构建失败,并从Collabnet subversion客户端'svn.exe‘文件返回错误1。

令人恼火的是,NAnt图形用户界面可以毫无错误地运行构建文件,所以我不明白为什么TeamCity会失败,因为我相信它使用与NAnt图形用户界面相同的subversion客户端和相同的MS .net框架版本。

错误日志详细信息如下,错误与NAnt Contrib任务‘svn-update’相关:

代码语言:javascript
复制
[16:01:56]: svn-update
[16:01:56]: [svn-update] svn: Working copy '.' locked
[16:01:56]: [svn-update] svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
[16:01:56]: C:\Subversion\ProjectBuilds\BuildFiles\Update0412.build(9,10): External Program Failed: C:\Program Files\CollabNet Subversion\svn.exe (return code was 1)
[16:01:56]: NAnt output: "C:\Program Files\NAnt-Gui\bin\NAnt.exe" -buildfile:C:\Subversion\ProjectBuilds\BuildFiles\Update0412.build -extension:C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NAntLoggers.dll -listener:JetBrains.BuildServer.NAntLoggers.NAntListener -D:teamcity.buildConfName=0412 -D:DotNetFramework1.1_Path=C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 -D:agent.home.dir=C:\BuildAgent "-D:agent.name=TeamCity Build Agent" -D:build.number=0.0.33 -D:teamcity.dotnet.nunitlauncher2.0=C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher2.0.exe -D:teamcity.dotnet.platform=C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.TeamCity.PlatformProcessRunner.1.1.exe -D:DotNetFramework1.1= -D:build.number.format=0.0.{0} -D:user.language=en -D:user.country=GB -D:os.version=5.1 -D:user.timezone=Europe/London -D:file.encoding=Cp1252 -D:file.separator=\ -D:agent.work.dir=C:\BuildAgent\work "-D:teamcity.projectName=Project 0412" -D:teamcity.dotnet.nunitlauncher2.0.vsts=C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher2.0.VSTS.exe -D:os.arch=x86 -D:DotNetFramework1.1_x86_Path=C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 -D:DotNetFramework1.1_x86= -D:teamcity.build.tempDir=C:\BuildAgent\temp\buildTmp -D:teamcity.dotnet.coveragelauncher=C:\BuildAgent\plugins\dotnetPlugin\bin\TeamCityRunners\JetBrains.dotTrace.TeamCity.CoverageRunner.exe -D:build.vcs.number=5758 -D:teamcity.dotnet.nunitlauncher=C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe -D:build.vcs.number.1=5758 -D:user.name=SYSTEM "-D:os.name=Windows XP" -D:build.vcs.number.0412=5758 "-D:teamcity.version=4.0 (build 8080)" -D:teamcity.dotnet.nunitaddin=C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.TeamCity.NUnitAddin-NUnit -D:teamcity.auth.password=YVscypn9BG9okr0ojOES7LgevrD8Wpfp -D:idea.build.agent.port=9092 -D:teamcity.build.checkoutDir=C:\Subversion\ProjectBuilds\0412 -D:teamcity.buildType.id=bt2 -D:teamcity.auth.userId=TeamCityBuildId=36 -D:teamcity.dotnet.nunitlauncher1.1=C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher1.1.exe -D:user.variant= -D:teamcity.agent.cpuBenchmark=107 -D:teamcity.dotnet.nunitlauncher.msbuild.task=C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MSBuildLoggers.dll -D:user.home=C:\ -D:idea.build.server.build.id=36 -D:path.separator=; -D:teamcity.build.workingDir=C:\Subversion\ProjectBuilds -D:teamcity.build.properties.file=C:\BuildAgent\temp\agentTmp\teamcity.build31597.properties update NAnt 0.85 (Build 0.85.2478.0; release; 14/10/2006) Copyright (C) 2001-2006 Gerry Shaw http://nant.sourceforge.net Buildfile: file:///C:/Subversion/ProjectBuilds/BuildFiles/Update0412.build Target framework: Microsoft .NET Framework 1.1 Target(s) specified: update update: [svn-update] svn: Working copy '.' locked [svn-update] svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) BUILD FAILED - 0 non-fatal error(s), 2 warning(s) C:\Subversion\ProjectBuilds\BuildFiles\Update0412.build(9,10): External Program Failed: C:\Program Files\CollabNet Subversion\svn.exe (return code was 1) Total time: 0.4 seconds.
[16:01:56]: Process exit code: 1

编辑:这个问题确实与SVN结账处于一种状态有关。我修复了它,允许TeamCity做它自己的检查(我可能在此期间也做了清理)。看来詹姆斯·格雷戈里和鲁本·巴特林克都是对的!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-23 09:28:46

TeamCity在运行构建的代理中有自己的签出位置。错误消息指出工作副本不知何故变得混乱;如果构建失败,并且处于更新过程中,有时会发生这种情况。我建议尝试在特定代理的工作副本中执行svn cleanup

票数 4
EN

Stack Overflow用户

发布于 2008-12-23 09:35:20

此外,如果您转到项目页面并从actions菜单中选择"Enforce Clean Checkout“(或在项目设置中永久强制执行),它可能会让您克服这一点(即,强制它获得一个干净的副本,而不是普通的更快的方法,即只获取增量)。

您还可以清除工作目录,看看是否可以解决它。

票数 1
EN

Stack Overflow用户

发布于 2009-03-27 21:37:00

TeamCity支持代理上的svn结账。它能够在build checkout目录中自动调用svn update。请选择build configuration settings/2下的checkout on agent。

请查看http://www.jetbrains.net/confluence/display/TCD4/Build+Checkout+Directory上的文档页面

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/381452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档