Организации все чаще прибегают к использованию Jenkins для автоматизации процессов сборки и тестирования, что делает ручное управление заданиями Jenkins затруднительным. Хорошая новость заключается в том, что плагин Jenkins DSL позволяет определять задания Jenkins с использованием синтаксиса языка DSL (Domain Specific Language).
Jenkins DSL позволяет хранить задания в системах контроля версий, делиться ими с другими пользователями и создавать новые задания на основе шаблонов. В этом руководстве вы узнаете, как использовать плагин Jenkins DSL для автоматизации разработки приложений.
Продолжайте чтение, чтобы больше не приходилось мучительно кликать по интерфейсу Jenkins для создания заданий!
Предварительные условия
В этом руководстве будет представлена практическая демонстрация. Если вы хотите следовать за ней, убедитесь, что у вас есть следующее.
- A Linux machine – This guide uses Ubuntu 20.04.
- Сборка: Задача для добавления набора плагинов Pipeline, используемых для реализации и интеграции непрерывных конвейеров доставки в Jenkins.
- Сборка: Groovy – возможность напрямую выполнить код Groovy.
Установка плагина Jenkins DSL
Поддержание согласованности между заданиями может быть сложной задачей, но плагин Jenkins DSL решает эту проблему. Как? Позволяя вам определять задания в программной форме, в человекочитаемом файле.
Но прежде чем создавать задания, вам необходимо установить плагин Jenkins DLS:
1. Подключитесь по SSH к вашему серверу Jenkins и выполните следующую команду, чтобы убедиться, что у вас установлена необходимая версия Java, а служба Jenkins запущена.
Теперь вы готовы установить плагин Jenkins DSL, если у вас есть вывод, аналогичный нижеприведенному.

2. Затем откройте свой любимый веб-браузер и перейдите по адресу http://your_server_ip:8080/pluginManager/available. Замените your_server_ip:8080 на фактический IP-адрес и номер порта вашего сервера Jenkins.
3. Наконец, установите плагин Jenkins DSL следующим образом:
- Как показано ниже, введите Job DSL в поле поиска в правом верхнем углу.
Если у вас уже установлен плагин Job DSL и вы обновились с более старой версии, скрипты Job DSL не появятся в списке при поиске Job DSL. Вы можете перейти по адресу http://your_server_ip:8080/pluginManager/installed, чтобы проверить, есть ли плагин Job DSL.
- Установите флажок рядом с Job DSL опцией.
- Нажмите “Установить без перезапуска” внизу, чтобы установить плагин Jenkins Job DSL.

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

Создание зерновой работы Jenkins с использованием плагина Jenkins DSL
Теперь, когда у вас установлен плагин Jenkins DSL, не стесняйтесь создавать зерновую работу Jenkins. Напишите базовый скрипт Job DSL и внедрите его в зерновую работу Jenkins. Вы создадите работу freestyle, которая будет выводить сообщение “Привет, мир!” в консоль Jenkins.
Для включения скрипта Job DSL в начальное задание Jenkins:
1. Перейдите на панель инструментов Jenkins и нажмите «Новый элемент» в левой боковой панели. Браузер перенаправит вас на страницу создания нового элемента (второй шаг).

2. Затем создайте новый элемент с помощью следующего:
- Введите имя элемента, как показано ниже. Но в этом учебнике имя элемента установлено как seed.
- Выберите Проект свободной конфигурации (повторяемое задание сборки, скрипт или конвейер) из доступных вариантов.
- Нажмите «OK» внизу, чтобы создать новый элемент, и браузер перенаправится на страницу конфигурации нового элемента.

3. Оставьте значения по умолчанию для всех остальных разделов на странице конфигурации нового элемента.
Прокрутите вниз до раздела «Сборка», нажмите кнопку выпадающего списка «Добавить шаг сборки» и выберите «Обработка DSL-заданий». Это открывает вариант, где вы предоставите DSL-скрипт (четвертый шаг).

4. Теперь выберите вариант «Использовать предоставленный DSL-скрипт», как показано ниже, и заполните следующий код в поле.
Этот код представляет собой определение задания свободной конфигурации с именем jenkins-job-demo-1, которое использует шаг оболочки для вывода сообщения «Привет, мир». Имя задания – это то, что будет отображаться в пользовательском интерфейсе Jenkins.
Существует множество доступных методов для создания различных типов задач в Jenkins, которые вы можете найти в официальной документации.

