Предварительно проверил сборку RoR с помощью Git и Hudson? - PullRequest
0 голосов
/ 10 ноября 2011

В проектах .NET я использовал TeamCity и Subversion для запуска предварительно проверенных сборок .

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

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

Таким образом, сборки из ствола всегда должны быть зелеными, и никто в команде не прерывается поломкой сборки.

Мой вопрос: кто-нибудь достиг аналогичного рабочего процесса в проекте Ruby on Rails, используя Git и Jenkins (a.k.a. Hudson)? Если да, не могли бы вы поделиться некоторыми советами / советами / документацией?

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Возможно, вы захотите взглянуть на комбинацию Дженкинс / Геррит. Gerrit - это система проверки кода, которую вы можете настроить, чтобы она не подталкивала ваш коммит к мастеру, пока ваш коммит не будет одобрен. Вы можете настроить его так, чтобы Дженкинс сначала одобрил его.

Мы начинаем использовать его для проекта C ++, где Дженкинс сначала пытается создать патч, и в случае успеха он помещается в основной репозиторий. Это также не останавливает git на стороне клиента.

0 голосов
/ 10 ноября 2011

Чтобы действительно сделать это, вы хотите использовать ловушку предварительного получения Git. Отличный (который запускает тесты PHP, когда код был передан) подробно описан в: посте в блоге на codeutopia.net

Однако последнее предложение записи гласит:

это приведет к задержке git push до его завершения.

Что неинтересно, если ваш тестовый набор занимает минуты, а серьезно раздражает , когда это занимает 10 или 20 минут (потому что git на машине разработчика будет сидеть и ждать, а не отпускать пока крюк предварительного получения не выйдет).

Теперь вы можете написать какой-нибудь сценарий Хадсона, чтобы отменить неудачный коммит при разрыве сборки. Бывшая команда экспериментировала с такой идеей, но никогда не реализовывала ее.

...