2010-02-14 69 views
0

我已经使用Teamcity构建了构建。看到我下面的构建文件。Teamcity在成功构建上构建循环

  • 当构建成功并且测试通过时,构建过程就会无限循环地一次又一次地运行。

  • 当构建失败时,这不会发生。

我试着先设置60秒停顿在buildtriggering上,最后禁用了构建触发器。没有不同。

这还有什么原因?任何想法或抓秸秆将不胜感激。

我的MSBuild文件看起来像这样:

<Project DefaultTargets="Build;Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">  

    <PropertyGroup> 
     <DeployDirectory>$(MSBuildProjectDirectory)\..\bin</DeployDirectory> 
     <DependencyDirectory>$(MSBuildProjectDirectory)\Dependencies</DependencyDirectory> 
     <LinqToSqlMapFolder>$(DeployDirectory)\LinqToSql</LinqToSqlMapFolder> 
      <NCoverVersionForMSI>$(BUILD_NUMBER)</NCoverVersionForMSI> 
      <NCoverVersionPeriod>$(BUILD_NUMBER)</NCoverVersionPeriod> 
    </PropertyGroup> 

    <ItemGroup> 
     <ProjectFiles Include="**\*.vbproj"/> 
     <ConfigFiles Include="**\*.config"/> 
     <MapFiles Include="**\*.linqtosql.config"/> 
     <TestAssemblies Include="$(DeployDirectory)\*.Test.dll"/> 
     <Dependencies Include="$(DependencyDirectory)\**\*" /> 
    </ItemGroup> 

    <Target Name="Clean"> 
     <MSBuild Projects="@(ProjectFiles)" Targets="Clean"/> 
    </Target> 

    <Target Name="Build"> 
     <MSBuild Projects="@(ProjectFiles)" Targets="Rebuild"> 
      <Output TaskParameter="TargetOutputs" ItemName="BuildOutput"/> 
     </MSBuild> 

     <Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(DeployDirectory)" /> 
     <Copy SourceFiles="@(Dependencies)" DestinationFolder="$(DeployDirectory)" SkipUnchangedFiles="true" /> 
     <Copy SourceFiles="@(ConfigFiles)" DestinationFolder="$(DeployDirectory)" SkipUnchangedFiles="true" /> 
     <Copy SourceFiles="@(MapFiles)" DestinationFolder="$(LinqToSqlMapFolder)" SkipUnchangedFiles="true" /> 
    </Target> 

    <UsingTask AssemblyFile="$(DependencyDirectory)\Gallio\Gallio.MsBuildTasks.dll" TaskName="Gallio" /> 


    <Target Name="Test"> 
      <Gallio IgnoreFailures="true" Files="@(TestAssemblies)"> 
       <Output TaskParameter="ExitCode" PropertyName="ExitCode"/> 
      </Gallio> 
    </Target> 

</Project> 

回答

4

虽然看起来这不是你的问题,但我遇到了类似的自己的循环问题。我已经在项目配置中启用了标签。我还使用每60秒检查一次修改规则来触发构建。因此,在成功构建之后,TeamCity会将构建标记在VCS中,然后在60秒后,它会看到(它自己的)修改并触发另一个构建。

为了解决我们的问题,我们只是禁用标签,因为我们不希望它,但你也可以配置一个规则,忽略特定的作者,使它不会触发它所做的修改。

0

这似乎有一些问题的TeamCity的安装,并按照重新安装配置的备份解决的问题完全相同的配置和buildscript。