Могу ли я использовать команду 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 просто с помощью графического интерфейса.