我正在使用SVN repos转换为代码库的Git repos。我们正在尝试在此过渡期间维护大部分现有的构建/部署过程,这意味着使用我们现有的CruiseControl.NET CI服务器进行构建。
我遇到的问题是我们在git root下面有几个不同的app目录,这使我无法检测到特定子文件夹中的更改并仅构建相关的应用程序,例如:
../gitRepoRoot/appOne
../gitRepoRoot/appTwo
传统上我已经将svn工作目录设置为类似[../gitRepoRoot/appOne]的东西,并且刚刚检测到构建appOne的更改,但到目前为止我可以告诉我无法使用git观察子目录
我不是任何方式的CruiseControl.NET专家,所以也许我错过了一些东西,或者还有另一种方法可以达到同样的目的?
答案 0 :(得分:0)
根据您拥有sourcecontrol块的方式,您可以使用包含/排除过滤器来控制构建触发。
请参阅: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