CruiseControl.NET: запустить сборку при коммите - PullRequest
1 голос
/ 15 июня 2009

Я много искал, но не нашел решения своей проблемы.

Я использую CruiseControl.NET (1.4.4). Мой проект (в ccnet.config) загружает хранилище с сервера cvs в локальное хранилище и запускает некоторые исполняемые файлы (msbuild, NUnit ...).

Я использую триггер (Interval или Schedule Trigger), который регулярно запускает мой проект. Но если мой проект не был изменен, он всегда запускает все последующие задачи. И я бы хотел этого избежать. Поэтому я хочу запустить свой проект, только если зафиксирован коммит.

Есть ли какое-нибудь решение для этого, пожалуйста?

Спасибо

Olivier

Ответы [ 4 ]

4 голосов
/ 15 июня 2009

Ваш триггер должен указать IfModificationExists:

<intervalTrigger 
    name = "dave" 
    seconds = "30"   
    buildCondition = "IfModificationExists" />

Хотя buildCondition="IfModificationExists" по умолчанию в любом случае, поэтому, если для него не установлено ForceBuild, все будет в порядке.

EDIT:

URL-триггер может вам пригодиться. Вы можете настроить свой svn-сервер на изменение страницы при передаче, и CC.Net проверит страницу, чтобы увидеть, изменилась ли она, и, таким образом, не получает все файлы.

0 голосов
/ 15 июня 2009

Спасибо, Андерс Джуул и Энди, за ваши быстрые ответы.

При использовании intervalTrigger с условием сборки IfModificationExists проект должен загружаться каждый раз (это логично ^^) Но мой размер проекта составляет около 450Mo. Так что это немного долго. Итак, мой последний вопрос: можем ли мы выполнить все сборки и следующие задачи, когда была обнаружена команда фиксации? (без загрузки всех файлов, в CruiseControl). Я использую TortoiseCVS (версия 1.10.10). Может быть, мы сможем принудительно запустить проект CruiseControl после коммита?

0 голосов
/ 15 июня 2009

Просто используйте IntervalTrigger, вот так:

<triggers>
    <intervalTrigger />
</triggers>

Вы также можете добавить модификацию DelaySeconds, которая будет ждать несколько секунд, прежде чем начинать сборку после последней фиксации.

    <modificationDelaySeconds>30</modificationDelaySeconds>
0 голосов
/ 15 июня 2009

Я запускаю свой проект, как показано ниже, что гарантирует выполнение задач только при наличии изменений.

Надеюсь, это поможет,

Андерс, Дания

Отредактировано: мой фрагмент кода не попал на страницу - я пытался заменить меньше, больше, чем скобками.

</p> <blockquote> [project name="SpilMerePool" queue="Q2" queuePriority="1"] [sourcecontrol type="svn"] [trunkUrl]https://ajf-ser1.ajf.local:8443/svn/SpilMerePool/trunk[/trunkUrl] [workingDirectory]c:\from_vc\SpilMerePool[/workingDirectory] [executable]C:\Program Files\VisualSVN Server\bin\svn.exe[/executable] [username]username[/username] [password]password[/password] [/sourcecontrol] </blockquote> <p>

...