При создании конвейера непрерывной интеграции и предоставления (CICD) в Code Stream можно вручную добавить этапы и задачи. Чтобы спланировать собственную сборку CICD, требуется собрать необходимую информацию, затем создать конвейер и вручную добавить в него этапы и задачи.
Необходимо спланировать этапы непрерывной интеграции (CI) и непрерывного предоставления (CD) для конвейера. После создания конвейера и его запуска можно отслеживать тенденции по всем циклам его выполнения.
Если конвейер включает в себя образ из Docker Hub, перед запуском конвейера необходимо убедиться, что в этом образе есть встроенная функция cURL или wget. При выполнении конвейера Code Stream загружает двоичный файл, в котором для выполнения команд используется функция cURL или wget.
Рабочая область конвейера Code Stream поддерживает Docker и Kubernetes для выполнения задач непрерывной интеграции и настраиваемых задач.
Сведения о настройке рабочей области см. в разделе Настройка рабочей области конвейера.
Планирование внешних и внутренних требований
Чтобы спланировать этапы CI и CD для конвейера, до его создания необходимо выполнить следующие требования.
В этом примере используется рабочая область Docker.
Чтобы создать конвейер на основе этого образца плана, нужно использовать узел Docker, репозиторий Git, Maven и несколько средств сборки для последующей обработки.
Необходимые конечные точки и репозитории:
- Репозиторий исходного кода Git, куда разработчики могут сохранять код. Когда разработчики сохраняют изменения, Code Stream отправляет последнюю порцию кода в конвейер.
- Конечная точка Docker для узла сборки Docker, который будет выполнять команды сборки внутри контейнера.
- Образ построителя, который создает контейнер, в котором выполняются тесты непрерывной интеграции.
- Конечная точка реестра образов, с помощью которой узел сборки Docker может извлекать из него образ построителя.
Потребуется доступ к проекту. В проекте собираются все рабочие элементы, в том числе конвейер, конечные точки и панели управления. Проверьте, являетесь ли вы участником проекта в Code Stream. Если нет, попросите администратора Code Stream добавить вас в проект в качестве участника. См. раздел Добавление проекта в Code Stream.
Потребуется веб-перехватчик Git, позволяющий Code Stream использовать триггер Git, который запускает конвейер, когда разработчики вносят изменения в код. См. раздел Как использовать триггер Git в Code Stream для запуска конвейера.
Создание конвейера непрерывной интеграции и предоставления и настройка рабочей области
Необходимо создать конвейер, затем настроить рабочую область, входные параметры конвейера и задачи.
Чтобы создать конвейер, выберите
.
На вкладке «Рабочая область» введите сведения о непрерывной интеграции.
- Добавьте узел сборки Docker.
- Введите URL-адрес образа построителя.
- Выберите конечную точку реестра образов, чтобы конвейер мог извлекать из него образ. Контейнер запускает задачи CI и развертывает образ. Если реестру требуются учетные данные, сначала необходимо создать конечную точку реестра образов, а затем выбрать ее, чтобы узел мог извлечь образ из реестра.
- Добавьте артефакты, которые необходимо кэшировать. Для успешного выполнения сборки артефакты, например, каталоги, загружаются как зависимости. Кэш — это расположение, в котором находятся такие артефакты. Например, зависимые артефакты могут включать в себя каталог
.m2
для Maven и каталогnode_modules
для Node.js. Эти каталоги кэшируются для различных циклов конвейера с целью экономии времени в ходе сборки.
На вкладке «Входные данные» настройте входные параметры конвейера.
- Если конвейер будет использовать входные параметры из события запуска Git, Gerrit или Docker, выберите тип триггера для автоматической вставки параметров. В число событий могут входить «Изменение темы» для Gerrit или Git или «Имя владельца события» для Docker. Если в конвейере не будут использоваться входные параметры, передаваемые событием, оставьте значение параметра «Автоматическая вставка параметров» Нет.
- Чтобы применить значение и описание к входному параметру конвейера, щелкните три вертикальные точки, а затем Изменить. Введенное значение используется в качестве входных данных для задач, этапов или уведомлений.
- Чтобы добавить входной параметр конвейера, щелкните Добавить. Например, можно добавить параметр approvers, который показывает значение по умолчанию для каждого цикла выполнения; его можно переопределить для отображения другого утверждающего лица во время выполнения.
- Чтобы добавить или удалить вставленный параметр, щелкните Добавить/удалить вставленный параметр. Например, можно удалить неиспользуемый параметр, чтобы уменьшить помехи на странице результатов и отображать только используемые входные параметры.
Настройте конвейер, чтобы протестировать код.
- Добавьте и настройте задачу CI.
- Добавьте в код шаги для запуска
mvn test
. - Чтобы выявить проблемы после запуска задачи, запустите средства сборки после обработки, такие как JUnit, JaCoCo, FindBugs и Checkstyle.
Настройте конвейер для сборки кода.
- Добавьте и настройте задачу CI.
- Добавьте в код шаги для запуска
mvn clean install
. - Укажите расположение и имя файла JAR, чтобы сохранить артефакт.
Настройте конвейер для публикации образа на узле Docker:
- Добавьте и настройте задачу CI.
- Добавьте действия по отправке, экспорту, сборке и передаче образа.
- Добавьте ключ экспорта для
IMAGE
для применения в следующей задаче.
После настройки рабочей области, входных параметров, задач тестирования и задач сборки сохраните конвейер.
Включение и запуск конвейера
После настройки конвейера с определением этапов и задач его можно сохранить и включить.
Затем дождитесь завершения работы конвейера и убедитесь, что он успешно выполнен. В случае сбоя исправьте ошибки и запустите его повторно.
После успешного выполнения конвейера могут потребоваться следующие действия.
- Проверьте выполнение конвейера и просмотрите результаты этапов, содержащих задачи.
- В рабочей области выполнения конвейера найдите сведения о своем контейнере и клонированном репозитории Git.
- В рабочей области просмотрите результаты работы средств последующей обработки и проверьте наличие ошибок, объем проверенного кода, наличие проблем со стилем.
- Убедитесь, что артефакт сохранен. Также убедитесь, что образ экспортирован с именем и значением IMAGE.
- Перейдите в репозиторий Docker и убедитесь, что конвейер опубликовал контейнер.
Подробный пример, показывающий, как Code Stream непрерывно интегрирует код, см. в разделе Настройка непрерывной интеграции кода из репозитория GitHub или GitLab в конвейер Code Stream.