Каков хороший вариант использования непрерывной интеграции и непрерывного развертывания? - PullRequest
1 голос
/ 13 марта 2019

Я просмотрел несколько доступных ресурсов для непрерывной интеграции (& непрерывной доставки и развертывания), таких как:

У меня вопрос

  • когда мне следует использовать непрерывную интеграцию
  • , когда мне следуетиспользовать непрерывное развертывание

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Давайте попробуем использовать действительно упрощенный и не обязательно правильный пример из реальной жизни:

Я работаю в компании, которая разрабатывает приложения для Android.В настоящее время мы должны работать над приложением, которое является довольно небольшим проектом, поэтому над ним работают только я и еще один коллега.

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

Для автоматизации этой повторяющейся задачи мы используем сервер непрерывной автоматизации, такой как Jenkins (или что-то ещекак Bamboo ), и создайте рабочий процесс, который создает код нашего проекта и запускает наши тесты всякий раз, когда мы пытаемся зафиксировать какой-либо код в ветви develop.Только если он успешно собран и все тесты зеленого цвета, наш код будет интегрирован в ветку develop.

-> Мы используем непрерывную интеграцию, ууу!

Теперь, по прошествии нескольких месяцев, мы решили, что наше приложение готово к выпуску для пользователей Play Store.

Мы берем код нашего текущего (и, надеюсь, тщательнопроверенная) версия нашего приложения из ветви develop и скопируйте ее в новую ветку с именем release.

. Ветвь release используется во втором рабочем процессе Jenkins, который на данный момент выполняет те же функции, что и нашПервый: он строит код из этой ветки и запускает тесты против него.

Затем нам нужно добавить еще один шаг в новый рабочий процесс Jenkins.Когда код нашего приложения был успешно собран и все тесты зеленого цвета, мы хотим, чтобы приложение автоматически развернуло / было загружено в Play Store, чтобы пользователи могли загрузить и установить его на свои телефоны.

-> Мы используем непрерывное развертывание, ууу!

0 голосов
/ 20 апреля 2019

Как вы уже знаете по ссылке, указанной в вопросе, я предполагаю, что вы знаете, что такое непрерывная интеграция и развертывание.

Просто, когда вам нужно интегрировать тест (или что-то дополнительное) перед развертыванием кода и вы хотите автоматизировать эту задачу, вы можете использовать сервер непрерывной работы, такой как инструменты непрерывной интеграции Jenkins / circleCI AKA.

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

...