Изменить поток операций в cruisecontrol.net для DVCS? - PullRequest
7 голосов
/ 14 декабря 2010

Рабочий процесс CruiseControl.NET, задокументированный в Операционном потоке часто задаваемых вопросов CCNet , где метка генерируется первой, имеет смысл некоторый для централизованной VCS, но не так много для DVCS. С DVCS было бы лучше генерировать метку после получения источника, потому что сам источник мог бы понадобиться для метки (например, файл .hgtags в Mercurial или другие локальные исходные файлы, используемые для вычисления номера версий и сборок).

Кто-нибудь нашел способ запустить ярлык CCNet после получения источника?

Ответы [ 2 ]

3 голосов
/ 02 марта 2011

Мы не используем Labeller в CC.NET, но, тем не менее, наш подход может работать и для вас:

  • создать отдельный проект MercurialCheckout, который выполняет
    • Mercurial checkout
    • Исполняемая задача, которая обновляет текстовый файл triggers / mercurial.txt на сервере сборки
  • измените ваш "реальный" проект с mercurial типа sourcecontrol на файловую систему типа sourcecontrol, следя за триггерами / каталогом

Ваш реальный проект включает в себя задачу Labeller, и, поскольку проверка Mercurial была сделана ранее, Labeller должна сгенерировать «правильную» метку.

С уважением Frank

0 голосов
/ 16 ноября 2013

Нет способа заставить задачу labeller выполняться после задачи контроля версий. Но это нужно только в том случае, если данные источника метки хранятся исключительно в локальном рабочем каталоге. Вы сказали, что ваш источник метки находится в управлении версиями, поэтому вы должны использовать метку, которая может извлечь его из системы контроля версий.

Большинство систем контроля версий имеют командную строку, которая позволяет вам читать содержимое файла из stdout. Этикетировщики CCNet легко написать и развернуть. Вы можете использовать командную строку и аргументы, необходимые для получения информации о последней версии непосредственно из источника.

Пример конфигурации ccnet labeller

 <labeller type="svnLabeller">
   <svn>C:\Program Files (x86)\svn\bin\svn.exe</svn>
   <repository>https://path.to/project</repository>
   <versionInfoPath>/AssemblyInfo.cs</versionInfoPath>
  </labeller>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...