如果 git 安装在 jenkins agent 和 master 的不同路径中,我可以在交付管道中使用 git 命令吗

Can I use git command in delivery pipeline if git is installed in different path on jenkins agent than on master

我有以下场景。

我尝试了一个简单的管道作业来克隆我的远程仓库。当我将它设置为在 master 上执行时它工作正常。

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

它使用默认的git安装到运行命令。我已经在 jenkins 配置中为 slave 配置了不同的 pat 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 来说是正确的。

对于正常的工作,我们可以选择一个安装,但有人可以告诉我是否有办法在从站上使用不同的 git 安装管道。

哦哦 我找到了一个方法。 我没有使用 git 命令,而是使用了这个 "checkout" 模块。 在管道作业配置中,如果您单击 "pipeline Syntax",它会将您带到另一个页面。在那里,您可以使用 GUI 生成 groovy。

另一个适用于所有工具的解决方案是为您的特定代理节点配置特定工具安装路径。

转到:

Jenkins > Manage Nodes > myagent1 > nodes properties > tools 

... 然后 select 在您的代理上找不到的工具(例如 Git 可执行文件),只需在其中填写您的可执行文件路径。