У нас есть репозиторий Subversion в этом поместье:
http://svn.vegicorp.net/svn/toast/api/trunk
http://svn.vegicorp.net/svn/toast/api/1.0
http://svn.vegicorp.net/svn/toast/data/trunk
http://svn.vegicorp.net/svn/toast/data/branches/1.2
http://svn.vegicorp.net/svn/toast/data/branches/1.3
Я установил сборку Jenkins Multi-Pipeline для всего проекта toast, включая все подпроекты - каждый подпроект представляет собой файл jar. Я хочу, чтобы Дженкинс запускал новую сборку каждый раз при изменении любого файла в одном из тостовых проектов. Этот проект следует перестроить. Таким образом, если мы создадим новый подпроект в toast или новую ветку в одном из подпроектов toast, Дженкинс автоматически создаст для этого новую сборку.
Вот моя установка Jenkins Multi-Branch:
Источники веток
Subversion
- База репозитория проекта:
http://svn.vegicorp.net/svn/toast
- Учетные данные:
builder/*****
- Включить ветви:
*/trunk, */branches/*
- Исключить ветви:
*/private
- Стратегия в отношении свойств: Все ветви имеют одинаковые свойства
Конфигурация сборки
- Режим: Автор Jenkinsfile
Триггеры сборки (Не выбрано)
- Триггер строит удаленно (например, из скриптов) Справка по функции: Триггер * строит удаленно (например, из скриптов)
- Периодическая сборка Справка по функции: Периодическая сборка
- Сборка при продвижении другого проекта
- Справка по триггеру обновления зависимостей Maven для функции: Триггер обновления зависимостей Maven
- Периодически, если иначе не запускать
Обратите внимание, что список Триггеры сборки не включает SCM опроса. Изменения в репозитории не вызывают сборки. Jenkinsfiles
находятся в корне каждого подпроекта. Если я принудительно переиндексирую, будут построены все измененные подпроекты и найдены все новые ветки. Изначально я проверял Периодически и переиндексировал каждую минуту, чтобы уловить изменения, но это глупо и, похоже, заставляет Дженкинса потреблять память.
Запуск сборки при изменении SCM должен быть довольно простым, но я не вижу для этого параметра конфигурации, как для стандартных заданий. Я также не могу войти в подпроекты и настроить их для запуска сборки.
Должно быть что-то действительно простое, чего мне не хватает.
Конфигурация:
- Дженкинс 2,19
- Трубопровод 2.3
- API конвейера: 2.3
- Конвейер Groovy: 2.17
- Работа на конвейере: 2,6
- Плагин Pipeline REST API: 2.0
- Общие библиотеки Groovy конвейера: 2.3
- Конвейер: плагин Stage View: 1.7
- Конвейер: поддержка API 2.2
- Плагин SCM API: 1.2