Jenkins Учебное пособие по созданию конвейера: как его создать JenkinsФайл (Пример)

⚡ Умное резюме

Jenkins Конвейер объединяет задачи сборки, тестирования и развертывания в единую упорядоченную последовательность, которая выполняется как код. JenkinsДобавление файла в репозиторий рядом с проектом преобразует эту последовательность в проверяемое, версионированное определение сроков выполнения.

  • 🔘 Трубопроводный: Группа взаимосвязанных событий, где каждая задача зависит от предыдущей.
  • ☑️ JenkinsФайл: Текстовый файл на предметно-ориентированном языке, содержащий все этапы конвейера обработки данных.
  • Два синтаксиса: Декларативный подход предлагает фиксированную иерархию; структура сделок, основанная на скриптах, для Groovy контролировать.
  • 🧪 Четыре термина: Конвейер, узел, этап и шаг обозначают поток, механизм, фазу и задачу.
  • 🇧🇷 Путь установки: Установите плагин конвейера сборки, добавьте представление конвейера, свяжите задания в цепочку и запустите его.
  • 📌 Практики: Обработку материалов следует хранить в блоке узлов, не связанные с настройкой работы — на этапе, а входные данные — в таймаутах.

Jenkins конвейер, определенный как код в JenkinsФайл

Что такое Jenkins Трубопровод?

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

Что такое конвейеры непрерывной доставки? Как это работает?

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

Конвейер непрерывной доставки включает в себя этапы сборки, развертывания, тестирования и выпуска. Jenkins
Работа 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Файл.

  1. декларативный
  2. Scripted

декларативный

Декларативный синтаксис конвейера — более простой путь. Он следует предопределенной иерархии и при этом позволяет легко контролировать все аспекты выполнения конвейера.

Scripted

Scripted Jenkins конвейер работает на Jenkins Контроллер управляется легковесным исполнителем, использующим очень мало ресурсов для преобразования конвейера в атомарные команды. Эти два подхода написаны совершенно по-разному, поэтому выбирайте один для каждого случая. JenkinsФайл.

⚠️ Примечание: Jenkins теперь звонит мастер контроллер.

Зачем использовать Jenkins Трубопровод?

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

Вот причины, по которым вам следует использовать Jenkins трубопровод:

  • Конвейер реализован в виде кода, поэтому несколько пользователей могут редактировать и запускать процесс.
  • Конвейеры обработки данных отличаются высокой надежностью: если сервер неожиданно перезапускается, конвейер автоматически возобновляет работу.
  • Вы можете приостановить выполнение конвейера и удерживать его до тех пор, пока пользователь не предоставит данные.
  • Конвейеры поддерживают крупные проекты: позволяют запускать несколько задач одновременно и даже использовать конвейеры в цикле.

Jenkins Трубопровод Concepts

В каждом издании повторяются четыре термина. JenkinsФайл:

СрокОписание
ТрубопроводНабор инструкций, написанных в виде кода, охватывающий весь процесс сборки для непрерывной доставки. С помощью конвейера можно собирать, тестировать и доставлять приложение.
УзелМашина, на которой Jenkins Запуск называется узлом. Блок узла в основном используется в синтаксисе скриптовых конвейеров.
ЭтапБлок этапа содержит последовательность шагов. Процессы сборки, тестирования и развертывания объединяются на каждом этапе, что и отображается в представлении конвейера.
ШагКонвейер — это отдельная задача, выполняющая определенный процесс в заданное время. Конвейер — это последовательность шагов.

Установите плагин Build Pipeline в Jenkins

Плагин конвейера сборки создает представление конвейера для входящих и исходящих заданий и добавляет триггеры для ручного вмешательства.

Установите его следующим образом:

Шаг 1) Настройки плагина можно найти в следующем разделе: Управление Jenkins > Управление плагинами, показано ниже.

⚠️ Примечание к версии: текущий Jenkins релизы помечены этим экраном Управление Jenkins → ПлагиныВкладки работают так, как описано здесь.

Страница «Управление плагинами» Jenkins где находятся настройки плагина конвейера сборки.

Если вы уже установили плагин, он отображается на вкладке «Установлено».

Вкладка «Установлено» Jenkins Менеджер плагинов отображает список плагинов конвейера сборки.

Шаг 2) Если плагин еще не установлен, он отобразится на вкладке «Доступные».

После установки плагина:

Как создать Jenkins Трубопровод

После того, как вы войдете в свой Jenkins приборная панель:

Шаг 1) Нажмите на кнопку «+» в левой части экрана. Jenkins Панель управления для создания конвейера.

Кнопка «Плюс» на Jenkins Панель мониторинга используется для добавления нового представления.

Шаг 2) Заполните новое диалоговое окно просмотра:

  1. Дайте представлению конвейера имя. Мы назовём его «GuruДля этой демонстрации используется "конвейер 99".
  2. В разделе «Параметры» выберите «Создать представление конвейера».
  3. Нажмите кнопку «ОК», как показано ниже.

В диалоговом окне создания нового представления введите имя представления конвейера и выберите пункт «Создать представление конвейера».

