如何在CruiseControlNet构建中自定义buildCondition =“IfModificationExists”?

时间:2013-04-01 02:10:12

标签: cruisecontrol.net ccnet-config

好的..我一直在搜索这个具体的问题,并找到了一些例子,但不完全是我想要的答案。任何想法,投入将不胜感激!

我的情况是......

我通过CCNet进行每日构建过程。它们在构建时都具有buildCondition =“ifModificationExists”参数。当且仅当存在修改时(检查源“更新”),这允许CCNet构建。

问题是,我在每个构建的最后部分添加了一个版本的Commit进程。这意味着,如果我要构建1.0.0.3,我将提交已更改的AssemblyInfo.cs文件(包含更新的版本号),并允许我在构建每个版本时检查日志。

这完全搞砸了整个自动化日常构建过程。你看,因为它提交了每个版本的版本,无论它是否有任何其他更新,CCNet认为在构建每个早晨之前总是有一个修改。事实上,唯一的修改是上次构建的版本更新。

我无法通过在修改存在时保持版本更新+每日自动构建来想办法解决这个问题。

有任何帮助吗? :)

编辑1.这是我的每个构建的触发器部分:

<!--TRIGGERS --> 
    <triggers>
    <scheduleTrigger time="04:00" buildCondition="IfModificationExists" name="Scheduled"> 
    </scheduleTrigger>
    </triggers>

编辑2.这里是我使用powershell提交文件(AssemblyInfo.cs)的部分

        <powershell>
            <script>commit.ps1</script>
            <executable>C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe</executable>
            <scriptsDirectory>D:\SRC\BuildTools</scriptsDirectory>
            <buildArgs>D:\SRC\ProjectName\branches\3.0.3\</buildArgs>
            <description>BuildCommit Dir D:\SRC\ProjectName\branches\3.0.3\src</description>
        </powershell>

提前谢谢你,

1 个答案:

答案 0 :(得分:2)

我认为你应该能够使用过滤源控制来做你需要的事情:

http://cruisecontrolnet.org/projects/ccnet/wiki/Filtered