GitHub, Gerrit, Hudson (Jenkins) рабочий процесс - PullRequest
16 голосов
/ 16 сентября 2010

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

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

В настоящий момент, однако, у меня есть некоторые проблемы с продумыванием рабочего процесса для этого и хотелось бы услышатьдругие сделали сами.Мысли? * * 1005

Ответы [ 2 ]

25 голосов
/ 01 октября 2011

Мы используем github , gerrit и jenkins (преемник hudson ).Мы связываем его вместе с redmine для отслеживания ошибок.

До Gerrit мы использовали github в качестве основного репозитория разработки, и разработчики имели доступ к коммитам.Теперь, когда у нас запущен Gerrit, GitHub используется только в качестве нашего репозитория публикации, и только пользователь Gerrit имеет доступ к push в github.

рабочий процесс:

  1. разработчик извлекает источник из github.
  2. разработчик вносит изменения.
  3. разработчик подталкивает к Gerrit.
  4. gerrit отправляет jenkins уведомление об изменении для интеграционного теста.
    • jenkins извлекает изменения непосредственно с сервера gerrit git.
    • при передаче, jenkins добавляет +1 к обзору gerrit, передает обзор другим разработчикам.
    • при ошибке, добавляет jenkins -1 к обзору Gerrit
    • статус прохождения / неудачи переведен в Redmine
  5. другие разработчики просматривают изменения, утверждают (+2)
  6. Gerrit фиксирует изменения в githubрепозиторий.
    • ловушка github уведомляет redmine об обновлениях.
    • redmine извлекает изменения из github, анализирует сообщения о фиксации для получения информации о тикете.
  7. разработчик извлекает изменения из github.... вернуться к 2. [РЕДАКТИРОВАТЬ]: мы переключились на тянуть прямо с геррит.Github остается зеркалом для извлечения производственных источников.

Пропавшие кусочки:

  1. кусок, чтобы связать обзор геррита с / от отслеживания ошибок .
5 голосов
/ 16 сентября 2010

Я не использовал Геррит напрямую, но мне нравится идея промежуточного и специализированного репо между:

  • репозитории вашего разработчика
  • центральное GitHub удаленного репо

Итак, вам нужно определить, что вы хотите опубликовать в удаленном репозитории GitHub:

  • код, подлежащий проверке (имеется в виду, что локальное веб-приложение Gerrit будет запрашивать код GitHub)
  • код, который был просмотрен (то есть вы сначала публикуете свои коммиты в Gerrit, а после просмотра кода отправляете их на GitHub)

Второй рабочий процесс ближе к тому, что Google Android Projects следует с Gerrit .

В обоих случаях требуется промежуточное локальное репо для изучения Герритом.

...