Jenkins в 2026: версии, экосистема и сравнение с GitLab CI и GitHub Actions

Рейтинг: 72.2% · 10 голосов
Подробный курс по Jenkins и CI/CD: установка и настройка, плагины и Configuration as Code, конвейеры (pipeline) и Jenkinsfile, declarative и scripted, агенты, Docker и Kubernetes, общие библиотеки на Groovy, безопасность и credentials, интеграции (SonarQube, артефакты), траблшутинг. Актуально на 2026.
Ответить
Аватара пользователя
Andrey_CICD
Сообщения: 47
Зарегистрирован: 11 май 2026, 05:31

Jenkins в 2026: версии, экосистема и сравнение с GitLab CI и GitHub Actions

Сообщение Andrey_CICD »

Оглавление курса (47)
  1. Что такое Jenkins и зачем нужен CI/CD
  2. Jenkins в 2026: версии, экосистема и сравнение с GitLab CI и GitHub Actions (вы здесь)
  3. Архитектура Jenkins: контроллер, агенты, узлы и исполнители
  4. Установка Jenkins: пакеты, Docker и Kubernetes
  5. Первичная настройка Jenkins: мастер, плагины, пользователи
  6. Плагины Jenkins: установка, обновление и ключевой набор
  7. Configuration as Code (JCasC): настройка Jenkins декларативно
  8. Конвейеры Jenkins и Jenkinsfile: pipeline as code
  9. Scripted против Declarative: два синтаксиса конвейера
  10. Структура конвейера: node, stage, steps и первый pipeline
  11. Генератор сниппетов, запуск конвейера и Replay
  12. Типы заданий Jenkins: Freestyle, Pipeline, Multibranch и Organization
  13. Декларативный конвейер: структура pipeline, agent, stages
  14. agent, environment и переменные в конвейере
  15. tools, options, parameters и triggers в декларативном конвейере
  16. stages, parallel и matrix: организация этапов
  17. Условное выполнение when и блок post
  18. Триггеры сборки: webhook от GitHub, SCM polling и расписание
  19. Параметры сборки и пользовательский ввод
  20. Управление потоком: timeout, retry, sleep и waitUntil
  21. Параллелизм и блокировки: parallel, lock, milestone
  22. Постобработка и уведомления о результате сборки
  23. Groovy для Jenkins: основы скриптового конвейера
  24. Скриптовый конвейер: логика, циклы и функции
  25. Общие библиотеки Jenkins: Shared Libraries
  26. Подключение и загрузка общих библиотек
  27. Шаги оболочки: sh, bat, powershell и коды возврата
  28. Переменные среды, withEnv и рабочие пространства
  29. Работа с файлами, артефактами и отпечатками
  30. Сборка проектов в конвейере: Maven, Gradle, npm
  31. Качество кода: SonarQube и покрытие тестами
  32. Управление артефактами: публикация в Nexus и Artifactory
  33. Docker в Jenkins: образы как агенты сборки
  34. Сборка и публикация Docker-образов из конвейера
  35. Jenkins в Kubernetes: динамические pod-агенты
  36. Развёртывание в Kubernetes из конвейера
  37. Безопасность Jenkins: аутентификация и матрица прав
  38. Учётные данные Jenkins: credentials в конвейере
  39. Безопасность сценариев: Groovy sandbox и Vault
  40. Уведомления и отчёты: email, Slack, Telegram, HTML
  41. Blue Ocean и интерфейс Jenkins в 2026
  42. Автоматизация Jenkins: CLI, REST API и script console
  43. Поиск и устранение неисправностей: читаем логи конвейера
  44. Типичные ошибки конвейера: сериализация и неутверждённый код
  45. Эксплуатация Jenkins: бэкап, обновление, масштабирование
  46. Конвертация и миграция: от Freestyle к Jenkinsfile
  47. Итог: сквозной CI/CD конвейер и Jenkins против альтернатив в 2026
