Поиск по сайту:

Как настроить Jenkins для непрерывной интеграции разработки в CentOS 7


Введение

Слияние кода. Координация релизов. Определение статуса сборки. Поддержание обновлений. Если вы достаточно хорошо знаете разочарование этих процессов, чтобы сами слова угрожали головной болью, вы можете заглянуть в Jenkins CI.

Сопровождение любого проекта, особенно того, который разрабатывается одновременно несколькими членами команды и который может включать в себя множество функций, компонентов, языков и сред, в лучшие времена — это борьба, а в худшие — требуется сверхчеловеческий подвиг, чтобы остаться на плаву.

Дженкинс здесь, чтобы помочь. По сути, это решение для непрерывной интеграции — то есть практики непрерывного слияния всего кода в одну центральную сборку — Jenkins действует как штаб-квартира для операций вашего проекта. Он может отслеживать, регулировать, сравнивать, объединять и поддерживать ваш проект во всех его аспектах.

По своей сути Jenkins делает две вещи: автоматическую интеграцию и внешний мониторинг сборки. Это означает, что он может значительно упростить процесс поддержания вашего кода в сопровождении и внимательно и неустанно следить за качеством ваших сборок, гарантируя, что вы не получите неприятных сюрпризов, когда несколько ваших разработчиков объединят свой код до того, как он будет готов. .

Давайте перейдем к мельчайшим деталям и узнаем, как именно выглядит Дженкинс и как его использовать.

Предпосылки

Чтобы следовать этому руководству, вам понадобится следующее:

  • Дроплет CentOS 7
  • Пользователь без полномочий root с привилегиями sudo (в статье «Редактирование файла Sudoers в Ubuntu и CentOS» объясняется, как это настроить).

Все команды в этом руководстве должны выполняться от имени пользователя без полномочий root. Если для команды требуется root-доступ, ей будет предшествовать sudo.

Системные пакеты и файл WAR

Теперь, когда вы знаете, что такое Jenkins, вам нужно понять, как он распространяется. Jenkins работает на Java и поставляется в виде файла WAR — набора связанного контента, содержащего веб-приложение и предназначенного для запуска на сервере. Однако разработчики Jenkins любезно упростили его использование с помощью ряда системных пакетов, которые позволяют Jenkins работать как контролируемая служба.

Пакет Jenkins доступен для семейства дистрибутивов Red Hat, в которое входят операционные системы CentOS. Тем не менее, CentOS 7, в частности, является привередливой породой, поэтому она требует другого подхода. Операции, которые работают в других операционных системах на основе Red Hat, даже в других версиях CentOS, имеют тенденцию работать по-другому в CentOS 7, и возникающие в результате потенциальные ошибки могут быть трудны для отладки. Поскольку пакет Jenkins является общим для Red Hat, а не дифференцированным для CentOS, вероятность возникновения проблем выше, чем для других ОС. По этой причине мы не будем запускать Jenkins через этот пакет. Это оставляет нам файл WAR, работающий через Java, что гораздо менее удобно, поскольку нам требуется вручную запускать и останавливать его через Java.

К счастью, есть способ обойти это, и даже без пакета мы можем работать с CentOS, чтобы он относился к Jenkins как к сервису.

Шаг 1 — Установка Дженкинса

Существует два основных способа установки Jenkins в CentOS: через репозиторий или репозиторий и через файл WAR. Установка из репозитория является предпочтительным методом, и это то, что мы опишем в первую очередь.

Вам понадобится Java для запуска Jenkins (любой метод), поэтому, если на вашем сервере еще нет Java, установите ее с помощью:

  1. sudo yum -y install java

В общем, если вам нужен сервис или инструмент, но вы не уверены, какой пакет его предоставляет, вы всегда можете проверить, выполнив:

  1. yum whatprovides service

Где service – это название службы или инструмента, который вам нужен.

Установка из репозитория

Теперь выполните следующее, чтобы загрузить Jenkins из репозитория Red Hat:

  1. sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

Инструмент wget загружает файлы в имя файла, указанное после флага \O (это заглавная буква O, а не ноль).

Затем импортируйте ключ проверки с помощью RPM-менеджера пакетов:

  1. sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Наконец, установите Jenkins, запустив:

  1. sudo yum install jenkins

Вот и все! Теперь вы сможете запустить Jenkins как службу:

  1. sudo systemctl start jenkins.service

После запуска службы вы можете проверить ее статус:

  1. sudo systemctl status jenkins.service

Это даст вам довольно длинное чтение с большим количеством информации о том, как процесс запустился и что он делает, но если все прошло хорошо, вы должны увидеть две строки, похожие на следующие:

Loaded: loaded (/etc/systemd/system/jenkins.service; disabled)
Active: active (running) since Tue 2015-12-29 00:00:16 EST; 17s ago

Это означает, что службы Jenkins завершили запуск и работают. Вы можете подтвердить это, посетив веб-интерфейс, как и раньше, по адресу http://ip-of-your-machine:8080.

Точно так же вы можете остановить службу:

  1. sudo systemctl stop jenkins.service

или перезапустите его:

  1. sudo systemctl restart jenkins.service

Дополнительную информацию об управлении службами с помощью systemctl можно найти в статье How To Use Systemctl to Manage Systemd Services and Units.

Установка из файла WAR

Если вы по какой-либо причине решите не устанавливать Jenkins через репозиторий, вы можете добиться тех же результатов с помощью файла WAR, хотя это потребует дополнительных усилий.

Давайте сначала загрузим файл Jenkins WAR на сервер и запустим его без излишеств, чтобы убедиться, что основы работают правильно и без проблем.

Самая последняя версия Дженкинса в любой момент времени доступна на зеркале Дженкинса. Вы можете использовать любой инструмент, который вам нравится, чтобы загрузить этот файл. В следующем методе используется инструмент командной строки под названием wget:

  1. wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war

Когда будете готовы, запустите Jenkins через Java:

  1. java -jar jenkins.war

Вы должны увидеть вывод в консоли, указывающий, что Jenkins начал работать:

...
INFO: Jenkins is fully up and running
...

