В настоящее время мы используем Gerrit для группы из примерно дюжины и некоторых разработчиков.
Это наш текущий рабочий процесс:
1. Отделы разработчиков от мастера
2. Разработчики работают в своем местном филиале
3. Разработчики нажимают на gerrit, который захватывает ведущую ветку, содержав нажатую фиксацию в refs/for/master. (Если вы не знали, gerrit также является менеджером репозитория.)
4. Геррит вызывает Дженкинса, проводит модульные тесты (и тесты Selenium) в наборе изменений. Если это не удастся, комманда возвращается разработчику. Else, Jenkins + 1s commit.
5. Рецензент просматривает commit и + 1s его
6. Старший рецензент просматривает commit и + 2s, а набор изменений объединяется в refs/head/master (т.е. Фактическая ветвь)
Нам нравится этот рабочий процесс; это здорово. Это принесло замечательный и очень необходимый процесс и дисциплину для нашего развития и сделало список дел из нашего ранее забытого и проигнорированного узкого места обзора кода, и все счастливы для него.
x - Intermission - x
Теперь мы собираемся перенести наше управление заданиями на Jira. Пока я настраивал его, я также создал Crucible, так как кажется естественной интеграцией, чтобы получить обзор кода, чтобы быть частью целого shebang. То, что я не могу сделать, это воспроизвести наш рабочий процесс выше, чем мы полюбили. С интеграцией Jira/Crucible, поскольку у нас больше нет нашего хранилища репозитория (и мы не хотим платить за Atlassian Stash), мы будем нажимать код на Bitbucket. Мы больше не можем работать непосредственно с мастером, потому что плохой код больше не будет "храниться в затворе", а сливается в master разработчиком, прежде чем он пройдет какие-либо тесты или проверку кода. Единственное решение, чтобы сохранить его из мастер-ветки, похоже, является вилкой. Ладно, это раздражает, но я мог бы с этим справиться. Но как мне получить комманду из вилки разработчика, чтобы она слилась в главную ветвь после прохождения проверки кода? Это то, что я хотел бы услышать от людей, которые сделали что-то даже отдаленно похожее, или знают, как это сделать, учитывая мою ситуацию.
Альтернативой всему этому является попытка установить интеграцию между Jira и Gerrit с помощью https://github.com/hobbs/jirret, но использует XML RPC, который поддерживает Jira, но не будет дольше делать какие-либо разработки для.