Как настроить сборку hudson (или jenkins) из веток релиза / исправления, используя модель ветвления git-flow? - PullRequest
3 голосов
/ 16 октября 2011

Моя компания переключается с SVN на GIT, и я исследую различные модели ветвления.Больше всего мне нравится git-flow , но у меня есть одна серьезная нерешенная проблема с ним.

Мы используем hudson (скоро станет jenkins) для нашего CI-сервера.Существует 5 приложений с 3 средами для каждого: разработка, контроль качества и производство.При использовании git-flow было бы очевидным указывать сборку разработки на ветку «разработка», а производственную сборку - на ветку «мастер», но как лучше всего настроить все так, чтобы мы могли легко перенаправитьqa среда до последней версии исправления или выпуска, если она существует, или разработка, если нет.В настоящее время мы просто обновляем задания jenkins вручную, но неудобно (и подвержено ошибкам) ​​вручную менять 5 заданий.

Некоторые вещи, которые я рассмотрел:

  1. Добавлениеветка qa и слияние с ней из веток release / hotfix.Это не стартер, потому что мы должны помнить о необходимости слияния с веткой qa каждый раз, когда мы вносим изменения в релиз / исправление, и это быстро устареет.

  2. Создание символическогоref "refs /heads / qa" и просто обновить его, чтобы он указывал на то, что мы хотим проверить QA.Это лучше, чем выше, но не работает, потому что нам нужно обновить sym-ref на нашем git-сервере, а обычные разработчики не имеют прав для этого.

Пока что ни один из этих вариантов не кажется мне жизнеспособным, есть ли другие варианты, которые мне не хватает?Спасибо.

1 Ответ

3 голосов
/ 16 октября 2011

Я не совсем понимаю специфику вашего вопроса, но как насчет этого:

В конфигурации сборки отметьте «Эта сборка параметризована», затем создайте строку или параметр выбора под названием «ветвь» (или аналогичный), который по умолчанию соответствует вашей ветке разработки.

Затем в конфигурации git, куда обычно входит имя ветви, используйте "$ {branch}" вместо жесткого кодирования имени ветви.

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

...