Какие плагины и функции плагинов мне нужно установить, чтобы моя работа Jenkins запускала сборку в любое время, когда код привязан к проекту SVN?
Я установил как стандартный плагин SVN, так и плагин тегов SVN, но я не вижу никаких новых функций, позволяющих настраивать триггер.
svn
continuous-integration
jenkins
jenkins-plugins
IAmYourFaja
источник
источник
Ответы:
Есть два способа сделать это:
Первоначально рекомендую первый вариант, поскольку он прост в реализации. Когда вы достигнете совершенства в своих процессах сборки, переключитесь на второй.
Опросите репозиторий, чтобы узнать, произошли ли изменения. Это может «пропустить» фиксацию, если две фиксации происходят в пределах одного интервала опроса. Описание того, как это сделать, здесь. Обратите внимание на четвертый снимок экрана, на котором вы настраиваете для задания «триггер сборки» на основе опроса репозитория (с конфигурацией, подобной crontab).
Настройте свой репозиторий так, чтобы в нем был обработчик после фиксации, который уведомляет Дженкинса о необходимости запуска сборки. Описание того, как это сделать, здесь , в разделе «хуки после фиксации».
Функция SVN Tag не является частью опроса, она является частью продвижения текущей «головы» исходного кода в тег для создания моментального снимка сборки. Это позволяет вам ссылаться на сборку Jenkins # 32 как на SVN tag / tags / build-32 (или что-то подобное).
источник
Вам нужен только один плагин - плагин Subversion.
Затем просто перейдите в Jenkins → job_name → Build Trigger section → (i) Триггерная сборка удаленно (то есть из скриптов). Токен аутентификации: Token_name
Перейдите в каталог хуков сервера SVN, а затем после выполнения следующих команд:
cp post-commit.tmpl post-commit
chmod 777 post-commit
chown -R www-data:www-data post-commit
vi post-commit
Примечание: все строки должны быть прокомментированы. Добавьте последнюю строку ниже.
Синтаксис (для пользователей Linux):
Синтаксис (для пользователя Windows):
источник
Я сделал инструмент с использованием Python с некоторым bash для запуска сборки Jenkins. По сути, вам нужно собрать эти два значения из пост-фиксации, когда фиксация попадает на сервер SVN:
Затем вы используете «svnlook dirs-changed $ 1 -r $ 2», чтобы получить путь, который только что зафиксирован. Затем вы можете проверить, какой репозиторий вы хотите создать. Представьте, что у вас есть сотни тысяч проектов. Вы не можете проверить весь репозиторий, верно?
Вы можете проверить мой скрипт на GitHub .
источник
Вы можете использовать ловушку после фиксации.
Поместите скрипт перехвата после фиксации в
hooks
папку, создайте наwget_folder
вашем диске C: \ и поместитеwget.exe
файл в эту папку. Добавьте следующий код в файл с именемpost-commit.bat
где Test = название задания
echo
используется для просмотра значения, и вы также можете добавить егоexit 2
в конце, чтобы узнать о проблеме и о том, запущен ли скрипт ловушки после фиксации или нет.источник