2013-05-22 4 views
1

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

Так скажем, вместо этого я создаю свой код локально, и он работает, поэтому я нажимаю код на исходный элемент управления. Сервер CI обнаруживает изменение, проверяет исходный код и перекомпилирует успешно и подталкивает исполняемые файлы в реальном времени.

Таким образом, начало и конец двух процессов одинаковы. Но у второго есть больше места для ошибки. Например, моя фиксация элемента управления источником может иметь ошибки. Я могу не выполнить все измененные файлы, но источник все еще может компилироваться.

Как я могу быть уверенным, что исходный код в исходном коде совпадает с локальным?

+0

Когда вы говорите «затем разворачивайте двоичные файлы», вы имеете в виду, что вы развертываете двоичные файлы на Dev, тестовый или производственный сервер? – giacomelli

+0

Я имел в виду производство. Но я думаю, что есть вероятность ошибки, которую я описываю. –

ответ

0

Первое, что нужно сделать: если вы используете сервер CI, вы никогда не должны развертывать что-либо для тестирования, предварительного просмотра или производственного сервера вручную.

Обычно, у меня есть конфигурация сборки, на сервере CI, с большим количеством шагов, как:

  1. Компиляция
  2. Static code analysis (like FxCop, PMD, etc).
  3. Unit tests (nunit, junit, etc).
  4. Deploy для тестирования сервера. Многие веб-технологии имеют простые способы сделать этот шаг, например, Web Deploy для сайтов ASP.NET. Эта версия сайта будет использоваться в качестве цели для следующих 2 шагов.
  5. Functional tests (selenium, sikuli, etc).
  6. Эксплуатационные испытания. Для веб-сайтов и веб-apis мы используем JMeter.
  7. Пакет финальных артефактов. Возможно, потребуется создать установщик, возможно, просто .zip-файл с файлами развернуть.

Со всеми шагами (на шаге 3 вы должны иметь хорошее покрытие кода и хорошие тестовые тесты для пользователя на шаге 4), вы можете иметь больше уверенности в том, чтобы развернуть окончательные файлы с этапа 7 на рабочий сервер.

+1

Это не затрагивает вопрос. Когда вы делаете первый шаг, как вы знаете, что у исходного элемента управления есть правильные исходные файлы? Во время фиксации может произойти ошибка. –

Смежные вопросы