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

Рабочий процесс GitHub, Gerrit, Hudson (Jenkins)

Я только начинаю использовать GitHub, Gerrit и Hudson (Jenkins) вместе. И мне нужны мысли о рабочем процессе.

Мы хотели бы использовать GitHub в качестве нашего основного удаленного репо. Мы хотели бы использовать Gerrit прежде всего для просмотра кода, а также для триггеров сборки в Hudson.

Тем не менее, в настоящий момент у меня возникают проблемы с тем, чтобы понять процесс работы, и хотелось бы услышать, что сделали другие. Мысли?
4b9b3361

Ответ 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. Гитуб остается зеркалом для вытягивания производственных источников.

Отсутствующие части: