Jenkins Учебное пособие по созданию конвейера: как его создать JenkinsФайл (Пример)
⚡ Умное резюме
Jenkins Конвейер объединяет задачи сборки, тестирования и развертывания в единую упорядоченную последовательность, которая выполняется как код. JenkinsДобавление файла в репозиторий рядом с проектом преобразует эту последовательность в проверяемое, версионированное определение сроков выполнения.

Что такое Jenkins Трубопровод?
Jenkins Pipeline — это набор плагинов, поддерживающих интеграцию и внедрение конвейеры непрерывной доставкиЭто расширяемый сервер автоматизации для создания простых и сложных конвейеров доставки в виде кода с использованием языка DSL для конвейеров. Конвейер — это группа событий, взаимосвязанных в последовательность.
Что такое конвейеры непрерывной доставки? Как это работает?
В Jenkins В конвейере выполнения каждая задача или событие имеет определенную зависимость как минимум от одного или нескольких событий, как показано на диаграмме ниже.

Изображение выше представляет собой конвейер непрерывной доставки в Jenkinsсостоит из состояний, называемых сборка, развертывание, тестирование и выпуск. Каждое состояние имеет свои собственные события, которые выполняются последовательно.
Конвейер непрерывной доставки автоматически описывает этот процесс, перенося программное обеспечение из системы контроля версий в релиз через одну повторяющуюся последовательность сборок. тестов и этапов развертывания.
Что такое JenkinsФайл?
Jenkins Конвейеры можно определить в текстовом файле, который называется JenkinsФайл. Он описывает конвейер обработки данных в виде кода на предметно-ориентированном языке (DSL) и содержит все шаги, необходимые для его выполнения.
Преимущества использования JenkinsФайлы:
- Одна JenkinsФайл может создавать конвейеры для каждой ветки и выполнять запросы на слияние.
- Вы можете просмотреть свой Jenkins код в конвейере
- Вы можете провести аудит своего Jenkins трубопровод
- Это единственный источник вашего конвейера, и его могут изменять несколько пользователей.
Конвейер обработки данных можно определить в Jenkins веб-интерфейс или в JenkinsФайл добавлен в систему контроля версий. Минимальный декларативный файл имеет фиксированную структуру — блок конвейера, агент и этапы, содержащие по одному этапу на каждую фазу.
pipeline { agent any stages { stage('Build') { steps { echo 'Building' } } stage('Test') { steps { echo 'Testing' } } stage('Deploy') { steps { echo 'Deploying' } } } }
Сохранение в корневом каталоге репозитория версионирует конвейер вместе с кодом.
Декларативный и скриптовый синтаксис конвейера
Есть два типа Jenkins Синтаксис конвейера, используемый для определения вашего JenkinsФайл.
- декларативный
- Scripted
декларативный
Декларативный синтаксис конвейера — более простой путь. Он следует предопределенной иерархии и при этом позволяет легко контролировать все аспекты выполнения конвейера.
Scripted
Scripted Jenkins конвейер работает на Jenkins Контроллер управляется легковесным исполнителем, использующим очень мало ресурсов для преобразования конвейера в атомарные команды. Эти два подхода написаны совершенно по-разному, поэтому выбирайте один для каждого случая. JenkinsФайл.
⚠️ Примечание: Jenkins теперь звонит мастер контроллер.
Зачем использовать Jenkins Трубопровод?
Jenkins это открытый сервер непрерывной интеграции который автоматизирует процессы разработки программного обеспечения. Вы можете создать несколько автоматизированные рабочие места Исходя из ваших сценариев использования, запустите их как единый конвейер.
Вот причины, по которым вам следует использовать Jenkins трубопровод:
- Конвейер реализован в виде кода, поэтому несколько пользователей могут редактировать и запускать процесс.
- Конвейеры обработки данных отличаются высокой надежностью: если сервер неожиданно перезапускается, конвейер автоматически возобновляет работу.
- Вы можете приостановить выполнение конвейера и удерживать его до тех пор, пока пользователь не предоставит данные.
- Конвейеры поддерживают крупные проекты: позволяют запускать несколько задач одновременно и даже использовать конвейеры в цикле.
Jenkins Трубопровод Concepts
В каждом издании повторяются четыре термина. JenkinsФайл:
| Срок | Описание |
|---|---|
| Трубопровод | Набор инструкций, написанных в виде кода, охватывающий весь процесс сборки для непрерывной доставки. С помощью конвейера можно собирать, тестировать и доставлять приложение. |
| Узел | Машина, на которой Jenkins Запуск называется узлом. Блок узла в основном используется в синтаксисе скриптовых конвейеров. |
| Этап | Блок этапа содержит последовательность шагов. Процессы сборки, тестирования и развертывания объединяются на каждом этапе, что и отображается в представлении конвейера. |
| Шаг | Конвейер — это отдельная задача, выполняющая определенный процесс в заданное время. Конвейер — это последовательность шагов. |
Установите плагин Build Pipeline в Jenkins
Плагин конвейера сборки создает представление конвейера для входящих и исходящих заданий и добавляет триггеры для ручного вмешательства.
Установите его следующим образом:
Шаг 1) Настройки плагина можно найти в следующем разделе: Управление Jenkins > Управление плагинами, показано ниже.
⚠️ Примечание к версии: текущий Jenkins релизы помечены этим экраном Управление Jenkins → ПлагиныВкладки работают так, как описано здесь.
Если вы уже установили плагин, он отображается на вкладке «Установлено».
Шаг 2) Если плагин еще не установлен, он отобразится на вкладке «Доступные».
После установки плагина:
Как создать Jenkins Трубопровод
После того, как вы войдете в свой Jenkins приборная панель:
Шаг 1) Нажмите на кнопку «+» в левой части экрана. Jenkins Панель управления для создания конвейера.
Шаг 2) Заполните новое диалоговое окно просмотра:
- Дайте представлению конвейера имя. Мы назовём его «GuruДля этой демонстрации используется "конвейер 99".
- В разделе «Параметры» выберите «Создать представление конвейера».
- Нажмите кнопку «ОК», как показано ниже.
Шаг 3) На следующей странице запрашиваются дополнительные сведения о конфигурации. Примите настройки по умолчанию и убедитесь, что вы выбрали первое задание в разделе настроек.
Нажмите Применить, а затем ОК.
Затем отобразится примерный интерфейс конвейера обработки вашего элемента:
Запуск сборки Pipeline
Шаг 1) Сначала объедините свои задания в цепочку: откройте первое задание и нажмите «Настроить».
Шаг 2) Теперь в разделе «Триггеры сборки» установите флажок «Собирать после сборки других проектов».
Теперь существует цепочка для всех ваших рабочих мест.
Шаг 3) Установите плагин представления конвейера сборки, если он у вас еще не установлен.
Шаг 4) На Jenkins На панели мониторинга создайте представление с помощью кнопки «+», выберите параметр «Создать представление конвейера» и нажмите «ОК».
Шаг 5) В разделе настроек представления "Конвейер" найдите "Поток конвейера".
В разделе «Поток конвейера» выберите начальное задание для выполнения — задание, связанное с остальными на шагах 1 и 2.
GuruВ качестве начальной задачи здесь выбран проект 99 Project 1, поэтому последующие задачи выполняются одна за другой.
В процессе работы конвейера красные и зеленые символы отображают его состояние: красный — сбой, зеленый — успех.
В этом примере кнопка зелёная, значит, конвейер выполнился успешно.
Бег Jenkins трубопровод
Нажмите «Запустить», чтобы запустить программу. Jenkins Конвейер обработки данных. Он будет выглядеть примерно так:
В приведенном выше примере создается простая программа «helloworld.java». В реальных проектах используются гораздо более сложные цепочки процессов, как показано на более подробном примере ниже.
⚠️ Примечание к версии: Плагин Build Pipeline view — это устаревший способ визуализации цепочек заданий произвольного типа; в настоящее время один и тот же поток определяется в отдельном файле. JenkinsФайл. Синий Ocean Улучшение больше не предусмотрено.
Передовые методы с использованием Jenkins Трубопровод
Семь привычек обеспечивают работоспособность конвейера:
- Используйте оригинальную продукцию. Jenkins Трубопровод
- Разработайте свой конвейер как код
- Любая работа в вашем конвейере, не связанная с настройкой, должна выполняться в рамках этапа.
- Любая материальная работа в трубопроводе должна выполняться внутри узлового блока.
- Не используйте ввод данных внутри блока узла.
- Никогда не устанавливайте переменные среды с помощью глобальной переменной env.
- Оберните ваши входные данные тайм-аутом













