Как настроить сборку hudson (или jenkins) из веток релиза / исправления, используя модель ветвления git-flow?
Моя компания переключается с SVN на GIT, и я исследую различные модели ветвления. Больше всего мне нравится git-flow, но у меня есть одна нерешенная проблема.
Мы используем Hudson (скоро станет Дженкинсом) для нашего CI-сервера. Существует 5 приложений с 3 средами для каждого: разработка, контроль качества и производство. При использовании git-flow было бы очевидным указывать сборку разработки на ветвь "разработка", а производственную сборку - на ветку "мастер", но как лучше всего настроить все так, чтобы мы могли легко перенаправить qa среда до последней версии исправления или выпуска, если таковая существует, или разработка, если нет. В настоящее время мы просто обновляем задания jenkins вручную, но сложно (и подвержено ошибкам) вручную изменить 5 заданий.
Некоторые вещи, которые я рассмотрел:
Добавление ветки qa и слияние с ней из веток release / hotfix. Это не начало, потому что мы должны помнить, что нужно объединяться с веткой qa каждый раз, когда мы вносим изменения в release / hotfix, и это быстро устареет.
Создаем символьный ref "refs/heads/qa" и просто обновляем его, чтобы он указывал на то, что мы хотим, чтобы QA проверил. Это лучше, чем выше, но не работает, потому что нам нужно обновить sym-ref на нашем git-сервере, а обычные разработчики не имеют прав для этого.
Пока что ни один из этих вариантов не кажется мне жизнеспособным, есть ли другие варианты, которые мне не хватает? Благодарю.
1 ответ
Я не совсем понимаю специфику вашего вопроса, но как насчет этого:
В конфигурации сборки отметьте "Эта сборка параметризована", затем создайте строку или параметр выбора с именем "branch" (или аналогичный), который по умолчанию соответствует вашей ветке разработки.
Затем в конфигурации git, куда обычно входит имя ветви, используйте "${branch}" вместо жесткого кодирования имени ветви.
Если сборка запускается автоматически, она будет использовать ветвь разработки. Но когда вы начнете сборку вручную, вы получите возможность указать имя новой ветви.