我要做的是为存储库中的所有分支机构提供CI和自动构建。我希望这些Web应用程序的每个构建都拥有它自己的项目,并作为虚拟目录(或等效的)放置在分支站点上。能够创建一个新的分支并让它自动启动持续集成和构建过程,这将是非常好的。在IIS中添加一个新的虚拟目录并不是什么大不了的事情,如果其他人只是将其放置到位,我就可以这么做了。
例如:
目前,我正在使用SVN,Nant和CruiseControl.Net,但如果情况需要,我会打开另一个持续集成服务器或构建脚本。
答案 0 :(得分:3)
这可以做到,但很多都取决于你的构建脚本。如果你告诉cc.net监视顶级svn文件夹,例如你有项目监视器:
http://myserver.com/svn/project而不是http://myserver.com/svn/project/trunk。如果在http://myserver.com/svn/project中看到任何更改,它将启动构建。
现在,由构建脚本决定哪些源已过期或是否有要构建的新分支。构建脚本将为任何新分支创建新的VDir。
另一个选择是建立一个cc.net项目,除了向cc.net添加新项目之外什么都不做。 (称之为BranchBuilder项目)我将利用cc.net中的预处理器并拥有一个顶级.config文件,该文件仅包含trunk和每个分支的项目。分支构建器项目将监视svn上的根路径。如果它看到任何更改,它将查看自上次构建以来是否有任何新分支。如果有,则可以为该分支创建ccnet-branchname.config文件,创建vdir,然后使用其他include更新ccnet.config根文件。
ccnet配置更新后,cc.net将识别配置文件已被修改并重新加载配置添加新的分支项目。该分支项目将开始运行并构建新分支。
答案 1 :(得分:1)
我不明白真正的问题。无论如何,我建议你哈德森(http://hudson-ci.org/)。
它易于使用。 使用XML文件很容易配置。 它有远程API。
答案 2 :(得分:1)
对于基于分支的自动设置持续集成项目,我不认为你想要什么。但是,如果您的分支机构非常标准并且没有大幅改变,那么编写一个PowerShell脚本(或您喜欢的任何脚本语言)来设置新项目将非常容易。
我怀疑是否需要,当我们在CC.NET中分支时,复制中继项目并搜索和替换所需字段只需不到一分钟。我们遇到问题的唯一一次是当我们在构建期间使用自定义脚本时,如果存在这些脚本,我们也需要修改它们,但这将在任何持续集成系统中发生。