Разработчикам требуется непрерывная интеграция кода, хранящегося в репозитории GitHub или GitLab Enterprise. Служба Code Stream позволяет отслеживать изменения кода в репозитории и запускать работу конвейера каждый раз, когда разработчики вносят и сохраняют изменения кода.
Чтобы служба Code Stream запускала работу конвейера при каждом изменении кода, необходимо использовать триггер Git. Каждый раз, когда разработчик будет сохранять изменения кода, служба Code Stream будет запускать конвейер.
Рабочая область конвейера Code Stream поддерживает Docker и Kubernetes для выполнения задач непрерывной интеграции и настраиваемых задач.
Дополнительные сведения о настройке рабочей области см. в разделе Настройка рабочей области конвейера.
На следующей блок-схеме показан рабочий процесс, который можно использовать, если для создания конвейера используется смарт-шаблон или если конвейер создается вручную.
В следующем примере используется рабочая область Docker.
Для сборки кода используйте узел Docker. В качестве средств тестирования, которые будут выполнять модульные тесты и контролировать объем протестированного кода, используйте JUnit и JaCoCo. Их также требуется включить в конвейер.
Затем можно использовать смарт-шаблон конвейера непрерывной интеграции, который создает конвейер непрерывной интеграции, выполняющий сборку, тестирование и развертывание кода в кластере Kubernetes рабочей группы проекта, размещенном в службе AWS. Для хранения артефактов зависимостей кода для задачи непрерывной интеграции можно использовать кэш; это позволяет экономить время при сборке кода.
В задачу конвейера, выполняющую сборку и тестирование кода, можно добавить несколько шагов по непрерывной интеграции. Эти шаги могут размещаться в том же рабочем каталоге, где Code Stream клонирует исходный код при запуске конвейера.
Чтобы выполнить развертывание кода в кластере Kubernetes, можно использовать задачу Kubernetes в конвейере. Затем необходимо включить и запустить конвейер. Затем внесите изменения в код, хранящийся в репозитории, и убедитесь, что это изменение запустило конвейер. На панелях управления можно отслеживать выполнение конвейера и составить отчет о тенденциях его работы после завершения выполнения.
В следующем примере для создания конвейера непрерывной интеграции, который непрерывно интегрирует код в конвейер, необходимо использовать соответствующий смарт-шаблон. В этом примере используется рабочая область Docker.
При необходимости конвейер можно создать вручную, самостоятельно добавив в него этапы и задачи. Дополнительные сведения о планировании сборок для обеспечения непрерывной интеграции и создании конвейера вручную см. в разделе Планирование собственной сборки по модели непрерывной интеграции и предоставления в Code Stream перед добавлением задач вручную.
Необходимые условия
- Планирование сборок помогает добиться непрерывной интеграции. См. раздел Планирование собственной сборки по модели непрерывной интеграции в Code Stream перед использованием смарт-шаблона конвейера.
- Убедитесь в наличии репозитория исходного кода GitLab. Для получения справки обратитесь к администратору Code Stream.
- Добавьте конечную точку Git. См. пример в разделе Как использовать триггер Git в Code Stream для запуска конвейера.
- Добавьте веб-перехватчик, чтобы служба Code Stream могла выявлять изменения, вносимые в репозиторий GitHub или GitLab, и запускать работу конвейера в таких ситуациях. См. пример в разделе Как использовать триггер Git в Code Stream для запуска конвейера.
- Добавьте конечную точку узла Docker, чтобы создать контейнер для задачи непрерывной интеграции. Этот контейнер может использоваться сразу для нескольких задач непрерывной интеграции. Дополнительные сведения о конечных точках см. в разделе Что такое конечные точки в Code Stream.
- Получите URL-адрес образа, узел сборки и URL-адрес для образа сборки. Для получения справки обратитесь к администратору Code Stream.
- Убедитесь, что для тестирования используются средства JUnit и JaCoCo.
- Настройте внешний экземпляр для сборки непрерывной интеграции: Jenkins, TFS или Bamboo. Подключаемый модуль Kubernetes выполняет развертывание кода. Для получения справки обратитесь к администратору Code Stream.
Процедура
Результаты
Поздравляем! Завершено создание конвейера, который непрерывно интегрирует код из репозитория GitHub или GitLab и выполняет развертывание образа сборки.
Дальнейшие действия
Дополнительные сведения см. в разделе Дополнительные ресурсы для администраторов и разработчиков Code Stream.