Ты приходишь на новый проект, открываешь README, а там жёлтым по чёрному: "сборка крутится в Jenkins". И сразу куча вопросов. Это вообще живой инструмент или зомби из 2014-го? Почему все вокруг кричат про GitHub Actions, а тут какой-то старый сервер с гайками? Стоит ли учить Jenkins в 2026 или сразу мигрировать? Этот урок - про честную картину. Без хайпа и без религиозных войн. Разберёмся, что такое jenkins ci сегодня, на какой версии он живёт, чем дышит его экосистема плагинов и в каких случаях он реально лучший выбор, а в каких ты просто страдаешь по привычке.

Что такое Jenkins и почему он до сих пор жив

Если коротко: jenkins - это сервер автоматизации с открытым кодом, который умеет запускать твои сборки, тесты и деплои по триггеру (коммит, расписание, кнопка, вебхук). Написан на Java, ставится на свой сервер, работает где угодно - хоть в облаке, хоть в подвале без интернета. Это и есть его главная фишка: ты хозяин инфраструктуры целиком.

Архитектура простая. Есть контроллер (controller) - мозг системы: хранит конфигурацию, показывает веб-интерфейс, раздаёт задания. И есть агенты (agent) - рабочие лошадки, которые реально выполняют сборку. Раньше эти штуки звали master и slave, но термины давно поменяли на нейтральные controller и agent - встретишь старое слово в чужом гайде, знай, что это одно и то же.

Главная боль и главная сила Jenkins - это плагины. Их около 1800+ штук. Хочешь интеграцию с Docker - плагин. С Kubernetes - плагин. С Slack, Jira, SonarQube, любым облаком - плагин. Из коробки Jenkins умеет немного, всё остальное докручивается. Звучит как мечта, но есть обратная сторона: плагины пишут разные люди, качество скачет, а при обновлении что-то отваливается. Классика жанра - обновил ядро, а половина плагинов несовместима. Поэтому реальный Jenkins-инженер половину времени не пишет пайплайны, а занимается совместимостью версий. Это та самая "плагинная боль", о которой все говорят.

Изображение

Актуальное состояние на 2026: версии и Java

Книги по Jenkins 2018-2019 годов до сих пор полезны по идеям, но цифры там мёртвые. Давай сверим по факту на 2026.

Jenkins живёт двумя ветками. Weekly - еженедельные релизы со свежими фичами и свежими багами, для энтузиастов. LTS (Long-Term Support) - стабильная ветка, которую обновляют раз в 12 недель и патчат по безопасности. На проде берёшь только LTS, без вариантов.

Актуальная LTS на середину 2026 - это линейка 2.541.x (релиз 2.541.1 вышел 21 января 2026). И вот важный момент про Java, который ломает много кому установки:
  • Линейка 2.541.x - последняя LTS, где ещё работает Java 11. Дальше её выпиливают.
  • Поддержка Java 17 заканчивается в марте 2026, дальше базовая планка - Java 21.
  • Свежие weekly-релизы (2.543 и выше) уже требуют Java 21 как минимум.
  • Ближайшая новая LTS (апрель 2026) дропает Java 17 и встаёт на Java 21.
Вывод на 2026 простой: ставишь новый Jenkins - ставь сразу на Java 21 (LTS JDK), не оглядывайся на 11 и 17, они уходят. Проверить версию своей ноды можно прямо в шелл-шаге:

Код: Выделить всё

java -version
# openjdk version "21.0.x" 2026-xx-xx LTS
# OpenJDK Runtime Environment Temurin-21...

# и версию самого Jenkins из CLI
curl -s http://localhost:8080/api/json | python3 -c "import sys,json;print(json.load(sys.stdin).get('version','?'))"
Ещё одна актуализация: Blue Ocean (красивый альтернативный UI для пайплайнов из эпохи Jenkins 2) фактически заброшен. Его упоминают как наследие, новые проекты на нём не строят - работай со штатным интерфейсом и Pipeline as Code. Не вкладывайся в мёртвую технологию.

Pipeline as Code - ответ Jenkins на современность

Главная причина, почему Jenkins не умер, - он вовремя ушёл от кликанья мышкой к коду. Твой конвейер описывается текстом в файле Jenkinsfile, который лежит рядом с кодом в репозитории. Это и есть Pipeline as Code: пайплайн версионируется, ревьюится в pull request и воспроизводится. По умолчанию в 2026 пишут declarative pipeline - декларативный синтаксис, читаемый и предсказуемый. Scripted (на чистом Groovy) берут только там, где нужна динамика и сложная логика.

Вот живой, рабочий минимальный Jenkinsfile в декларативном стиле:

Код: Выделить всё

pipeline {
    agent any

    options {
        timeout(time: 20, unit: 'MINUTES')
        disableConcurrentBuilds()
    }

    stages {
        stage('Build') {
            steps {
                sh 'echo "Собираем проект"'
                sh './gradlew clean build -x test'
            }
        }
        stage('Test') {
            steps {
                sh './gradlew test'
            }
            post {
                always {
                    junit 'build/test-results/**/*.xml'
                }
            }
        }
        stage('Deploy') {
            when { branch 'main' }
            steps {
                sh './deploy.sh production'
            }
        }
    }

    post {
        failure {
            echo 'Сборка упала - разбираемся'
        }
    }
}
Заметь: ничего не накликано, всё в коде. Любой инженер открыл файл и понял, что происходит. Это убирает классический ужас старого Jenkins, где конфигурация джобы жила только в базе сервера и при падении машины терялась навсегда.

И раз уж мы про современность - в 2026 нормальный Jenkins настраивается не руками через UI, а через JCasC (Configuration as Code, плагин configuration-as-code). Вся конфигурация контроллера - в одном YAML-файле:

Код: Выделить всё

jenkins:
  systemMessage: "Cyberlake CI controller, управляется через JCasC"
  numExecutors: 0
  mode: EXCLUSIVE
  authorizationStrategy:
    loggedInUsersCanDoAnything:
      allowAnonymousRead: false

unclassified:
  location:
    url: "https://ci.example.ru/"

tool:
  jdk:
    installations:
      - name: "jdk21"
        home: "/opt/java/temurin-21"
А агентов в 2026 чаще всего запускают эфемерными - в Kubernetes через kubernetes-плагин. Под создаётся под конкретную сборку и умирает после неё, никакого простаивающего железа:

Код: Выделить всё

pipeline {
    agent {
        kubernetes {
            yaml '''
                apiVersion: v1
                kind: Pod
                spec:
                  containers:
                  - name: gradle
                    image: gradle:8-jdk21
                    command: ['sleep']
                    args: ['infinity']
            '''
        }
    }
    stages {
        stage('Build') {
            steps {
                container('gradle') {
                    sh 'gradle build'
                }
            }
        }
    }
}
Вот это и есть Jenkins 2026, а не тот мышиный сервер из мемов.

Честное сравнение CI: jenkins vs gitlab и github actions

Теперь сравнение ci по-взрослому, без фанатизма. По грубой оценке рынка на 2026 расклад примерно такой: GitHub Actions около трети проектов, Jenkins около четверти, GitLab CI ближе к пятой части. Все три - живые и востребованные, выбор зависит от контекста.

Jenkins. Максимальная гибкость, 1800+ плагинов, полный self-hosted, работает в air-gapped (без интернета) средах, тянет любые источники кода и любую экзотику. Минусы: ты сам себе админ, обновления и совместимость плагинов - твоя головная боль, порог входа выше. Это легаси-груз, но он же даёт свободу.

GitLab CI. Встроен прямо в GitLab, пайплайн описывается в .gitlab-ci.yml, всё в одной платформе - репозиторий, CI, реестр образов, сканеры безопасности (SAST, DAST). Раннеры можно поднять свои. Удобно, когда хочешь один инструмент на всё и встроенный комплаенс.

GitHub Actions. Marketplace на 20000+ готовых экшенов, запускается за минуты, облачные раннеры из коробки (есть и self-hosted). Идеален, если код уже на GitHub и стартуешь с нуля. Минус - сильная привязка к экосистеме GitHub.

Когда jenkins vs gitlab выигрывает Jenkins: закрытый контур без интернета, код размазан по разным VCS (часть в SVN, часть в Git), сложная логика пайплайна, которую YAML выражает уродливо, и есть выделенная DevOps-команда. Когда брать GitLab или jenkins github actions решается в пользу Actions: новый проект, маленькая команда, нет желания админить сервер, всё уже живёт на GitHub или GitLab. Смотри на TCO трезво: для небольшой команды Jenkins - самый дорогой по совокупной стоимости вариант именно из-за обслуживания, а его кастомизация окупается только когда тебе реально нужно то, чего облачные CI не умеют.

