Используемые термины: Jenkins , CI/CD .
В данной инструкции мы рассмотрим настройку Jenkins и Subversion (SVN) для автоматического запуска процесса CI/CD при отправке коммита. Предполагается, что у нас уже установлены и Jenkins и SVN — соответствующие инструкции будут приведены в конце данного руководства.
Информацию разобьем на следующие разделы:
Необходимо заранее:
Рассмотрим эти процессы по отдельности.
В веб-интерфейсе Jenkins переходим в разделы Настроить Jenkins :
Управление плагинами :
На вкладке Доступные вводим название subversion и выбираем его для установки:
После вводим название Build Authorization Token Root , и также выбираем его для установки:
Внизу кликаем по Download now and install after restart :
Ждем окончания загрузки плагина. После ставим флажок Перезапустить Jenkins по окончанию установки и отсутствии активных задач или в удобное время, перезагружаем дженкинс:
systemctl restart jenkins
На сервере SVN вводим:
htpasswd -m /etc/apache2/dav_svn.passwd jenkins
* данная команда создаст пользователя jenkins в файле /etc/apache2/dav_svn.passwd . В вашем случае путь до файла может быть другим.
После вводим дважды пароль:
New password:
Re-type new password:
Adding password for user jenkins
Переходим по ссылке Создать Item :
Вводим название для объекта и выбираем Создать задачу со свободной конфигурацией :
* мы дали название svn-integration .
Кликаем ОК .
На следующем шаге в подразделе Управление исходным кодом выбираем Subversion . В раскрывшейся форме вводим:
Остальные опции можно не трогать:
* в нашем примере предполагается, что исходники Jenkins будет забирать по адресу http://192.168.0.20/svn/repo1/ . Также мы выбрали для аутентификации учетную запись jenkins (при первой конфигурации ее не будет — добавляем, кликнув по Add ).
Теперь переходим к разделу Триггеры сборки и ставим галочку для Trigger builds remotely (e.g., from scripts) . После придумываем в вводим токен:
При желании сгенерировать токен, можно в Linux ввести команду:
date +%s | sha256sum | base64 | head -c 32 ; echo
В подразделе Build Steps можно выбрать выполнение команды shell и ввести любую команду (например, ls -l ):
* в рамках данной инструкции у нас нет задачи собрать реальное приложение. Главное — настроить интеграцию репозитория Subversion и Jenkins.
Нажимаем Сохранить .
Попробуем проверить работоспособность нашего задания. Слева в меню кликаем по Собрать сейчас :
Немного ждем. Если все хорошо, мы увидим, примерно, такой вывод:
Задание выполнено успешно. Попробуем кликнуть на него и перейти в раздел Вывод консоли :
Мы должны увидеть содержимое нашего репозитория:
* в моем примере в репозитории был всего один файл test.txt .
Давайте для начала протестируем дистанционный запуск задания. На сервере SVN введем такую команду:
curl http://192.168.0.15:8080/buildByToken/build?job=svn-integration&token=OTZiZThiMWM0NGQ2NzlkZjdkMTFjNGM1
* в данном примере предполагается, что сервер с jenkins работает по адресу http://192.168.0.15:8080 . В опции job мы передаем название нашего проекта ( svn-integration ), а OTZiZThiMWM0NGQ2NzlkZjdkMTFjNGM1 — токен, который мы придумали при настройке задания.
На сервере Jenkins в списке заданий мы должны увидеть еще одну сборку:
Теперь на сервере Subversion перейдем в каталог с нашим проектом, который мы интегрируем с Jenkins:
cd /var/lib/svn/repo1
* в моем примере он расположен в директории /var/lib/svn/repo1 .
Создадим в каталоге hooks файл post-commit :
vi hooks/post-commit
#!/bin/bash
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
curl http://192.168.0.15:8080/buildByToken/build?job=svn-integration&token=OTZiZThiMWM0NGQ2NzlkZjdkMTFjNGM1
* скрипт post-commit позволяет выполнить необходимые команды после того, как мы выполнили коммит в репозиторий. В нашем примере мы выполняем запуск задания svn-integration , отправляя запрос в Jenkins.
Созданный файл должен иметь права на выполнение — выполним команду:
chmod +x hooks/post-commit
Готово. Попробуем выполнить коммит в наш проект. После переходим в веб-интерфейс Jenkins на страницу задания. Мы должны увидеть еще одну сборку (третью по счету):
Наша задача по интеграции выполнена.
Данные инструкции также могут быть полезными:
1. Установка Jenkins на CentOS .
2. Установка Jenkins на Ubuntu .
3. Использование pipeline в Jenkins .
4. Установка и настройка сервера SVN (Subversion) на Linux Ubuntu .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…