在CruiseControl.NET中,当buildCondition =“IfModificationExists”构建由任何分支上的更改触发时,不会更改为已配置的分支

时间:2015-04-21 17:37:33

标签: git cruisecontrol.net

我正在使用CruiseControl.NET和git。我已经配置了两个项目,每个项目用于同一个存储库中的不同分支。我已为每个项目为buildCondition =“IfModificationExists”配置了intervalTrigger。问题是,只要存储库中的任何分支发生更改,而不是仅为项目配置的分支上的更改,就会为两个项目运行构建。

更具体地说,我已为相应的分支机构Production和ReleaseCandidate配置了两个CCNet项目,ProductionCI和ReleaseCandidateCI。当我将更改合并到分支ReleaseCandidate时,项目ReleaseCandidateCI按预期构建。但是,即使生产分支上没有任何变化,ProductCI项目也是如此。

这主要是一种烦恼,因为每个项目都会在每次需要时执行。它们只是在没用时执行。

这是我的配置:

文件trigger.xml

<cb:config-template xmlns:cb="urn:ccnet.config.builder">
    <triggers>
        <intervalTrigger
            name="continuous"
            seconds="600"
            buildCondition="IfModificationExists"
            initialSeconds="5"/>
        </triggers>
</cb:config-template>

档案ccnet.config

<project>
   <name>ProductionCI</name>
    ...
    <cb:include href="trigger.xml" xmlns:cb="urn:ccnet.config.builder"/>
    ...
    <sourcecontrol  type="multi">
        <sourceControls>
            <git>
                <repository>[url to repo]</repository>
                    <branch>Production</branch>
                    <workingDirectory>[path to directory]</workingDirectory>
                    <autoGetSource>true</autoGetSource>
            </git>
        </sourceControls>
    </sourcecontrol>    
    ...
</project>
<project>
    <name>ReleaseCandidateCI</name>
    ...
    <cb:include href="trigger.xml" xmlns:cb="urn:ccnet.config.builder"/>
    ...
    <sourcecontrol  type="multi">
        <sourceControls>
            <git>
                <repository>[url to repo]</repository>
                <branch>ReleaseCandidate</branch>
                <workingDirectory>[path to directory]</workingDirectory>
                <autoGetSource>true</autoGetSource>
            </git>
        </sourceControls>
    </sourcecontrol>    
    ...
</project>

注意:我知道使用单独的存储库而不是分支将解决这个问题,但它不是一个真正的选择。

提前感谢您的帮助。

0 个答案:

没有答案