0

好的..我一直在搜索这个特定的问题,并且确实找到了一些示例,但并不完全是我想要的答案。任何想法,输入将不胜感激!

我的情况是..

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

问题是,我在每个构建的最后部分添加了一个版本提交过程。这意味着,如果我要构建 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>

先感谢您,

4

1 回答 1

2

我认为您应该能够使用过滤的源代码管理来做您需要的事情:

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

于 2013-04-02T07:18:27.700 回答