Jenkins – лидер среди решений автоматизации с открытым исходным кодом, Дженкинс предоставляет сотни плагинов для поддержки, создания, развертывания и автоматизации любого проекта. Сам Jenkins написан на Java и, по субъективным оценкам пользователей, является, мягко скажем, не самым быстрым решением непрерывной интеграции для девопс

автоматизация с помощью дженкинс

Однако это достаточно гибкий  инструмент, который применяется для автоматического выполнения различного рода задач. Для проектов по разработке это могут быть тесты сборок, проверка ошибок, генерация отчетности и документации и многое другое. Например, нетипичным, но вполне рабочим решением является использование Jenkins в качестве системы мониторинга. Почему это возможно ? Потому что задачи для Jenkins описываются в файле xml. После формирования файла сервер по расписанию или вручную выполняет его содержимое. Каждая задача содержит набор команд: например, создание папок и запуск скрипта инсталляции приложения.

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

Вообще, для общего понимания стоит сказать, что сам Jenkins ничего не умеет, он только управляет другими процессами и плагинами. Например, если Вы боритесь за чистоту кода в PHP проекте, Вас может заинтересовать следующая конфигурация:

На Linux сервере установлен Jenkins, пакеты PHP CodeSniffer, PHP Mess Detector, PHP Copy/Paste Detector и подобные, создан скрипт, с помощью которого будут запущены вышеперечисленные пакеты с определенными параметрами и получен результат.

С точки зрения Jenkins в таком случае нужно будет создать проект-задачу, которая подтянет новую версию с хранилища кода, запустит процесс сборки, что в нашем случае будет означать проверку PHP кода с помощью вышеозвученных пакетов, распарсит полученные результаты работы скрипта с помощью плагинов, заданных в Post-Built Actions при создании задачи. Там же можно указать необходимость рассылки уведомлений о результатах работы.

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

Автоматизируем процесс непрерывной интеграции, office@itfb.com.ua