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

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

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

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

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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам