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, эти и многие другие нюансы остаются за кадром.
Автоматизируем процесс непрерывной интеграции, [email protected]
[…] нем мы уже говорили ЗДЕСЬ (link на статью про […]
[…] Integration и Continious Delivery. Основные представители такого ПО: Jenkins, Bamboo TeamSity. Но TeamSity более ориентирован на развертывание […]
[…] интеграция с системой развертывания релизов, мониторинга и административных действий – одно из […]