Подтвердить что ты не робот

Автоматизация сборки из тегов subversion

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

  • Проверить исходный код
  • Создайте конструкцию script из шаблона
  • Постройте проект

Я уверен, что смогу сделать это с помощью подзарядки в подрывной работе, но я пытаюсь найти способ сделать это с помощью чего-то другого, кроме крючка подрывной операции.

  • Будет ли иметь смысл отслеживать каталог тэгов в репозитории subversion, чтобы начать мой рабочий процесс?
  • Есть ли приличные инструменты, которые помогают с этим (.NET был бы замечательным, если это было возможно).
  • Мне лучше просто написать движок, чтобы сделать это?

Мои настройки:

  • Существующий продукт, который выполняет все или часть этого
  • Если необходимо выполнить разработку,.NET предпочтительнее
  • Работает с Windows (у нас есть репозиторий на базе Linux, но все происходит на окнах)
4b9b3361

Ответ 1

Мне нравится hudson - EASY, чтобы настроить и работать из коробки с SVN.

Вы можете настроить его для построения на каждом коммите.

Я загрузил его и начал работать с ним в течение дня. Он прошел множество ухищрений, но я рекомендовал бы его всем.

Я также использовал круиз-контроль, но не так доволен этим. У меня нет особых причин, кроме межплатформенной проблемы.

ИЗМЕНИТЬ

Недавно я добавил работу на свой сервер сборки hudson, который прослушивает jabber-чат google/gmail. Я могу "продвигать" "регулярную" сборку для сборки релиза с помощью этого механизма. Я только что создал новую работу, которая делает шаги, необходимые для продвижения/публикации частной сборки в кандидате на выпуск.

Ответ 2

Я сделал это с помощью Хадсона. В обычном слоте проверки subversion у меня есть чек для сундука:

http://dryad.googlecode.com/svn/trunk/dryad

Затем в качестве первого действия для сборки у меня есть "оболочка выполнения", и в этой оболочке используйте svn-переключатель, чтобы перейти к последнему тегу в репозитории:

svn switch http://dryad.googlecode.com/svn/tags/ 'svn ls http://dryad.googlecode.com/svn/tags | хвост -n 1 'dryad

Следующий шаг сборки - команда maven 'clean install', которая запускает сборку с использованием кода из помеченной версии.

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

Он автоматизировал... немного клочья, но он работает...

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

Ответ 3

Похоже, что после непрерывного процесса построения интеграционных построений что-то вроде CruiseControl или Hudson (hudson написан в java, но ОЧЕНЬ прост в использовании в Windows).

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

Для чего вы хотите, механизм сборки может смотреть определенное местоположение (например, '/branches/release'). Если вы затем слились в эту ветку, Хадсон будет автоматически строить проект, архивировать артефакты и создавать тег для вас, если все было успешным (см. Подключаемый тэги для подвешивания).

Мне не нравится делать такие вещи из-за крюка после фиксации, потому что он делает этап фиксации слишком длинным. Однако TeamCity - это система управления версиями, которая имеет функцию, которая делает именно это, не удерживая вас, пока он совершает.

Я бы рекомендовал Hudson для этого.

Ответ 4

CruiseControl.Net может легко автоматизировать автоматические сборки из репозиториев subversion.

Он может контролировать репозиторий (Svn и несколько других типов) и запускать автоматические сборки с использованием различных инструментов. (NAnt, MSBuild и т.д.)

Ответ 5

Коммерческий продукт рекламируется на этом сайте именно для этой цели!

http://www.finalbuilder.com/Default.aspx?tabid=314

Вам может потребоваться добавить post-hook в SVN для запуска запуска сборки, если вы не хотите, чтобы он выполнял расписание.

Ответ 6

Я бы также рекомендовал Хадсона для этого. Я искал что-то похожее, создаю тег и начинаю сборку. Вместо этого я решил использовать этот плагин для hudson:

http://wiki.hudson-ci.org/display/HUDSON/Release+Plugin

И используйте это для создания тэга и явной сборки релиза.

Ответ 7

Я использую NAntNAntContrib) для автоматических сборок. Он автоматически проверяет репозиторий subversion на изменения и (если они есть) получает последнюю версию исходного кода и запускает сборку.

Я не уверен, что существующие задачи позволяют делать именно то, что вы хотите, но, возможно, вы могли бы использовать его как начало и, если необходимо, расширить его с помощью задач для ваших особых потребностей (он был разработан с .NET).

Ответ 8

Как и другие ребята, вам нужен сервер непрерывной интеграции (CruiseControl, CruiseControl.Net, Hudson и т.д.). В то время как вы можете работать над своей конструкцией script и совершать перехваты, чтобы выполнить описанную вами функциональность, в конце вы обнаружите, что вы изобрели колесо (Continuous Integration Server). Нет необходимости, есть свободные решения для этой цели.

Процесс будет немного отличаться от описанного выше. Сервер сборки будет:

  • Обнаружение нового фиксации
  • Оформить свой исходный код
  • Запустите свою сборку script
  • Тег для успешной сборки

Передача инициирует процесс и создает тег, а не тег, запускающий процесс. Сервер делает это моим мониторингом репозитория svn, а не крюком фиксации.

Ознакомьтесь с документацией CruiseControl.Net по этому вопросу, в частности, с параметрами tagOnSuccess и tagBaseUrl. Hudson и CruiseControl должны иметь аналогичные варианты.

http://confluence.public.thoughtworks.org/display/CCNET/Subversion+Source+Control+Block