Почему TeamCity не запускает мой файл сборки Nant? - PullRequest
1 голос
/ 19 декабря 2008

У меня есть простой файл сборки NAnt, который пытается выполнить обновление из Subversion в указанном каталоге. Пример содержимого файла тестовой сборки:

<?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 (который был настроен для выполнения файла тестовой сборки), сборка завершается с ошибкой 1, возвращаемой из файла клиента slav Subversion Collabnet.

Раздражает то, что графический интерфейс пользователя NAnt может запускать файл сборки без ошибок, поэтому я не понимаю, почему TeamCity должен давать сбой, поскольку считаю, что он использует тот же клиент subversion, что и графический интерфейс пользователя NAnt, и тот же MS .net версия фреймворка тоже.

Подробности журнала ошибок следующие, и ошибка относится к задаче NAnt Contrib 'svn-update':

[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 сделать свою собственную проверку (и я, вероятно, также сделал уборку в то же время). Похоже, что и Джеймс Грегори, и Рубен Бартелинк были правы!

Ответы [ 3 ]

4 голосов
/ 23 декабря 2008

TeamCity имеет свое собственное расположение для проверки в агенте, который выполняет сборку. Сообщение об ошибке указывает на то, что эта рабочая копия каким-то образом запуталась; иногда это может произойти, если сборка не удалась и она была в середине обновления. Я бы посоветовал попытаться сделать svn cleanup в рабочей копии конкретного агента.

1 голос
/ 28 марта 2009

TeamCity поддерживает svn checkout на агенте. Он может автоматически вызывать svn update в каталоге проверки сборки. Пожалуйста, выберите проверку агента в настройках конфигурации сборки / 2.Version Control.

Пожалуйста, посмотрите страницу документации на http://www.jetbrains.net/confluence/display/TCD4/Build+Checkout+Directory

1 голос
/ 23 декабря 2008

Кроме того, если вы перейдете на страницу проекта и выберете «Принудительно чистить заказ» в меню действий (или принудительно принудительно активировать его в настройках проекта), это может переубедить вас (т. Е. Заставить его получить чистую копию по сравнению с обычный [более быстрый] подход к получению дельт).

Вы также можете сдуть рабочий каталог и посмотреть, излечит ли это его.

...