Jenkins Git Publisher по логам отрабатывает git push SUCCESS но ничего не пушится


#1

Добрый день!

Настраиваю тестовую сборку по пособию. Столкнулся со следующей проблемой:
Шаг послесборочной операции выполняет команду git push, в ту же секунду выдает SUCCESS, но по факту ничего не запушилось. Приходится локально вызывать команду из git bash и все тогда нормально.

У меня следующие настройки: сервер Jenkins и GitLab расположен на linux машине, нода работает на windows машине. В настройках дженкинса указан путь к git.exe на ноде. В настройках таска указан путь к репозиторию на сервере gitlab.

На самом деле, я так понимаю, в таске нужно указывать локальный каталог репозитория, так как пушить нужно с него. В таком случае начинаются различного рода ошибки: fetch first и прочие. Я пробовал в том числе выполнить после синхронизации и его - не помогает.

Может, кто-то сталкивался с такой проблемой, подскажите куда копать?


#2

Прикладывайте скрины


#3

это pipeline?


#4

Нет, это задача со свободной конфигурацией.


#5


#6


#7


#8


#9

(ограничение для новых пользователей не позволило прикрепить все изображения в первое сообщение)

Собственно, как я говорил, локальный репозиторий находится на удаленной машине, где запущена нода дженкинса. В настройках я указал путь к исполняемому файлу git.exe, подразумевая windows сервер - поэтому и ругается. Конечно, я пробовал с настройками по умолчанию - тот же результат.

Тем не менее в логах гита в локальном репозитории: .git/logs/HEAD я вижу отметку:

d17f9f113d818c91ca965689991b32e83a53886f 978851b4359823ce36a04c32afa934b2a1f43f43 jenkins <jenkins@******.ru> 1562051185 +1000 commit: Улучшено безделье.

Дженкинс отметился как раз с последним коммитом.


#10

вообще настройка в глобальных инструментах должна выглядеть так:

Проверьте, что на ноде и мастере доступна команда git из консоли

 git --version

#11

у вас не хватает additional behavior, который делал бы checkout to specific branch. без него гит-паблишер не работает.


#12

если чуть подробнее - у вас в настройках гит паблишера написано пушить master-бранч, но при чекауте вы делаете detached head. потом гитсинком идет коммит, но он не привязан к какой-либо ветке.

после окончания сборки гит-паблишер пушит мастер-бранч, с которым ничего не происходило, и честно рапортует об успешности (и бесполезности) данной операции.

емнип, в пособии про это было написано, возможно не так подробно.


#13

Всем спасибо!

Помог Additional behavior: “Check out to a sub-directory”.
Но я до сих пор не понимаю почему :slight_smile:

По логике действительно должен был быть чекаут на ветку, но увы…