Разработчикам требуется непрерывная интеграция кода, хранящегося в репозитории GitHub или GitLab Enterprise. Служба Code Stream позволяет отслеживать изменения кода в репозитории и запускать работу конвейера каждый раз, когда разработчики вносят и сохраняют изменения кода.

Рабочий процесс (от обновления кода до развернутого приложения в кластере Kubernetes) может использовать GitHub, Code Stream, Docker Hub, триггер для Git и Kubernetes.

Чтобы служба Code Stream запускала работу конвейера при каждом изменении кода, необходимо использовать триггер Git. Каждый раз, когда разработчик будет сохранять изменения кода, служба Code Stream будет запускать конвейер.

Рабочая область конвейера Code Stream поддерживает Docker и Kubernetes для выполнения задач непрерывной интеграции и настраиваемых задач.

Дополнительные сведения о настройке рабочей области см. в разделе Настройка рабочей области конвейера.

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

Рис. 1. Рабочий процесс, использующий смарт-шаблон конвейера или создающий конвейер вручную
Этот рабочий процесс помогает выбрать последовательность процесса, который непрерывно интегрирует код с помощью конвейера непрерывной интеграции.

В следующем примере используется рабочая область Docker.

Для сборки кода используйте узел Docker. В качестве средств тестирования, которые будут выполнять модульные тесты и контролировать объем протестированного кода, используйте JUnit и JaCoCo. Их также требуется включить в конвейер.

Затем можно использовать смарт-шаблон конвейера непрерывной интеграции, который создает конвейер непрерывной интеграции, выполняющий сборку, тестирование и развертывание кода в кластере Kubernetes рабочей группы проекта, размещенном в службе AWS. Для хранения артефактов зависимостей кода для задачи непрерывной интеграции можно использовать кэш; это позволяет экономить время при сборке кода.

В задачу конвейера, выполняющую сборку и тестирование кода, можно добавить несколько шагов по непрерывной интеграции. Эти шаги могут размещаться в том же рабочем каталоге, где Code Stream клонирует исходный код при запуске конвейера.

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

В следующем примере для создания конвейера непрерывной интеграции, который непрерывно интегрирует код в конвейер, необходимо использовать соответствующий смарт-шаблон. В этом примере используется рабочая область Docker.

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

Необходимые условия

Процедура

  1. Убедитесь, что все необходимые предварительные условия выполнены.
  2. Чтобы создать конвейер на основе смарт-шаблона, откройте смарт-шаблон конвейера непрерывной интеграции и заполните форму.
    1. а. Выберите пункт Конвейеры > Создать конвейер > Смарт-шаблон > Непрерывная интеграция.
    2. б. Введите в шаблон информацию о репозитории исходного кода, наборах инструментов для сборок, средстве публикации и рабочей области образа сборки.
    3. в. Настройте отправку рабочей группе уведомлений по электронной почте или через Slack.
    4. г. Чтобы создать конвейер на основе смарт-шаблона конвейера, нажмите Создать.
    5. д. Чтобы внести дополнительные изменения в конвейер, нажмите Изменить, внесите правки и нажмите Сохранить.
    6. е. Включите и запустите конвейер.
  3. Чтобы создать конвейер вручную, добавьте этапы и задачи на холст и введите сведения о собственной сборке непрерывной интеграции в задачу непрерывной интеграции.
    1. а. Выберите пункт Конвейеры > Создать конвейер > Пустой холст.
    2. б. Щелкните этап и перетащите в него несколько задач непрерывной интеграции с панели навигации.
    3. в. Чтобы настроить задачу непрерывной интеграции, щелкните ее, а затем перейдите на вкладку Задача.
    4. г. Добавьте шаги, необходимые для непрерывной интеграции кода.
    5. д. Добавьте пути к артефактам зависимостей.
    6. е. Добавьте расположение для экспорта.
    7. ё. Добавьте средства тестирования, которые планируется использовать.
    8. ж. Добавьте узел Docker и образ сборки.
    9. з. Добавьте реестр контейнера, рабочий каталог и кэш.
    10. и. Сохраните конвейер, затем включите его.
  4. Внесите изменения в код, находящийся в репозитории GitHub или GitLab.
    Триггер Git инициирует запуск конвейера.
  5. Чтобы убедиться, что изменение кода привело к запуску контейнера, выберите параметр Триггеры > Git > Действие.
  6. Чтобы посмотреть, как выполняется работа конвейера, нажмите Выполняемые элементы и убедитесь, что образ сборки создан и экспортирован.
    При выполнении конвейера отображается путь к сохраненным артефактам и значение экспортируемого образа.
  7. Для отображения панели управления конвейера, на которой можно отслеживать тенденции и ключевые показатели эффективности, выберите пункт Панели управления > Панели управления конвейерами.

Результаты

Поздравляем! Завершено создание конвейера, который непрерывно интегрирует код из репозитория GitHub или GitLab и выполняет развертывание образа сборки.

Дальнейшие действия

Дополнительные сведения см. в разделе Дополнительные ресурсы для администраторов и разработчиков Code Stream.