мерзавцы и как они работают - PullRequest
8 голосов
/ 11 ноября 2009

Так что я пытаюсь заставить Хадсона строить с помощью хука пост-получения. В моем локальном git-репо я установил post-receive.sample просто post-receive, chmod 755 и добавил в строку:

/usr/bin/curl -u user:secret http://localhost:8080/hudson/job/MyJob/build?token=secondsecret

Если я форсирую сборку, hudson обновляет код, но вот что я не понимаю: хуки в этом репо НЕ имеют .Sample после них, как они делают локально, и пост-получение в hudson репо не имеет этой строки кода выше. Что здесь происходит и как хуки интегрируются во весь процесс git? Нужно ли менять этот крючок на удаленном репо? Я бы подумал, что этого достаточно, чтобы сделать это локально и подтолкнуть, чтобы любой, кто выбирает из этого репо, получил новые хуки. Я не могу понять, как репо другого пользователя будет иметь другие хуки.

Ответы [ 2 ]

16 голосов
/ 11 ноября 2009

У вас есть два варианта:

  1. Поместите хук post-receive на сервер и дайте серверу запустить curl.
  2. Поместите post-commit хук в локальный репозиторий, и пусть ваш локальный ящик запустится.

Поскольку ваше задание на сборку, вероятно, будет извлекать код для сборки из репозитория на сервере , имеет смысл только вариант 1. В случае 2. задание на сборку, вероятно, должно было бы получить код из вашего локального ящика, и это, вероятно, не то, что вам нужно.

Нельзя размещать хуки на сервере , используя git push. Вы (или кто-то с соответствующими разрешениями) должны сделать это, вручную войдя на сервер и локально изменив файлы сценариев перехвата.

11 голосов
/ 11 ноября 2009

Хуки не передаются через репозиторий. Вам необходимо установить крюк на удаленной стороне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...