Могу ли я использовать команду git в конвейере доставки, если на агенте jenkins git установлен по другому пути, чем на master?

У меня есть следующий сценарий.

Я попробовал простую конвейерную работу, которая клонирует мое удаленное репо. Он отлично работает, когда я настроил его на мастер.

node {
   //stage 'Checkout'
     git([url: 'ssh://someusername@gerrit.mycompany.domain:29418/bla/bla.git', branch: 'mybranch'])
}

Для запуска команды используется стандартная установка git. Я настроил git на другой пат для slave в конфигурации jenkins. когда я пытаюсь запустить тот же конвейер на ведомом устройстве, он терпит неудачу, потому что он всегда пытается выполнить установку git по умолчанию.

node ('myagent1'){
   //stage 'Checkout'
     git([url: 'ssh://someusername@gerrit.mycompany.domain:29418/bla/bla.git', branch: 'mybranch'])
}

Ошибка очевидна:

Caused by: hudson.plugins.git.GitException: Error performing command: /jenkins-master-some-path/bin/git init /home/user/workspace/pipeline

/jenkins-master-some-path/bin/git правильно для мастера.

Для обычных работ мы можем выбрать одну установку, но кто-то может сказать мне, если есть способ использовать другую установку git для конвейера на ведомом устройстве.

2 ответа

Решение

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

Идти к:

Jenkins > Manage Nodes > myagent1 > nodes properties > tools 

... и затем выберите инструмент, который не может быть найден в вашем агенте (например, исполняемый файл Git), и просто введите туда свой путь к исполняемому файлу.

Оооо я нашел способ. Вместо использования команды git, я использовал этот модуль "checkout". Если вы нажмете "Синтаксис конвейера" и перейдете на другую страницу, из конфигурации задания конвейера. Там вы можете создать Groovy просто с помощью графического интерфейса.

Другие вопросы по тегам