Jenkins Підручник з конвеєра: Як створити JenkinsФайл (приклад)

⚡ Розумний підсумок

Jenkins Конвеєрні посилання створюють, тестують та розгортають завдання в одну впорядковану послідовність, яка виконується як код. JenkinsФайл, зафіксований поруч із проектом, перетворює цю послідовність на перевірене, версійне визначення доставки.

  • 🔘 Трубопровід: Група взаємопов'язаних подій, де кожне завдання залежить від попереднього.
  • ☑️ JenkinsФайл: Текстовий файл мовою, що відповідає певній предметній області, що містить кожен крок конвеєра.
  • Два синтаксиси: Декларативний пропонує фіксовану ієрархію; сценарійну структуру торгів для Groovy контролювати.
  • 🧪 Чотири терміни: Конвеєр, вузол, етап і крок називають потік, машину, фазу та завдання.
  • 🛠️ Шлях налаштування: Встановіть плагін build pipeline, додайте представлення pipeline, об'єднайте завдання в ланцюжок та запустіть його.
  • 📌 Практики: Зберігайте матеріальну роботу у вузловому блоці, неналаштовувану роботу – на етапі, а вхідні дані обгортайте тайм-аутами.

Jenkins конвеєр, визначений як код у JenkinsФайл

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

Jenkins Pipeline — це комбінація плагінів, що підтримує інтеграцію та реалізацію трубопроводи безперервної подачіЦе розширюваний сервер автоматизації для створення простих і складних конвеєрів доставки у вигляді коду через конвеєр DSL. Конвеєр — це група подій, пов'язаних між собою в послідовності.

Що таке трубопроводи безперервної доставки? Як це працює?

В Jenkins У конвеєрі кожне завдання або подія має певну залежність щонайменше від однієї або кількох подій, як показано на діаграмі нижче.

Стан конвеєра безперервної доставки: створення, розгортання, тестування та випуск Jenkins
Робота з Jenkins Трубопроводи безперервної подачі

На зображенні вище зображено конвеєр безперервної доставки в Jenkins, що складається зі станів, які називаються збірка, розгортання, тестування та випуск. Кожен стан має свої власні події, які виконуються послідовно.

Конвеєр безперервної доставки автоматично виражає цей процес, переносячи програмне забезпечення від системи контролю версій до релізу через одну повторювану послідовність збірок, Тестування та етапи розгортання.

Що таке? JenkinsФайл?

Jenkins конвеєри можна визначити в текстовому файлі під назвою JenkinsФайл. Він виражає конвеєр як код на предметно-орієнтованій мові (DSL) та містить кожен крок, необхідний для запуску конвеєра.

Переваги використання JenkinsФайл:

  • Один JenkinsFile може створювати пайплайни для кожної гілки та виконувати пул-реквести.
  • Ви можете переглянути свій 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. Сценарій

Декларативний

Декларативний синтаксис конвеєра є простішим шляхом. Він дотримується заздалегідь визначеної ієрархії та все ще контролює кожен аспект виконання конвеєра простим способом.

Сценарій

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

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

Навіщо використовувати Jenkins Трубопровід?

Jenkins є відкритим сервер безперервної інтеграції що автоматизує процеси розробки програмного забезпеченняВи можете створити кілька вакансії з автоматизації з ваших варіантів використання та запускайте їх як один конвеєр.

Ось причини, чому вам варто використовувати Jenkins трубопровід:

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

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

Чотири терміни повторюються кожні JenkinsФайл:

ТермінОпис
ТрубопровідНабір інструкцій, написаних у вигляді коду, що охоплює весь процес збірки для безперервної доставки. За допомогою конвеєра ви можете збирати, тестувати та доставляти застосунок.
вузолМашина, на якій Jenkins запускається називається вузлом. Блок вузла в основному використовується в синтаксисі скриптового конвеєра.
СтажуванняБлок етапу містить низку кроків. Процеси збірки, тестування та розгортання об'єднуються в етап, який також візуалізує подання конвеєра.
КрокОкреме завдання, яке виконує певний процес у визначений час. Конвеєр – це послідовність кроків.

Встановіть плагін Build Pipeline у Jenkins

Плагін build pipeline створює подання конвеєра вхідних та вихідних завдань і додає тригери ручного втручання.

Встановіть його наступним чином:

Крок 1) Налаштування плагіна можна знайти в розділі керувати Jenkins > Керування плагінами, показано нижче.

⚠️ Примітка до версії: ток Jenkins релізи позначають цей екран керувати Jenkins → Плагіни; вкладки поводяться так, як описано тут.

Сторінка керування плагінами в Jenkins де знаходяться налаштування плагіна конвеєра збірки

Якщо ви вже встановили плагін, він відображається під вкладкою встановлено.

Встановлена ​​вкладка Jenkins менеджер плагінів, що містить список плагінів конвеєра збірки

Крок 2) Якщо плагін ще не встановлено, він відображається на вкладці «Доступні».

З встановленим плагіном:

Як створити Jenkins Трубопровід

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

Крок 1) Натисніть кнопку «+» з лівого боку вашого Jenkins панель інструментів для створення конвеєра.

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

