首页 > 解决方案 > 在 Jenkins 多分支管道作业中运行 Git 命令

问题描述

我正在尝试运行 Git 命令来查找分支是否已经存在于 git repo 中,但很明显它失败并出现错误:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

这是我要运行的命令:

def branch_exists_in_angular = sh(script: 'git ls-remote --heads $ANGULAR_REPO $CHECKOUT_BRANCH | wc -l', returnStdout: true)

有没有办法可以将 git ssh 密钥传递给上面的命令,所以它运行良好。我在某个地方找到以下示例:

sshagent(['my-git-ssh']){
def branch_exists_in_angular = sh(script: 'git ls-remote --heads $ANGULAR_REPO $CHECKOUT_BRANCH | wc -l', returnStdout: true)
}

但它没有说 sshagent 不是有效的 DSL。

根据评论中的建议,我安装了 ssh 代理插件并尝试再次运行它......但这一次它失败并出现错误:

/usr/bin/git: /usr/bin/git: cannot execute binary file

标签: gitjenkinscontinuous-integrationjenkins-pipeline

解决方案


推荐阅读