Шаг 3) На следующей странице запрашиваются дополнительные сведения о конфигурации. Примите настройки по умолчанию и убедитесь, что вы выбрали первое задание в разделе настроек.

Нажмите Применить, а затем ОК.

Создайте страницу конфигурации представления конвейера с настройками по умолчанию и выберите первое задание.

Затем отобразится примерный интерфейс конвейера обработки вашего элемента:

Образец Jenkins Создан вид конвейера сборки для Guru99 Пункт трубопровода

Запуск сборки Pipeline

Шаг 1) Сначала объедините свои задания в цепочку: откройте первое задание и нажмите «Настроить».

Настройте ссылку на первом этапе. Jenkins работа, используемая для начала цепочки работ

Шаг 2) Теперь в разделе «Триггеры сборки» установите флажок «Собирать после сборки других проектов».

В разделе «Триггеры сборки» установлен флажок «Собирать после сборки других проектов».

Теперь существует цепочка для всех ваших рабочих мест.

Шаг 3) Установите плагин представления конвейера сборки, если он у вас еще не установлен.

Шаг 4) На Jenkins На панели мониторинга создайте представление с помощью кнопки «+», выберите параметр «Создать представление конвейера» и нажмите «ОК».

Новое диалоговое окно просмотра с выбранным параметром «Просмотр конвейера сборки».

Шаг 5) В разделе настроек представления "Конвейер" найдите "Поток конвейера".

В разделе «Поток конвейера» выберите начальное задание для выполнения — задание, связанное с остальными на шагах 1 и 2.

Настройки потока в трубопроводе с GuruПроект 1 (99) выбран в качестве первоначальной работы.

GuruВ качестве начальной задачи здесь выбран проект 99 Project 1, поэтому последующие задачи выполняются одна за другой.

В процессе работы конвейера красные и зеленые символы отображают его состояние: красный — сбой, зеленый — успех.

В этом примере кнопка зелёная, значит, конвейер выполнился успешно.

Зеленая кнопка состояния указывает на успешное завершение. Jenkins запуск конвейера

Бег Jenkins трубопровод

Нажмите «Запустить», чтобы запустить программу. Jenkins Конвейер обработки данных. Он будет выглядеть примерно так:

кнопка «Запуск» на Jenkins представление конвейера сборки

В приведенном выше примере создается простая программа «helloworld.java». В реальных проектах используются гораздо более сложные цепочки процессов, как показано на более подробном примере ниже.

Завершена Jenkins Представление конвейера сборки, отображающее каждую цепочку заданий в последовательности.

⚠️ Примечание к версии: Плагин Build Pipeline view — это устаревший способ визуализации цепочек заданий произвольного типа; в настоящее время один и тот же поток определяется в отдельном файле. JenkinsФайл. Синий Ocean Улучшение больше не предусмотрено.

Передовые методы с использованием Jenkins Трубопровод

Семь привычек обеспечивают работоспособность конвейера:

  • Используйте оригинальную продукцию. Jenkins Трубопровод
  • Разработайте свой конвейер как код
  • Любая работа в вашем конвейере, не связанная с настройкой, должна выполняться в рамках этапа.
  • Любая материальная работа в трубопроводе должна выполняться внутри узлового блока.
  • Не используйте ввод данных внутри блока узла.
  • Никогда не устанавливайте переменные среды с помощью глобальной переменной env.
  • Оберните ваши входные данные тайм-аутом

Часто задаваемые вопросы (FAQ)

Программа сканирует репозиторий и находит каждую ветку, содержащую соответствующий код. JenkinsСоздается файл, который затем формирует задание для каждого из них. Поведение ветвей определяется переменной BRANCH_NAME в этом же файле.

Храните их в Jenkins Учетные данные сохраняются и считываются с помощью вспомогательной функции credentials() в блоке переменных окружения. Значение внедряется во время выполнения и маскируется в журнале, поэтому пароль в файле не хранится.

Он запускается после завершения этапов, независимо от результата. Такие условия, как «всегда», «успех», «неудача» и «нестабильная ситуация», позволяют одному файлу публиковать отчеты, архивировать артефакты и уведомлять команду без повторений.

Да. Параллельный блок внутри этапа выполняет свои ветви одновременно, что подходит для пакетов программ, распределенных по разным браузерам. Каждой ветви нужен агент, поэтому время выполнения сокращается только тогда, когда исполнители свободны.

Отправьте скрипт на декларативный линтер или откройте Replay на предыдущем запуске, отредактируйте скрипт и выполните его, не затрагивая репозиторий. Оба способа позволяют выявить синтаксические ошибки на ранней стадии.

Искусственный интеллект может прочитать длинный консольный лог, сгруппировать повторяющиеся стеки. tracУкажите этап, на котором начался сбой. Также отмечаются периодические проверки. Подтвердите каждое предложение, сверив его с исходным логом.

Да. Copilot Создает декларативный шаблон на основе комментария, в котором указаны этапы, и выполняет такие шаги, как извлечение данных и команды оболочки. RevПросматривайте метки агентов, учетные данные и тайм-ауты, которые часто угадываются неправильно в предлагаемых вариантах.

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

Подведем итог этой публикации следующим образом: