Специалисты, которые занимаются разработкой ПО, стараются упростить и ускорить процесс. Один из способов — использовать инструмент Jenkins. В статье рассмотрим особенности и преимущества фреймворка, а также разберёмся, почему он подходит даже начинающим айтишникам.
Что такое Jenkins
«Дженкинс» — ПО для автоматизации создания продукта, а именно ключевых этапов — сборки, проверки и доставки до пользователя. Благодаря ему код корректируется оперативнее и более безопасно попадает в рабочую среду. Jenkins — это Java-фреймворк. Его можно настраивать под конкретные требования, например подключать систему Git или облачное хранилище Google Диск.

Как работает Jenkins и при чём тут CI/CD
Jenkins работает по принципу непрерывной разработки. Говоря простыми словами, специалисты постоянно добавляют в код новые функции. Такой подход позволяет снизить количество ошибок, сократить цикл создания ПО и быстрее вывести продукт на рынок.
Непрерывная разработка состоит из двух частей — CI (continuous integration) и CD (continuous delivery):
- CI — непрерывная интеграция. Можно проверять ветки репозитория после каждого объединения. Например, сразу выполнять тесты. А все обновления моментально добавляются в мастер-ветку.
- CD — непрерывная поставка. Код автоматически попадает на сервер или к тестировщикам, которые проверяют его. Иногда CD расшифровывается как Continuous Deployment, то есть непрерывное развёртывание. Это значит, что код публикуется без участия разработчика.
Концепция CI/CD основана на четырёх принципах — рассмотрим их в таблице.
Перечисленные выше концепции определяют алгоритм CI/CD-конвейера:
- Сборка. Разработчик создаёт новый код и добавляет его к основному. Для этого он использует CI-инструменты.
- Тестирование. Специалисты по тестированию проверяют код с помощью ручных или автоматических методов. При обнаружении недочётов они возвращают код обратно разработчику для доработки.
- Релиз. Заказчик оценивает готовый продукт. Если у него нет замечаний, то ПО публикуют для пользователей.
- Отзывы и доработка. Потребители дают обратную связь о продукте. Эта информация нужна, чтобы поставить задачу на улучшение ПО программистам, и цикл запускается опять.
Благодаря модели CI/CD получается быстрее тестировать решения среди пользователей, ведь не нужно дожидаться финального релиза. К тому же у продукта при таком подходе меньше ошибок: разработчики в любой момент могут вернуться к любому этапу и исправить его. А так как процесс автоматизирован, QA-инженеры тратят меньше времени на ручную проверку.
Однако у CI/CD есть и недостатки. В частности, для реализации такой модели нужно несколько DevOps-инженеров и тестировщиков. Из-за этого её сложно использовать в небольших компаниях.
Для чего нужен Jenkins
Главная цель в DevOps-подходе — ускорить процесс написания кода и как можно быстрее доставить его конечным пользователям, но при этом не снизить качество продукта. Добиться такого результата помогает Jenkins. В цикле CI/CD он берёт на себя всю рутину и позволяет устранить минусы этой концепции. Например, контролирует изменения в коде, запускает тесты и обновления, а также сообщает специалистам о результатах.
Рассмотрим подробнее, для чего нужен Jenkins в CI/CD:
- CI. Jenkins вовремя запускает важные процессы разработки продукта. Представьте: программист написал ветку кода в Git. Фреймворк Jenkins обнаружил это и активировал сборку и проверку. Если тестирование прошло успешно, то программа отправляет команду об этом и готовит финальную версию. А если обнаружены ошибки — оповещает о них.
- CD. Если сборка прошла успешно, то Jenkins сразу отправляет продукт, подготовленный для использования, на тестовый сервер, а затем — на продакшен. Как это может выглядеть: после сборки через Docker Jenkins выгружает приложение на сервер. Затем фреймворк запускает тестирование. Если ошибок нет, он отправляет продукт на продакшен.
Получается, Jenkins сам не хранит код и не управляет узлами. Однако он даёт команды разным инструментам и таким образом связывает их в единую сеть. Это позволяет ускорить и упростить процесс разработки благодаря автоматизации повторяющихся действий — от обновления библиотек до составления отчёта об ошибках.
В чём преимущества Jenkins
Основные плюсы Jenkins, за которые его ценят специалисты — от разработчиков до QA-инженеров:
- Стоимость 0 рублей. Jenkins — полностью бесплатный инструмент с открытым исходным кодом.
- Развитая экосистема. В «Дженкинс» тысячи плагинов для интеграции с любым инструментом и технологиями.
- Гибкость и кастомизация. Можно создать процесс под любые, даже самые уникальные, требования и сценарии. Например, после развёртывания обновления запустить скрипт генерации тестовых данных, подождать 5 минут, создать задачу в Jira и отправить уведомление в Telegram — и всё в рамках одного конвейера.
- Кроссплатформенность. Jenkins работает на любой операционной системе, где есть Java. В том числе на Windows, Linux и macOS.
- Распределённые сборки. «Дженкинс» легко масштабируется с помощью агентов для распределения нагрузки.
- Мощное сообщество. У Jenkins широкая поддержка, множество готовых решений и документации, что особенно полезно для новичков.

