2013-02-13 25 views
0

我正在使用SVN回购转换为我们的代码库的Git仓库。我们正试图在这个过渡期间维持我们现有的大部分构建/部署过程,这意味着使用我们现有的CruiseControl.NET CI服务器进行构建。如何在使用CruiseControl.Net时触发构建Git仓库子目录中的更改?

,我快到的问题是,我们有几个不同的应用程序目录中的git的根,它让我从检测特定的子文件夹和建筑只有相关的应用程序的改变之下,如:

../gitRepoRoot/appOne 
../gitRepoRoot/appTwo 

传统上,我将svn工作目录设置为[../gitRepoRoot/appOne]之类的东西,只是检测到构建appOne的更改,但到目前为止,我可以告诉没有办法使用子目录饭桶。

我不是一个CruiseControl.NET的专家,所以也许我错过了一些东西,或者有另一种方法来达到同样的目的?

+0

您是否找到解决方案?如果下面的答案有帮助,请接受它 – 2014-05-05 19:52:27

回答

0

根据你有你的源代码块的方式,你可以使用包含/排除过滤器来控制构建触发。

参见:http://www.cruisecontrolnet.org/projects/ccnet/wiki/Filtered

例如:

<sourcecontrol type="filtered"> 
    <dynamicValues /> 
    <exclusionFilters /> 
    <inclusionFilters> 
    <pathFilter> 
     <pattern>appOne</pattern> 
    </pathFilter> 
    <pathFilter> 
     <pattern>appTwo</pattern> 
    </pathFilter> 
    </inclusionFilters> 
    <sourceControlProvider type="git"> 
    <autoGetSource>True</autoGetSource> 
    <branch>master</branch> 
    <commitUntrackedFiles>False</commitUntrackedFiles> 
    <dynamicValues /> 
    <executable>C:\Program Files (x86)\Git\bin\git</executable> 
    <fetchSubmodules>False</fetchSubmodules> 
    <repository>**repo**</repository> 
    <tagCommitMessage>CCNet Build {0}</tagCommitMessage> 
    </sourceControlProvider> 
</sourcecontrol> 

注: 默认pathFilter元素是区分大小写的,但可以像这样被禁用:

<pathFilter> 
    <caseSensitive>False</caseSensitive> 
    <pattern>appOne</pattern> 
</pathFilter> 

有关其他选项,请参阅http://www.cruisecontrolnet.org/projects/ccnet/wiki/PathFilter

相关问题