Теперь вы можете получить доступ к интерфейсу через браузер (http://ip-of-your-machine:8080).

Убедившись, что Jenkins работает успешно, завершите процесс, чтобы вы могли внести в него изменения, чтобы он мог работать как служба, как описано на следующем шаге. Чтобы завершить активный процесс, нажмите CTRL-C.

Шаг 2 — Запуск Jenkins как службы

Если в предыдущем разделе вы решили не устанавливать Jenkins через репозиторий, а вместо этого использовали файл WAR, вы еще не сможете использовать Jenkins как стандартный сервис. Если вы использовали репозиторий, пропустите этот шаг.

Когда мы настроим Jenkins следующим образом, он по-прежнему будет работать через Java, но вы сможете обращаться с ним как со службой, запуская и останавливая его и позволяя ему работать в фоновом режиме. Сервис по сути будет работать как обертка.

Во-первых, убедитесь, что загруженный файл WAR находится в месте, удобном для длительного хранения и использования:

  1. sudo cp jenkins.war /usr/local/bin/jenkins.war

Затем перейдите в каталог /etc/systemd/system/ и создайте новый файл с именем jenkins.service. В следующей демонстрации используется редактор nano, но, естественно, вы можете использовать любой инструмент редактирования, который пожелаете.

  1. cd /etc/systemd/system/
  2. sudo nano jenkins.service

Теперь добавьте следующие строки в новый файл jenkins.service. Через мгновение мы рассмотрим, что именно делают эти строки.

[Unit]
Description=Jenkins Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /usr/local/bin/jenkins.war
Restart=on-abort

[Install]
WantedBy=multi-user.target

Если вы уже видели файлы конфигурации (INI-файлы или подобные), вы узнаете используемую здесь структуру. Текст в квадратных скобках обозначает заголовок раздела. Это означает, что, например, [Service] объявляет раздел под названием \Service, и все назначения ниже него содержат соответствующую информацию, которую система затем узнает, как найти и связать с заголовком раздела. .

Файл конфигурации, включая этот, обычно представляет собой текстовый файл, что означает, что он не имеет внутреннего значения для компьютера. Скорее текстовый файл будет проанализирован каким-то процессом, и этот процесс будет использовать заголовки и другую информацию, чтобы найти путь. По этой причине технически не имеет значения, как устроен тот или иной конфигурационный файл — лишь бы программа, которая его читает, могла понять, что все это значит.

Первый раздел, Unit, содержит только две директивы конфигурации. Первый — просто имя. Это может быть любое имя, которое вы хотите, но в идеале оно должно уникально идентифицировать новый процесс. Вторая директива указывает, какая служба, если таковая имеется, необходима для запуска текущей службы.

В следующем разделе директива Type позволяет вам выбрать, какой тип запуска будет использовать эта служба. Значение simple указывает, что процесс, указанный в более поздней директиве ExecStart, будет основным процессом создаваемой службы. На самом деле, type не нужен, так как simple предполагается, когда тип не указан, но мы оставляем его для ясности.

User указывает, какой пользователь имеет контроль над этим процессом, а Restart используется для указания того, что в этом случае, если процесс завершится, но код выхода указывает на ошибку, служба быть перезапущен. Это полезно для поддержания непрерывности службы в случае непредвиденных сбоев.

Как уже упоминалось, ExecStart — это директива, в которой мы указываем, какой процесс должен стать основным действием службы. Эта директива представляет собой основную оболочку для Jenkins — служба будет запускать WAR через Java, а не рассматривать его как процесс переднего плана.

Наконец, в разделе Install multi-user.target указывает цель, называемую уровнем выполнения до CentOS 7. Он дает системе представление о том, какие ресурсы необходимо предоставить. эта услуга и какая интенсивность потребуется пользователю.

Как только ваш файл будет создан и сохранен, вы сможете запустить новую службу Jenkins!

Когда будете готовы, запустите:

  1. sudo systemctl daemon-reload

Это применяет изменения, которые вы внесли в этот блок (фактически, он применяет изменения ко всем без исключения блокам, которые были изменены).

Теперь вы сможете запустить Jenkins как службу:

  1. sudo systemctl start jenkins.service

После запуска службы вы можете проверить ее статус:

  1. sudo systemctl status jenkins.service

Это даст вам довольно длинное чтение с большим количеством информации о том, как процесс запустился и что он делает, но если все прошло хорошо, вы должны увидеть две строки, похожие на следующие:

Loaded: loaded (/etc/systemd/system/jenkins.service; disabled)
Active: active (running) since Tue 2015-12-29 00:00:16 EST; 17s ago

Это означает, что службы Jenkins завершили запуск и работают. Вы можете подтвердить это, посетив веб-интерфейс, как и раньше, по адресу http://ip-of-your-machine:8080.

Точно так же вы можете остановить службу:

  1. sudo systemctl stop jenkins.service

или перезапустите его:

  1. sudo systemctl restart jenkins.service

Дополнительную информацию об управлении службами с помощью systemctl можно найти в статье How To Use Systemctl to Manage Systemd Services and Units.

Шаг 3 — Создание пользователей

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

Jenkins предоставляет параметры безопасности и управления ролями, полезные для контроля доступа и определения действий пользователя. Мы остановимся на нем кратко, чтобы представить эти концепции. Чтобы перейти к этим настройкам, вернитесь в интерфейс Jenkins через браузер после запуска службы (http://ip-of-your-machine:8080). Вы увидите меню слева — выберите «Управление Дженкинсом» внутри него. Это приведет вас на страницу, содержащую ряд параметров для настройки. Вы также можете заметить предупреждение вверху: Unsecured Jenkins позволяет любому пользователю в сети запускать процессы от вашего имени. Подумайте хотя бы о включении аутентификации, чтобы предотвратить неправильное использование. Это директива Дженкинса, чтобы заставить вас ввести в вашу систему некоторый элемент безопасности.

Первый шаг, который нужно сделать здесь, — перейти к настройке глобальной безопасности в верхней части списка ссылок на странице управления Jenkins. Установите флажок «Включить безопасность», чтобы открыть группу параметров для этой цели. Существует множество способов настроить безопасность Jenkins — вы можете прочитать подробное объяснение в разделе «Стандартная настройка безопасности» документации по использованию Jenkins.

Самый простой из этих вариантов, который мы рассмотрим сегодня, заключается в том, что Jenkins использует собственную базу данных для хранения пользовательских конфигураций. В разделе «Контроль доступа», который появился, когда мы установили флажок, выберите собственную базу данных пользователей Jenkins. Вкратце, другие варианты заключаются в том, чтобы связать Jenkins с существующими пользователями и группами Unix, использовать вход в систему для всей организации (опция LDAP) или разрешить сервлету Java управлять доступом. Другие параметры можно добавить с помощью плагинов (мы немного обсудим плагины).

Следует ли разрешать новым пользователям регистрироваться, во многом зависит от ваших собственных потребностей. В целом, однако, стоит ограничивать доступ, а разрешение пользователям регистрироваться по своему желанию может обеспечить уровень открытости, который потенциально может быть опасным. Чтобы ограничить это, снимите флажок Разрешить пользователям регистрироваться. После отключения этого параметра только администраторы могут создавать новые учетные записи. Через мгновение вы предоставите административные привилегии для пользователя, которого создадите, и мы также подробно расскажем о добавлении новых пользователей.

В разделе «Авторизация» выберите параметр «Безопасность на основе матрицы». Это позволяет выполнить тонкую настройку элементов управления, не прибегая к сложным настройкам. Вы увидите, что пользователь с именем Anonymous уже присутствует. Анонимный пользователь — это любой человек из любого места, даже если он не вошел в систему, поэтому по умолчанию анонимный пользователь не имеет никаких возможностей. Поскольку это первоначальная настройка экземпляра Jenkins, вы должны предоставить этому пользователю полные разрешения: сейчас нет других пользователей, кроме анонимных, и вы не вошли в систему, поэтому отключение анонимных разрешений фактически отключит вас от доступа к Jenkins. совсем.

Используйте маленькую кнопку справа от строки Anonymous, чтобы выбрать все разрешения. Затем используйте поле ввода «Пользователь/группа для добавления», чтобы указать нового пользователя, для которого нужно добавить разрешения. Обратите внимание, что на самом деле это не создает пользователя, а указывает разрешения для пользователя, которого вы вскоре создадите.

Обычно вы сначала создаете нового пользователя, а затем указываете для него разрешения в этой части формы. Поскольку пользователя еще не существует, вы настроите разрешения, а затем создадите пользователя.

Введите имя пользователя и нажмите Добавить. Из-за известной ошибки рекомендуется писать имена пользователей в нижнем регистре. Предоставьте новому пользователю все разрешения так же, как вы сделали это для анонимного пользователя. По сути, это устанавливает нового администратора.

Когда вы закончите, нажмите «Применить», а затем «Сохранить».

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

Когда вы закончите, вы должны автоматически войти в систему.

Вернитесь на страницу безопасности (Управление Jenkins -> Настройка глобальной безопасности) и прокрутите вниз до матрицы безопасности. Теперь, когда вы создали пользователя с правами администратора, вы можете ограничить разрешения для анонимного пользователя. Отмените выбор всех разрешений в анонимной строке, а затем нажмите «Применить и сохранить». Теперь ваш новый пользователь будет единственным пользователем с доступом к Jenkins.

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

Вернитесь на страницу «Управление Jenkins», прокрутите вниз почти до конца и нажмите «Управление пользователями». Слева вы увидите боковую панель со ссылками; нажмите «Создать пользователя». Введите информацию для нового пользователя так же, как вы создали первого пользователя, и нажмите «Зарегистрироваться». Вы будете перенаправлены к списку пользователей, который теперь будет включать нового пользователя. У этого пользователя не будет разрешений, поэтому вам нужно будет повторить процесс разрешений, перейдя к настройке глобальной безопасности, используя поле «Пользователь/группа для добавления», чтобы добавить строку в матрицу, указав разрешения и нажав «Применить и сохранить». Для простоты, если вам нужно создать несколько пользователей, создайте их всех, прежде чем переходить к добавлению разрешений.

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

Как правило, следующим шагом является назначение ролей вашим пользователям, контролируя их точные возможности. Мы не будем вдаваться в подробности в этой статье, но это хорошая статья на эту тему. Обязательно сохраните изменения после назначения ролей.

Шаг 4 — Установка плагинов

После того, как Jenkins установлен, минимально настроен и достаточно защищен, пришло время настроить его под свои нужды. Как выяснилось при первой установке, у Дженкинса относительно мало способностей. На самом деле Дженкинс олицетворяет кредо многих разработчиков программного обеспечения: делать что-то одно, и делать это хорошо. Дженкинс «делает одну вещь», выступая в качестве посредника для ваших программных проектов, и «делает это хорошо», предоставляя плагины.

Плагины — это надстройки, которые позволяют Jenkins взаимодействовать с разнообразным внешним программным обеспечением или иным образом расширяют его врожденные возможности. Как и во многих других областях установки Jenkins, точные подключаемые модули, которые вы устанавливаете, будут в значительной степени зависеть от ваших проектов.

В главном меню слева в Jenkins нажмите «Управление Jenkins» -> «Управление плагинами». Страница, на которую вы попадаете, показывает плагины, которые уже установлены, но нуждаются в обновлении — вы можете легко сделать это, выбрав плагины, которые вы хотите обновить, и нажав кнопку внизу.

Если вы нажмете «Доступно» на этой странице, вы попадете в колоссальный список доступных плагинов. Очевидно, что вы не хотите устанавливать все возможные плагины, поэтому следующий вопрос — как выбрать те, которые вам понадобятся.

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

Этот список, безусловно, заслуживает внимания, но независимо от вашего проекта, есть несколько плагинов, которые вы почти наверняка должны включить. Вот некоторые из них — некоторые общие, некоторые конкретные:

  1. Управления источником Git, SVN и Team Foundation Server являются одними из наиболее распространенных систем управления версиями. Все три из них имеют плагины в списке Jenkins, а другие существуют и для менее распространенных систем. Если вы не знаете, что такое система управления версиями, вам действительно следует узнать об этом и начать включать ее в свои проекты. Обязательно установите плагин для вашей системы контроля версий, чтобы Jenkins мог запускать через него сборки и контролировать тесты.
  2. Копировать артефакт Этот плагин позволяет копировать компоненты между проектами, облегчая настройку похожих проектов, если у вас нет настоящего менеджера зависимостей.
  3. Дросселирование одновременных сборок Если у вас запущено несколько сборок, которые могут привести к конфликту (из-за общих ресурсов и т. д.), это легко позволит вам решить эту проблему.
  4. Средство просмотра графика зависимостей Отличный плагин, обеспечивающий графическое представление зависимостей вашего проекта.
  5. Использование диска Дженкинса Jenkins может быть довольно легким, но это не всегда можно сказать о проектах, с которыми он интегрируется. Этот плагин позволяет вам определить, сколько ваших вычислительных ресурсов потребляет любое из ваших заданий.
  6. Инструменты сборки Если ваш проект большой, вы, вероятно, используете диспетчер сборки, такой как Maven или Ant. Jenkins предоставляет плагины для многих из них, как для привязки их основных функций, так и для добавления контроля над отдельными этапами сборки, конфигурацией проекций и многими другими аспектами ваших сборок.
  7. Составление отчетов Хотя Jenkins предоставляет свои собственные отчеты, вы можете расширить эту функциональность для многих инструментов отчетности.
  8. Дополнительная аутентификация Если возможности Jenkins по умолчанию для обеспечения безопасности вас не устраивают, существует множество плагинов для расширения этого — от входа в систему Google до активного каталога и простых модификаций существующей безопасности.

В общем, если вашему проекту требуется определенный инструмент, поищите на странице со списком плагинов на вики его имя или ключевое слово, касающееся его функции — скорее всего, такой плагин существует, и это эффективный способ его найти.

После того, как вы выбрали те плагины, которые хотите установить на вкладке «Доступно», нажмите кнопку с пометкой «Загрузить сейчас и установить после перезагрузки».

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

Шаг 5 — Создание простого проекта

Есть много интересных применений, которые вы можете получить от Jenkins, и даже игра с настройками может быть информативной. Однако для начала полезно понять, как настроить базовую задачу. Следуйте примеру в этом разделе, чтобы узнать, как создать и запустить простое задание.

На домашней странице интерфейса Jenkins выберите New Item. Введите имя и выберите проект Freestyle.

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

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

Это предоставит вам текстовое поле, в котором вы можете добавить любые команды, которые вам нужны. Используйте это для выполнения различных задач, таких как обслуживание сервера, контроль версий, чтение настроек системы и т. д.

Мы будем использовать этот раздел для запуска скрипта. Опять же, в демонстрационных целях, мы будем предельно простыми.

Если вы хотите, вы также можете добавить последующие шаги сборки. Имейте в виду, что если какой-либо сегмент или отдельный скрипт выйдет из строя, вся сборка выйдет из строя.

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

Сохраните проект, и вы попадете на страницу обзора проекта. Здесь вы можете увидеть информацию о проекте, в том числе историю его создания, хотя на данный момент этого не будет, так как это совершенно новый проект.

Нажмите Build Now слева, чтобы начать сборку. Вы на мгновение увидите изменение истории сборки, чтобы показать, что она работает. Когда закончите, значок состояния снова изменится, чтобы показать вам результаты в краткой форме.

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

Ссылка «Вывод консоли» на этой странице особенно полезна для подробного изучения результатов задания — она предоставляет информацию о действиях, предпринятых во время сборки, и отображает все выходные данные консоли. Особенно после неудачной сборки это может быть полезным местом для поиска.

Если вы вернетесь домой к Дженкинсу, вы увидите обзор всех проектов и их информацию, включая статус (в данном случае только один):

Статус обозначается двумя способами: значком погоды (на панели управления главной страницы, как показано выше) и цветным шариком (на странице отдельного проекта, как показано ниже). Значок погоды особенно полезен, поскольку он показывает запись нескольких сборок на одном изображении.

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

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

Вы также можете перестроить проект отсюда, щелкнув (Build Now).

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

Заключение

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

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

Кроме того, существует множество шаблонов для распространенных типов проектов, таких как Drupal, поэтому велика вероятность, что вам даже не нужно будет настраивать все с нуля. Так что иди туда, узнай о Дженкинсе все, что посмеешь, и сделай свою жизнь намного проще!