我有以下场景:
我尝试了一个简单的管道作业来克隆我的远程repo。当我将它设置为在master上执行时,它工作得很好。
node {
//stage 'Checkout'
git([url: 'ssh://someusername@gerrit.mycompany.domain:29418/bla/bla.git', branch: 'mybranch'])
}
它使用默认的git安装来运行命令。我在jenkins配置中为slave配置了git的不同部分。当我尝试在从属服务器上运行相同的管道时,它会失败,因为它总是尝试使用默认的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
对master是正确的。
对于正常的工作,我们可以选择一个安装,但是谁能告诉我是否有一种方法可以在slave上使用不同的git安装管道
另一个适用于所有工具的解决方案是为您的特定代理节点配置特定的工具安装路径。
转到:
Jenkins > Manage Nodes > myagent1 > nodes properties > tools
…然后选择在你的代理上找不到的工具(例如Git executable),并在那里填写你的可执行路径。
哦我找到了办法。我没有使用git命令,而是使用这个"checkout"模块。从管道作业配置,如果你点击"管道语法",它会带你到另一个页面。在这里,您可以使用GUI生成groovy。