Типичные грабли
  • Поставил Jenkins на старую Java (8 или 11) "по гайду из интернета" - в 2026 он либо не стартует, либо это тупик без обновлений. Сразу Java 21.
  • Взял weekly-ветку на прод ради свежей фичи и ловишь баги каждую неделю. Прод - только LTS.
  • Натыкал кучу плагинов "на всякий случай" - получил несовместимость при первом же обновлении ядра. Ставь только то, что используешь, и обновляй осознанно.
  • Настроил всё руками через UI и не сохранил нигде. Упала машина - конфиг потерян. Лечится через JCasC и Jenkinsfile в репозитории.
  • Строишь интерфейс и обучение команды вокруг Blue Ocean. Он заброшен, ты строишь на песке.
Мини-лаба

Руками, без спешки:
  • Подними Jenkins LTS в Docker: jenkins/jenkins:lts на базе Java 21. Зайди в UI, посмотри версию ядра и версию Java в System Information.
  • Создай Pipeline-джобу, вставь минимальный declarative Jenkinsfile из урока со стадиями Build и Test, запусти, посмотри на граф стадий.
  • Открой раздел плагинов, найди configuration-as-code и kubernetes - просто прочитай их описания, чтобы понимать, что это и зачем.
  • Для себя выпиши в три колонки Jenkins / GitLab CI / GitHub Actions по своему текущему проекту: где код, нужен ли закрытый контур, есть ли кому админить. Сделай вывод, что подошло бы тебе.
Контрольные вопросы
  • Чем ветка LTS отличается от weekly и какую ты возьмёшь на прод в 2026?
  • Какая минимальная версия Java актуальна для свежего Jenkins в 2026 и почему не стоит ставить на Java 11/17?
  • Назови две ситуации, где Jenkins объективно лучше GitHub Actions, и две, где наоборот.
  • Что такое Pipeline as Code и какие проблемы старого Jenkins он решает?
Итог

Jenkins в 2026 - не музейный экспонат, а зрелый, гибкий self-hosted инструмент на актуальной LTS (2.541.x) и Java 21, с Pipeline as Code, JCasC и эфемерными агентами в Kubernetes. Его сила - свобода и 1800+ плагинов, его боль - обслуживание и совместимость. GitHub Actions и GitLab CI проще и быстрее на старте, но Jenkins незаменим там, где нужен полный контроль, закрытый контур и нестандартная логика. Дальше в курсе мы соберём всё это руками - от первого Jenkinsfile до продакшен-конвейера.
👍5 ❤️3 🔥 😄 🤔1
Аватара пользователя
react_whale
Сообщения: 1
Зарегистрирован: 15 май 2026, 20:17

Re: Jenkins в 2026: версии, экосистема и сравнение с GitLab CI и GitHub Actions

Сообщение react_whale »

Спасибо, наконец-то нормально объяснили про Java. У меня как раз не стартовал свежий Jenkins на 11й, поставил 21 - всё поднялось.
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
regexguru
Сообщения: 1
Зарегистрирован: 17 май 2026, 04:24

Re: Jenkins в 2026: версии, экосистема и сравнение с GitLab CI и GitHub Actions

Сообщение regexguru »

Вопрос: если у нас весь код уже на GitLab, есть ли вообще смысл тащить Jenkins рядом или брать встроенный GitLab CI и не мучиться с плагинами?
👍1 ❤️1 🔥2 😄 🤔
Ответить
← Предыдущая глава
Что такое Jenkins и зачем нужен CI/CD
Следующая глава →
Архитектура Jenkins: контроллер, агенты, узлы и исполнители

Все главы курса «Jenkins: конвейеры CI/CD от основ до продакшена»

Поделиться темой: ✈ Telegram VK
Похожие запросы: что такое jenkins простыми словамикак установить jenkins на linux и в dockerпервичная настройка jenkins после установкикакие плагины jenkins нужны новичкукак настроить агенты jenkins для сборкиcicd для начинающих с чего начать на jenkins

Вернуться в «Jenkins: конвейеры CI/CD от основ до продакшена»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя