Рабочий процесс GitHub, Gerrit, Hudson (Jenkins)
Я только начинаю использовать GitHub, Gerrit и Hudson (Jenkins) вместе. И мне нужны мысли о рабочем процессе.
Мы хотели бы использовать GitHub в качестве нашего основного удаленного репо. Мы хотели бы использовать Gerrit прежде всего для просмотра кода, а также для триггеров сборки в Hudson.
Тем не менее, в настоящий момент у меня возникают проблемы с тем, чтобы понять процесс работы, и хотелось бы услышать, что сделали другие. Мысли?
Ответы
Ответ 1
Я не использовал напрямую Gerrit, но мне нравится идея промежуточного и специализированного репо между:
- ваши репозитории разработчиков
- центральный репозиторий GitHub
Итак, вам нужно определить, что вы хотите опубликовать в удаленном репозитории GitHub:
- который нужно пересмотреть (это означает, что локальный веб-сервер Gerrit вытащил бы код GitHub для проверки)
- который был рассмотрен (это означает, что вы сначала публикуете свои записи в Gerrit, а после проверки кода вы нажимаете их на GitHub)
Второй рабочий процесс ближе к тому, что Google Android Projects следует за Gerrit.
В обоих случаях требуется промежуточное локальное репо для проверки Gerrit.
Ответ 2
Мы используем github, gerrit и jenkins (преемник hudson), Мы связываем его вместе с redmine для bugtracking.
До gerrit мы использовали github в качестве основного репозитория разработки, и разработчики имели доступ к фиксации. Теперь, когда мы запускаем gerrit, github используется только как наш публичный репозиторий, и только пользователь gerrit имеет доступ к push to github.
Рабочий процесс:
- разработчик проверяет источник из github.
- разработчик вносит изменения.
- разработчик нажимает на gerrit.
- gerrit отправляет уведомление об изменении jenkins для теста интеграции.
- jenkins вытягивает изменения непосредственно с сервера gerrit git.
- on pass, jenkins добавляет +1 к обзору gerrit, передает обзор другим разработчикам.
- при неудаче, дженкинс добавляет -1 к обзору gerrit.
- статус прохода/отказа, перенаправленный на redmine
- другие разработчики пересматривают изменения, утверждают (+2)
- gerrit фиксирует изменения в репозитории github.
- github hook уведомляет redmine об обновлениях.
- redmine извлекает изменения из github, анализирует сообщения для передачи информации о билете.
- разработчик извлекает изменения из github... назад к 2. [EDIT]: мы переключились на вытягивание непосредственно из gerrit. Гитуб остается зеркалом для вытягивания производственных источников.
Отсутствующие части: