Teamcity在成功构建时构建循环

时间:2010-02-14 14:16:04

标签: msbuild continuous-integration teamcity

我已经使用Teamcity建立了一个版本。请参阅下面的构建文件。

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

  • 如果构建失败,则不会发生这种情况。

我试图首先在buildtriggering上设置60秒暂停,最后完全禁用构建触发。没有区别。

还有什么可能是造成这种情况的?

我的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>

2 个答案:

答案 0 :(得分:4)

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

要解决我们的问题,我们只是禁用了标签,因为我们仍然不想要它,但您也可以配置规则来忽略特定作者,这样它就不会触发它所做的修改。

答案 1 :(得分:0)

安装teamcity时出现了一些问题,重新安装后的配置备份解决了完全相同的配置和buildscript的问题。