Я использую CruiseControl.NET с git. У меня настроено два проекта, каждый для другого филиала в том же репозитории. Я сконфигурировал интервалTrigger для buildCondition = «IfModificationExists» для каждого проекта. Проблема в том, что сборка выполняется для обоих проектов всякий раз, когда есть изменение на любом филиале в репозитории, а не только на ветке, настроенной для проекта.В CruiseControl.NET, когда сборка buildCondition = «IfModificationExists» запускается путем изменения в любой ветви, а не изменения настроенной ветки
В частности, я сконфигурировал два проекта CCNet, ProductionCI и ReleaseCandidateCI для соответствующих филиалов Production and ReleaseCandidate. Когда я объединяю изменения в ветку ReleaseCandidate, проект ReleaseCandidateCI создается, как ожидалось. Тем не менее, проект ProductCI тоже, хотя ничто не изменилось на производственной отрасли.
Это в основном просто раздражение, потому что каждый проект выполняется каждый раз, когда он требуется. Они просто исполняются, когда это не полезно.
Вот моя конфигурация:
Файл trigger.xml
<cb:config-template xmlns:cb="urn:ccnet.config.builder">
<triggers>
<intervalTrigger
name="continuous"
seconds="600"
buildCondition="IfModificationExists"
initialSeconds="5"/>
</triggers>
</cb:config-template>
ccnet.config Файл
<project>
<name>ProductionCI</name>
...
<cb:include href="trigger.xml" xmlns:cb="urn:ccnet.config.builder"/>
...
<sourcecontrol type="multi">
<sourceControls>
<git>
<repository>[url to repo]</repository>
<branch>Production</branch>
<workingDirectory>[path to directory]</workingDirectory>
<autoGetSource>true</autoGetSource>
</git>
</sourceControls>
</sourcecontrol>
...
</project>
<project>
<name>ReleaseCandidateCI</name>
...
<cb:include href="trigger.xml" xmlns:cb="urn:ccnet.config.builder"/>
...
<sourcecontrol type="multi">
<sourceControls>
<git>
<repository>[url to repo]</repository>
<branch>ReleaseCandidate</branch>
<workingDirectory>[path to directory]</workingDirectory>
<autoGetSource>true</autoGetSource>
</git>
</sourceControls>
</sourcecontrol>
...
</project>
Примечание: Я знаю, что использование отдельных хранилищ вместо ветви будут решать эту проблему, но это не вариант.
Заранее за вашу помощь.
Что делать, если вы совместили работу сборки ваших филиалов в рамках одного проекта, и заменить '' 'с два ' блоки? –
Спасибо за комментарий. Установка типа sourcecontrol = "git" приводит к сбою притяжения. Я столкнулся с этим, когда я изначально задал проекты. Согласно документации, он должен быть установлен в «multi» http://cruisecontrolnet.org/projects/ccnet/wiki/Multi_Source_Control. И объединение проектов сборки не будет делать то, что я хочу, которое строится только на ветке Production или ReleaseCandidate, если они были изменены. –
Какая версия CC.NEt вы используете? – TridenT