Как установить и настроить Jenkins
Jenkins — это фреймворк для Java. Поэтому, чтобы установить приложение, нужны подходящие инструменты разработки, например JDK (Java Development Kit). Скачать его можно на официальном сайте.

После загрузки файла запустите его и установите Java Development Kit. В процессе скопируйте путь и сохраните его — он пригодится в будущем.
Установка Jenkins
Теперь перейдите на официальный сайт Jenkins и скачайте подходящую версию приложения: для примера возьмём Windows. Затем запустите установочный файл.
Jenkins выпускает две линейки релизов: стабильную (LTS) и еженедельную. Первая подходит, если нужна предсказуемость и долгосрочная поддержка без частых обновлений. А вторая — когда хотите использовать самые свежие нововведения от сообщества. Например, работаете в изолированной среде и не боитесь рисковать.

Далее действуйте по такому алгоритму:
- В окне установки вместо «Run service as local or domain user» выберите способ входа «Run service as LocalSystem». Не пугайтесь, что поле авторизации исчезнет: позже получится ввести доступы вручную.
- Дефолтный порт 8080 менять не нужно. Только проверьте его — кликните на «Test Port».
- Скопируйте путь к Java Development Kit, который сохранили ранее. Введите его в появившееся поле и нажмите «Next».
- Согласитесь на установку компонентов, которые предложит система.
Готово! Нужный процесс должен появиться в диспетчере задач: в этом случае вы всё сделали правильно.
Настройка Jenkins
Для настройки фреймворка на Windows выполните такие действия:
- Откройте браузер и введите в строке поиска «http://localhost:8080», нажмите «Enter».
- Откроется окно разблокировки, вставьте в него адрес файла с паролем.
- Появится окно с установкой плагинов. Можно скачать набор Jenkins Pipeline или выбрать нужные плагины самостоятельно.
- Начнётся загрузка. Если какой-то плагин не скачался, нажмите «Retry» и попробуйте снова.
- Когда плагины установятся, придумайте и введите логин и пароль для входа в систему.
- Сохраните доступы. После этого можно начать пользоваться Jenkins: просто нажмите «Start using Jenkins» и перейдите в приложение.
Как создать задания в Jenkins
Допустим, у вас есть код в репозитории GitHub, и вам нужно, чтобы Jenkins забирал его, устанавливал зависимости и запускал тесты. Рассмотрим, как это сделать.
Шаг 1. Создаём новое задание
- Войдите в интерфейс Jenkins.
- На главной странице нажмите «Создать новый элемент» («New Item»).
- Введите название задания, например, my-node-app-build.
- Выберите тип задания «Freestyle project»: он подходит для простых задач. Для многошаговых CI/CD-сценариев — Pipeline, а для работы с разными веткам репозитория — Multibranch Pipeline.
- Нажмите «OK».
Шаг 2. Настраиваем раздел «Управление исходным кодом» (Source Code Management)
Здесь укажем, откуда Jenkins будет забирать код.
- В настройках задания найдите секцию «Source Code Management».
- Выберите «Git».
- В поле «Repository URL» введите URL вашего Git-репозитория (например, https://github.com/your-username/your-node-app.git).
Шаг 3. Настраиваем раздел «Сборка» (Build)
Здесь определим шаги, которые Jenkins выполнит для сборки проекта.
- Найдите секцию «Build».
- Нажмите «Add build step» и выберите «Execute Windows batch command» для Windows. Если у вас macOS или Linux — «Execute shell».
- В появившемся текстовом поле введите команды, которые обычно запускаете в терминале:
# Шаг 1: Установка зависимостей npm install # Шаг 2: Запуск линтера (проверка стиля кода) npm run lint # Шаг 3: Запуск unit-тестов npm test
Этот скрипт выполнит три команды последовательно. Если любая из них завершится с ошибкой, сборка в Jenkins будет помечена как неудачная.
Шаг 4. Сохраняем и запускаем
- Прокрутите страницу вниз и нажмите кнопку «Сохранить» (Save).
- Откроется страница вашего задания. Чтобы запустить сборку вручную, нажмите «Собрать сейчас» (Build Now).
- В «История сборок» (Build History) появится новый элемент. Синий шарик означает, что всё получилось, красный — есть ошибки. Вы можете кликнуть на номер сборки, а затем на «Вывод консоли» (Console Output), чтобы увидеть детальный файл со всеми командами.
Jenkins: коротко о главном
- Jenkins — это мощный инструмент для автоматизации цикла CI/CD. Он позволяет упростить и ускорить разные процессы — от сборки кода и запуска тестов до развёртывания приложений.
- Среди главных преимуществ Jenkins — бесплатная работа, открытый исходный код, мощное сообщество и возможность настраивать инструмент под разные задачи благодаря большому количеству плагинов.