Что такое Jenkins?

время 3 МИН
звезда звезда звезда ЛЕГКО
Основы
Jenkins
CI/CD
Автоматизация

Эта статья для тех, кто хочет понять, зачем нужна автоматизация процесса разработки в общем и Jenkins в частности.

Jenkins это приложение с веб-интерфейсом, которое помогает автоматизировать рутинные задачи, возникающие в процессе разработки, например:

Сборка приложения. Преобразование человеко-понятного кода в машино-понятные файлы (имеет смысл для компилируемых языков) и упаковка в архив с указанием номера версии

Загрузка собранных артефактов в хранилище. Тут можно хранить историю версий и брать нужную для развертывания на окружениях

Проверка стиля написания кода. На соответствие принятым правилам (статическими анализаторами)

Сканирование на уязвимости. Кода и зависимостей (сторонних библиотек)

Запуск автотестов. Чтобы минимизировать вероятность появления ошибок в результате реализации нового функционала.

Оценка покрытия кода тестами. Считается, что чем больше кода покрыто тестами, тем лучше. Так можно, запустив тесты, увидеть, какие строчки кода выполнялись, а какие нет. Если не выполнялись, значит тесты их не задели, и, в теории, если там есть ошибка, то она может быть пропущена.

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

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

Все описанные выше шаги нужно делать для того, чтобы управлять качеством проекта в широком смысле. Хорошо написанный код удобнее поддерживать, а значит и быстрее наращивать новый функционал. Прогон тестов - минимизирует вероятность, что ошибки дойдут до конечного пользователя. Автоматизация нужна для ускорения и удешевления процесса, а так же для исклюючения человеческого фактора, ведь так легко забыть вовремя выполнить определенные шаги или просто полениться.

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

Что еще почитать?

Что такое Jenkins-пайплайны?

2023, 19 АВГУСТА
время 5 МИН
звезда звезда звезда СРЕДНЕ
Jenkins
CI/CD
Автоматизация
Рассказываю, как правильно готовить Jenkins. В этой статье разберем, как именно делать автоматизацию сборок в Jenkins, поделюсь лучшими практиками

Как пишут программы?

2023, 19 АВГУСТА
время 4 МИН
звезда звезда звезда ЛЕГКО
Основы
Расскажу о проессе разработке программного обеспечения
на главную