НАШ ТЕКУЩИЙ ПРОЦЕСС СТРОИТЕЛЬСТВА
Мы небольшая команда разработчиков (от 2 до 4 человек в зависимости от проекта), которые в настоящее время используют Phing для развертывания кода в промежуточной среде, прежде чем начать работу. Мы храним наш код в репозитории SVN, где транк хранит текущую активную разработку, и в определенное время мы делаем ветки, которые мы тестируем, а затем (в случае успеха) тегируем и экспортируем в промежуточную среду. Если и там все пойдет хорошо, мы наконец развернем их на производственных серверах.
Действия высоко автоматизированы, но всегда инициируются вмешательством человека.
СОМНЕНИЕ
Теперь мы хотели бы ввести непрерывную интеграцию (с Хадсоном) в процесс; К сожалению, у нас есть некоторые сомнения по поводу синхронизации действий, так как мы боимся, что CI может помешать нашему процессу сборки и вызвать определенные проблемы.
Учитывая, что автоматизированный цикл CI имеет определенную частоту автоматически выполняемых действий, мы видим 2 возможных варианта «интеграции», каждый со своими проблемами:
Случай A: каждый цикл CI производит новый
ветка со своим именем; мы используем
такое имя, чтобы вручную (через
звонить, как это происходит сейчас) экспортировать
код из SVN в постановку
окр. Проблема, которую я вижу здесь в том, что
(если не приняты конкретные контрмеры
принято - т.е. удаление) количество веток у нас
иметь легко может выйти из-под контроля (давайте
Предположим, мы часто совершаем, чтобы мы
есть новая новая сборка / ветвь каждый
N минут).
Случай B: каждый цикл CI создает новый
ветвь с именем 'текущая', которая затем помечается
уникальное имя только тогда, когда мы вручную
решите экспортировать его в постановку;
текущая ветка, в любом случае то
удален, как только следующий CI
цикл начинается. Проблема, которую мы видим
вот что новый цикл мог пнуть
в то время как кто-то
пометка / экспорт «текущего»
переход к постановке, таким образом, создавая
противоречивая сборка (но может быть здесь
Я просто слишком пессимист, так как я
Признаюсь, я не знаю, является ли SVN
предлагает некоторую встроенную защиту
против этого).
С учетом всего вышесказанного мне было интересно, может ли кто-нибудь с подобным опытом быть настолько любезен, чтобы дать нам несколько советов по этому вопросу, поскольку ни один из описанных выше подходов не выглядит нам полностью удовлетворяющим.
Есть ли что-то важное, что мы просто полностью остановили в общей картине?
Спасибо за ваше внимание и (заранее) за вашу помощь!