首页 > 解决方案 > 在詹金斯管道作业中使用 git 存档而不是使用凭据进行克隆

问题描述

在我的 Jenkins 管道工作中,我曾经像这样在工作开始时克隆 git repo

cleanWs()
git branch: 'master', credentialsId: 'SSH_GIT', url: 'git@myserver.com:myrepo'

请注意,我需要凭据。

为了减少执行时间和下载数据大小,我想git archivegit clone.

sh("git archive --format=tar --remote git@myserver.com:myrepo master |tar xf -")

如果我完成了正确的 ssh-key 配置,则前面的命令有效。我的服务器上不是这种情况,所以我需要使用凭据。

如何使用 Jenkins 定义的凭据存档而不是克隆 repo?Git 安装在 gitolite 服务器上

标签: gitjenkinsjenkins-pipelineclonegit-archive

解决方案


解决方案是在 Jenkins Pipeline 中使用 sshagent 功能

sshagent(['SSH_JENKINS_CREDENTIALS_FOR_GIT']) {
    sh("git archive --format=tar --remote git@myserver.com:myrepo master |tar xf -")
}

推荐阅读