Моя установка - сервер Windows XAMPP, с включенным cURL и установленными Git и Hudson. Хадсон опрашивает Git каждую минуту, чтобы найти изменения, и если он их находит, он создает сборку. Я использую эту сборку в качестве сервера тестирования. Это отлично работает.
Я бы хотел установить хук пост-получения в моем центральном удаленном репозитории, который запускает функцию принудительной сборки Hudson.
Я создал файл post-receive под названием "post-receive" в каталоге ловушек в моем центральном репозитории Git, который отправляется из локальных веток разработчиков. Каждый из них толкает к своей собственной ветви в центральном хранилище. Я хочу запускать пост-получение сразу после каждого нажатия, вместо того, чтобы проводить опрос Хадсона Git каждую минуту.
Когда я открываю оболочку для удаленного сервера и запускаю «post-receive» в папке hooks, она запускается. Он просто не вызывается, когда люди нажимают на него из локальных копий репозитория в центральный.
Может быть, я не объясняю это правильно, но это то, как я понимаю Git.
Код пост-получения состоит из двух строк:
#!/bin/sh
curl http://myserver.com:8080/hudson/job/myjobname/build?token=mytoken
Опять же, когда я открываю оболочку и запускаю ее, она работает, но когда кто-то нажимает на нее, ничего не происходит, пока не пройдет минута или меньше, Хадсон понимает, что Git был изменен, и затем он создает.
Я с удовольствием уточню, если это будет необходимо. Любая помощь с благодарностью.
РЕДАКТИРОВАТЬ: После игры с этим, я чувствую, что, возможно, пост-получение не выполняется, потому что ссылки не обновляются что-то? В документации git написано
Он выполняется в удаленном хранилище один раз после обновления всех ссылок.
Означает ли это, что если ничего не обновится, оно не будет выполнено? И если это так, я почти уверен, что все обновляется, так что это не должно применяться.
Вот мой процесс:
Сделайте правки локально.
Зафиксируйте изменения.
Нажмите из моей головы в удаленную ветвь, которая называется mybranch (не ветка master, которая извлечена)
Это тот момент, когда я хочу, чтобы мой хук выполнил.