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

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

При использовании задачи Jenkins и конечной точки Jenkins в Code Stream можно создать конвейер, поддерживающий задания с несколькими ветвями в Jenkins. Задание с несколькими ветвями включает в себя отдельные задания в каждой ветви репозитория Git. При создании конвейеров в Code Stream, которые поддерживают задания с несколькими ветвями:

  • Задача Jenkins может запускать задания Jenkins, которые находятся в разных папках на сервере Jenkins.
  • В конфигурации задачи Jenkins можно переопределить путь к папке по умолчанию, указанный в конечной точке Jenkins в Code Stream.
  • Конвейеры с несколькими ветвями в Code Stream обнаруживают файлы заданий Jenkins типа .groovy в репозитории Git или репозитории GitHub и начинают создавать задания для каждой ветви, которую они сканируют в репозитории.
  • Путь по умолчанию, указанный в конечной точке Jenkins можно заменить на путь, указанный в конфигурации задачи Jenkins, чтобы запускать задание и конвейер, связанные с любой ветвью в основном задании Jenkins.

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

  • Настройте сервер Jenkins 1.561 или более поздней версии.
  • Проверьте, являетесь ли вы участником проекта в Code Stream. Если это не так, попросите администратора Code Stream добавить вас в проект в качестве участника. См. раздел Добавление проекта в Code Stream.
  • Убедитесь в наличии задания на сервере Jenkins (в противном случае задача конвейера не сможет его выполнить).

Процедура

  1. Добавьте и проверьте конечную точку Jenkins.
    1. а. Выберите пункт Конечные точки > Новая конечная точка.
    2. б. Выберите проект и укажите Jenkins в качестве типа конечной точки. Затем введите имя и описание.
    3. в. Если эта конечная точка — критически важный для бизнеса компонент инфраструктуры, установите флажок С ограниченным доступом.
    4. г. Введите URL-адрес сервера Jenkins.
    5. д. Введите имя пользователя и пароль для входа на сервер Jenkins. Затем введите прочие сведения.
      Табл. 1. Прочие сведения для конечной точки Jenkins
      Запись о конечной точке Описание
      Путь к папке Путь к папке, в которой собираются задания. Jenkins может запустить все задания в папке. Можно также создавать вложенные папки. Например:
      • folder_1 может содержать job_1
      • folder_1 может содержать folder_2, в которой может быть job_2

      При создании конечной точки для folder_1 в качестве пути к папке используется job/folder_1 и в списке заданий конечной точки будет только job_1.

      Чтобы получить список заданий в дочерней папке с именем folder_2, необходимо создать другую конечную точку, где в качестве пути к папке будет использоваться /job/folder_1/job/folder_2/.

      Путь к папке для заданий Jenkins с несколькими ветвями Для поддержки заданий Jenkins с несколькими ветвями в задаче Jenkins необходимо ввести полный путь, который включает в себя URL-адрес сервера Jenkins и полный путь к заданию. При добавлении пути к папке в задаче Jenkins этот путь переопределит путь, который отображается в конечной точке Jenkins. При наличии настраиваемого пути к папке в задаче Jenkins служба Code Stream отображает только те задания, которые имеются в этой папке.
      • Например, https://server.yourcompany.com/job/project
      • Если конвейер должен также запускать основное задание Jenkins, используйте путь https://server.yourcompany.com/job/project/job/main
      URL-адрес URL-адрес узла для сервера Jenkins. Введите URL-адрес в формате protocol://host:port. Например, http://192.10.121.13:8080
      Интервал между опросами Продолжительность интервала между проверками сервера Jenkins на наличие обновлений, выполняемыми службой Code Stream.
      Количество повторных попыток запроса Количество повторных попыток отправить запрос запланированной сборки на сервер Jenkins.
      Время ожидания между повторными попытками Количество секунд между повторными попытками отправить запрос сборки на сервер Jenkins.
    6. е. Нажмите Проверить и убедитесь, что конечная точка подключена к службе Code Stream. Если подключение отсутствует, устраните проблему, мешающую подключению, и нажмите Сохранить.
      Для конечной точки Jenkins, которая выполняет сборку и тестирует код, требуется URL-адрес. Эта точка позволяет создать переменную, в которой хранится пароль пользователя.
  2. Чтобы выполнить сборку кода, создайте конвейер и добавьте задачу, использующую конечную точку Jenkins.
    1. а. Выберите пункт Конвейеры > Создать конвейер > Пустой холст.
    2. б. Щелкните этап по умолчанию.
    3. в. В области «Задача» (Task) введите имя задачи.
    4. г. В качестве типа задачи укажите Jenkins.
    5. д. Выберите созданную конечную точку Jenkins.
    6. е. В раскрывающемся меню выберите задание на сервере Jenkins, которое будет выполнено конвейером.
    7. ё. Введите параметр для задания.
    8. ж. Введите маркер проверки подлинности для задания Jenkins.
    После настройки задачи Jenkins, которая использует конечную точку Jenkins, необходимо выбрать задание Jenkins, добавить значения и ввести маркер.
  3. Включите и запустите конвейер и проследите, как выполняется его работа.
    В ходе выполнения конвейера для задачи Jenkins в результатах задания отображаются сведения о задании Jenkins, включая ИД задания, URL-адрес задания, а также ключи и значения.
  4. Просмотр подробностей по выполнению и состоянию конвейера на панели управления конвейером.
    Здесь можно увидеть ошибки в работе конвейера и определить их причины. Здесь также можно отслеживать тенденции, касающиеся продолжительности работы конвейера, успешных случаев его выполнения и сбоев.
    На панели управления конвейера отображаются подробные сведения о циклах выполнения конвейера, например количество циклов запуска конвейера и их длительность, а также состояние каждого цикла запуска.

Результаты

Поздравляем! Вы интегрировали Jenkins со службой Code Stream, добавили конечную точку, создали конвейер и настроили задачу Jenkins, выполняющую сборку кода.

Пример: Пример кода YAML для задачи сборки Jenkins

Для задач по сборке Jenkins, аналогичных данному примеру, код YAML будет выглядеть приблизительно следующим образом (с включенными уведомлениями):

test:
  type: Jenkins
  endpoints:
    jenkinsServer: jenkins
  input:
    job: Add two numbers
    parameters:
      Num1: '23'
      Num2: '23'

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

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