git - 在詹金斯管道作业中使用 git 存档而不是使用凭据进行克隆
问题描述
在我的 Jenkins 管道工作中,我曾经像这样在工作开始时克隆 git repo
cleanWs()
git branch: 'master', credentialsId: 'SSH_GIT', url: 'git@myserver.com:myrepo'
请注意,我需要凭据。
为了减少执行时间和下载数据大小,我想git archive
用git clone
.
sh("git archive --format=tar --remote git@myserver.com:myrepo master |tar xf -")
如果我完成了正确的 ssh-key 配置,则前面的命令有效。我的服务器上不是这种情况,所以我需要使用凭据。
如何使用 Jenkins 定义的凭据存档而不是克隆 repo?Git 安装在 gitolite 服务器上
解决方案
解决方案是在 Jenkins Pipeline 中使用 sshagent 功能
sshagent(['SSH_JENKINS_CREDENTIALS_FOR_GIT']) {
sh("git archive --format=tar --remote git@myserver.com:myrepo master |tar xf -")
}
推荐阅读
- python - 如何在 Windows 中将 Poppler 安装到虚拟环境中(Pycharm)
- google-iap - 有没有办法通过 API 将资源身份验证方法更改为外部?
- go - 在 Go 构建约束中,OMIT 是什么意思?
- javascript - 将背压逻辑应用于发生器的有效方法?
- xamarin.forms - VS 2019 中的 Xamarin.Forms 新项目对话框没有“Shell”模板选项
- autohotkey - AutoHotkey 映射 F12 以进行四次击键
- html - 加载通过 iframe 嵌入的 Instagram 时收到未捕获(承诺中)未定义错误
- flutter - 如何在 Flutter 中使用动画更改行/列状态?
- javascript - onsubmit JS 脚本不会重定向到正确的位置
- css - 如何居中反应选择元素