5. Нажмите “Сохранить” внизу страницы, чтобы сохранить конфигурацию для нового элемента (сида).

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

Запуск сид-задачи
Вы успешно создали и проверили сид-задачу. Но как узнать, что задача работает? Вы запустите сид-задачу по скрипту DSL, предоставленному в четвертом шаге раздела “Создание сид-задачи Jenkins с использованием плагина Jenkins DSL”.
1. На своем рабочем столе Jenkins щелкните по сид-задаче, чтобы перейти на страницу ее конфигурации.

2. Затем нажмите “Построить сейчас” в левой боковой панели, чтобы запустить задачу.

3. Нажмите F5 для обновления страницы. Вы увидите новую сборку в разделе “История сборок” с успешным статусом (зеленая галочка) внизу слева, как показано ниже.
Этот вывод указывает, что сид-задача успешно выполнилась, создав новую задачу Jenkins (jenkins-job-demo-1) в разделе “Сгенерированные элементы”.

4. Теперь перейдите на свой рабочий стол Jenkins. Как показано ниже, вы увидите новую задачу Jenkins (jenkins-job-demo-1), созданную сид-задачей.
Щелкните по вновь созданной задаче, чтобы получить доступ к ее странице конфигурации.

5. Нажмите “Построить сейчас”, чтобы запустить созданную задачу (jenkins-job-demo-1).

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

Если сгенерированная задача работает, вы увидите сообщение “Hello World! This job is working!!”, как показано ниже, это сообщение, которое вы определили в скрипте Job DSL.
На этом этапе вы успешно создали и запустили задачу Jenkins с использованием плагина Job DSL!

Создание задачи для CI/CD-пайплайна с использованием плагина Jenkins DSL
На данный момент вы узнали, как создать и запустить задачу Jenkins freestyle с использованием плагина Job DSL. Вы автоматизируете нечеловеческую часть процесса разработки программного обеспечения, создав задачу Jenkins для CI/CD-пайплайна.
Конкретно, вы создадите задачу, которая извлекает код из репозитория GitHub, собирает код и запускает модульные тесты.
Для создания задачи Jenkins для CI/CD-пайплайна:
1. Перейдите по ссылке http://your_server_ip:8080/job/seed/configure в вашем веб-браузере, чтобы настроить вашу исходную задачу. Замените your_server_ip на IP-адрес вашего сервера Jenkins и замените seed на название вашей задачи.
2. Затем прокрутите вниз до раздела Сборка, найдите поле Сценарии DSL и замените существующее содержимое следующим кодом.
Щелкните по кнопке Сохранить, когда добавите код, чтобы сохранить изменения.

3. Нажмите “Построить сейчас” в левой боковой панели на следующем экране, чтобы повторно запустить сеанс создания. В разделе “История сборки” (внизу слева) вы увидите, что сеанс создания успешно завершился.
Нажмите на новую сборку (#2), чтобы перейти на страницу конфигурации сборки.

4. Теперь перейдите к выводу консоли новой сборки. Вы увидите сообщение об добавлении элементов и название новой задачи, как показано ниже.
Этот вывод указывает на успешное добавление новой задачи в конвейер.

5. Вернитесь на панель инструментов Jenkin, и вы увидите, что новая задача конвейера добавлена (jenkins-job-demo-2) в список задач. Нажмите на эту новую задачу конвейера, чтобы перейти на страницу конфигурации задачи.

6. Наконец, нажмите “Построить сейчас”, чтобы запустить новую задачу конвейера. Вы увидите, что задача успешно завершилась, как указано в разделе “История сборки”.
Нажмите на стрелку вниз рядом с задачей и выберите “Вывод консоли”.

В выводе консоли ниже вы можете увидеть результаты выполнения задачи, Jenkins успешно клонировал репозиторий, построил код и запустил модульные тесты.

Заключение
В этом руководстве вы узнали, как создавать задачи Jenkins с помощью плагина Job DSL. Вы кратко коснулись улучшения разработки приложений путем создания конвейера CI/CD с помощью плагина Jenkins Pipeline.
Плагин Job DSL и плагин Jenkins Pipeline работают параллельно, чтобы предложить мощный способ управления заданиями Jenkins и создания конвейеров сборки. Почему бы не настроить эти плагины для создания сложных конвейеров сборки, которые автоматически запускают задания Jenkins в рамках процесса сборки?