Непрерывная интеграция TeamCity с развертыванием git, тестами PHPUnit и миграцией базы данных

Я пытаюсь настроить рабочий процесс непрерывной интеграции и развертывания TeamCity с приложением Laravel, используя Git для контроля версий, но способ, которым мне это удалось сделать, кажется хакерским.

Сейчас у меня есть сборка TeamCity с триггером перехода в ветку разработки. Я установил три события сборки, которые отправляют ssh на промежуточный сервер, затем git извлекают код, запускают artisan migrate, затем запускают тесты phpunit.

В каждом событии сборки он должен отправить ssh на промежуточный сервер, cd в каталог, а затем выполнить действие, которое кажется неправильным, кроме того, если что-то пойдет не так, например, сбой тестов phpunit, нет способа легко выполнить откат. Итак, что именно является правильным, я пробовал исследовать, но не могу найти ничего, что действительно объясняло бы, как вы бы использовали git для развертывания живого кода, вы бы даже использовали git для развертывания?


person RobertD    schedule 24.06.2016    source источник


Ответы (1)


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

  1. Запускайте сборку TeamCity из изменений в Git
  2. TeamCity выполняет сборку поэтапно - получает изменения, строит, запускает тесты, пакеты, отправляет пакет на сервер развертывания (или выполняет что-то вроде msdeploy).
  3. Сервер развертывания берет ваш заархивированный / NuGet-пакет и развертывает его в каждой из ваших сред (бета, промежуточная, производственная).
person Ben Richards    schedule 26.06.2016