2008-09-30 4 views
4

Учитывая довольно основную структуру исходного дерева, как следующее:Продвижение кода: строение или двоичное?

 
trunk ------- 
    QA |-------- 
    Stage |------- 
     Prod |------ 

и окружающей среды, которая отражает, что (Dev, QA, сценография и производственные серверы) - как вы все Управление автоматическое или ручное продвижение кода? Используете ли вы сервер CI для создания и продвижения на всех этапах? CI в Dev для создания двоичных файлов, которые используются повсюду? Какой-то другой гибрид?

Я пинал пару мыслей. Первое заключается в том, что каждая рекламная кампания будет делать последние, строить, а затем вытеснять вывод сборки на правильный сервер. Во-вторых, в какой-то момент - QA или Staging - бинарные файлы, которые были продвинуты, были бы теми же самыми, которые были скопированы на другие этапы. Третий - сохранение вторичного исходного дерева для развернутых двоичных файлов, которые автоматически перемещаются в блокировку с продвижением кода. Любые другие мысли или идеи?

ответ

4

Вы абсолютно не хотите, чтобы производственный код не был идентичен одному проверенному QA, поэтому вы должны использовать двоичные файлы.

Вы также должны пометить источники, используемые для создания каждой сборки, поэтому при необходимости вы можете воспроизвести сборку в среде dev. По крайней мере, если вы допустите ошибку в этот момент, последствия не будут столь резкими.

+0

Полностью согласен, нажатие на что-либо, кроме проверенных двоичных файлов, на производство является ошибкой. – HowardSP 2008-09-30 04:23:05

1

Мы используем CI на этапе dev и используем ежедневные сборки, которые продвигаются. Эти ежедневные сборки, если они успешны, помечены в SVN, поэтому нам не нужно хранить отдельную копию двоичных файлов. Любые ссылки сторонних библиотек также включены, так что тег является точной исходной копией компилируемого.