Крок 2) Заповніть діалогове вікно нового вигляду:

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

Діалогове вікно «Нове подання» з введеною назвою подання конвеєра та вибраним параметром «Створити подання конвеєра»

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

Натисніть «Застосувати», а потім «ОК».

Сторінка конфігурації перегляду конвеєра побудови з налаштуваннями за замовчуванням та вибраним першим завданням

Після цього з’явиться зразок подання конвеєра вашого елемента:

Зразок Jenkins побудувати вигляд конвеєра, створений для Guru99 Елемент трубопроводу

Запуск збірки конвеєра

Крок 1) Спочатку об’єднайте свої завдання в ланцюжок: відкрийте перше завдання та натисніть «налаштувати».

Налаштуйте посилання на першому Jenkins завдання, що використовується для запуску ланцюжка завдань

Крок 2) Тепер у розділі «Тригери збірки» позначте опцію «Збірка після збірки інших проектів».

Розділ «Тригери збірки» з позначеним параметром «Збірка після збірки інших проектів»

Тепер існує ланцюг для всіх ваших завдань.

Крок 3) Встановіть плагін перегляду Build Pipeline, якщо він у вас ще не встановлений.

Крок 4) на Jenkins На панелі інструментів створіть вигляд за допомогою кнопки «+», виберіть опцію «Побудувати вигляд конвеєра» та натисніть кнопку «ОК».

Діалогове вікно «Нове подання» з вибраним параметром «Побудувати подання конвеєра»

Крок 5) У розділі Конфігурація подання трубопроводу знайдіть Потік трубопроводу.

У розділі «Потік конвеєра» виберіть початкове завдання для запуску — завдання, пов’язане з іншими завданнями на кроках 1 і 2.

Налаштування потоку в трубопроводі за допомогою Guru99 Проект 1 обрано як початкове завдання

Guru99 Проект 1 вибрано тут як початкове завдання, тому ланцюгові завдання виконуються одне за одним.

Під час роботи конвеєра червоні та зелені символи повідомляють про його стан: червоний – провал, зелений – успіх.

У цьому прикладі кнопка зелена, тобто конвеєр успішно завершено.

Зелена кнопка стану, що показує успішне виконання Jenkins прогін трубопроводу

Робота Jenkins трубопровід

Натисніть кнопку «Виконати», щоб запустити Jenkins конвеєр. Це виглядатиме приблизно так:

Кнопка «Запустити» на Jenkins побудова вигляду конвеєра

У наведеному вище прикладі створюється проста програма «helloworld.java». Реальні проекти об'єднують у ланцюжок набагато складніші конвеєри, як показано на повнішому зображенні нижче.

Зроблено Jenkins побудова вигляду конвеєра, що відображає кожне ланцюгове завдання послідовно

⚠️ Примітка до версії: Плагін перегляду Build Pipeline – це застарілий спосіб візуалізації ланцюгових завдань вільного стилю; поточна практика визначає той самий потік у JenkinsФайл. Синій. Ocean більше не покращується.

Найкращі практики використання Jenkins Трубопровід

Сім звичок забезпечують безперебійний стан конвеєра:

  • Використовуйте справжній Jenkins Трубопровід
  • Розробіть свій конвеєр як код
  • Будь-яка робота, не пов’язана з налаштуванням, у вашому конвеєрі має відбуватися в межах блоку етапу.
  • Будь-яка матеріальна робота в конвеєрі повинна виконуватися в межах блоку вузла.
  • Не використовуйте вхідні дані всередині блоку вузла.
  • Ніколи не встановлюйте змінні середовища разом із глобальною змінною env
  • Запакуйте ваші введення в тайм-аут

Поширені запитання

Він сканує репозиторій, знаходить кожну гілку, що містить JenkinsФайл та створює завдання для кожного. Поведінка гілок залежить від змінної BRANCH_NAME у цьому одному файлі.

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

Він запускається після завершення етапів, незалежно від результату. Такі умови, як «завжди», «успіх», «невдача» та «нестабільність», дозволяють одному файлу публікувати звіти, архівувати артефакти та повідомляти команду без повторення.

Так. Паралельний блок всередині стадії запускає свої гілки одночасно, що підходить для пакетів, розділених між браузерами. Кожній гілці потрібен агент, тому час виконання скорочується лише тоді, коли виконавці вільні.

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

Помічник зі штучним інтелектом може читати довгий журнал консолі, групувати повторюваний стек tracта вкажіть етап, на якому почалася помилка. Це також позначає періодичні тести. Підтвердьте кожну пропозицію за допомогою необробленого журналу.

Так. Copilot створює декларативний скелет з коментаря, що називає етапи, та виконує такі кроки, як перевірка та команди оболонки. Revпереглядати мітки агентів, облікові дані та час очікування, які часто є помилковими.

Як тільки той самий блок з'являється в трьох або більше JenkinsФайли. Спільна бібліотека зберігає цю логіку в одному версіонному репозиторії, тому виправлення досягає кожного проекту, і кожен файл зберігає лише свої власні етапи.

Підсумуйте цей пост за допомогою: