Jenkins CI: как запускать сборки на svn commit
какие плагины и функции плагинов мне нужно установить, чтобы моя работа Дженкинса запускала сборку в любое время, когда код фиксируется в проекте SVN?
Я установил как стандартный плагин SVN, так и плагин тегов SVN, но я не вижу никаких новых функций, которые позволяют настраивать триггер.
4 ответов
есть два способа сделать это:
Я рекомендую первый вариант изначально, из-за его простоты реализации. Как только вы созреете в своих процессах сборки, переключитесь на второй.
опросите репозиторий, чтобы узнать, произошли ли изменения. Это может "пропустить" фиксацию, если две фиксации входят в один и тот же интервал опроса. описание того, как это сделать здесь, обратите внимание на четвертый скриншот, где вы настраиваете на работу " build триггер " на основе опроса репозитория (с конфигурацией, подобной crontab).
настройте свой репозиторий на крюк post-commit, который уведомляет Дженкинса, что сборка должна начаться. описание того, как это сделать здесь, в разделе "крючки после фиксации"
функция тега SVN не является частью опроса, она является частью продвижения текущей "головки" исходного кода к тегу, чтобы сделать снимок сборки. Это позволяет см. Jenkins buid #32 как SVN tag/tags / build-32 (или что-то подобное).
Я сделал инструмент, используя Python с некоторым bash для запуска сборки Дженкинса. В основном вам нужно собрать эти два значения из post-commit, когда фиксация попадает на сервер SVN:
REPOS=""
REV=""
затем вы используете "svnlook dirs-changed $1-r $2", чтобы получить путь, который только что зафиксирован. Затем вы можете проверить, какой репозиторий вы хотите построить. Представьте, что у вас сотни тысяч проектов. Вы не можете проверить весь репозиторий, верно?
вы можете проверить мой сценарий от GitHub.
вам нужен только один плагин, который является плагином Subversion.
затем просто перейдите в Jenkins → job_name → Создать Триггер раздел → (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):
/usr/bin/curl http://username:API_token@localhost:8081/job/job_name/build?token=Token_name
синтаксис (для пользователей Windows):
C:/curl_for_win/curl http://username:API_token@localhost:8081/job/job_name/build?token=Token_name