Jenkins CI: как запускать сборки на svn commit

какие плагины и функции плагинов мне нужно установить, чтобы моя работа Дженкинса запускала сборку в любое время, когда код фиксируется в проекте SVN?

Я установил как стандартный плагин SVN, так и плагин тегов SVN, но я не вижу никаких новых функций, которые позволяют настраивать триггер.

4 ответов


есть два способа сделать это:

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

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

  2. настройте свой репозиторий на крюк 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, а затем после запуска ниже команды:

  1. cp post-commit.tmpl post-commit
  2. chmod 777 post-commit
  3. chown -R www-data:www-data post-commit
  4. 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

вы можете использовать пост-коммит Хук.

поместите сценарий крючка после фиксации в