Я запускаю сценарий DSL, который печатает все подключенные узлы в Jenkins и устанавливает для каждого из них местоположение инструмента Git на ведомом устройстве.
import hudson.tools.*
import hudson.slaves.*
import jenkins.model.Jenkins
def jenkins = Jenkins.instance
def computers = jenkins.slaves
computers.each{
println "${it.displayName} ${it.nodeName}"
it.labelString = "blabla"
println "${it.labelString}"
def gitToolDescriptor = Jenkins.getInstance().getDescriptor("hudson.plugins.git.GitTool")
def toolLocation = new ToolLocationNodeProperty.ToolLocation(gitToolDescriptor, " ", "/usr/bin/git")
def toolLocationProperty = new ToolLocationNodeProperty(toolLocation as List)
it.nodeProperties.add(toolLocationProperty)
it.save()
}
Расположение путей задано правильно при проверке конфигурации Node через пользовательский интерфейс Jenkins. Тем не менее, кажется, что пути не обновляются должным образом, так как, когда я пытаюсь клонировать репо на ведомом устройстве, я получаю:
/ usr / local / git / bin / git rev-parse --is-inside-work-tree # timeout = 10
Мне нужно вернуться к конфигурации узла и вручную нажать кнопку «Сохранить», и путь обновится правильно.
/ usr / bin / git rev-parse refs / remotes / origin /
Любые подсказки приветствуются!