jenkins shell中如何实现golang git私有库拉取配置?

fotomxq 发布于 2020/06/26 12:29
阅读 1K+
收藏 4

如题,在配置jenkins的时候,遇到了一些问题。shell中go get私有仓库时,总提示unknown revision错误。

shell前半部分代码如下:

该仓库的公钥配置没有问题,在jenkins的源码管理中可以正常拉取。本地也正常。但是跑shell里面配置好就不行了。

猜测可能是shell绑定配置不太对,但是网上找了半天资料,没有解决办法。

最后的错误信息:

...
go: gitee.com/abc/xxx@v1.5.8: reading gitee.com/abc/xxx/go.mod at revision v1.5.8: unknown revision v1.5.8
11:18:18 Build step 'Execute shell' marked build as failure

想请教一下:

该问题如何解决?以及是否有完整的jenkins shell拉取golang私有仓库的配置介绍?

或者我上面哪里配置的不太对?

 

感谢!

加载中
1
nanyun
nanyun
都是通过vendor编译不需要拉起仓库代码。现在很多公司都是这样处理的。
web实习虫
web实习虫
回复 @fotomxq : go mod vendor,在本地直接把vendor也提交上去,占卜了多少空间。
nanyun
nanyun
是的,这样稳定些。不用部署的时候再去下载代码,风险很大。
fotomxq
fotomxq
意思代码仓库要把vendor完整推送上去?这样不是会大幅增加代码库的占用空间么?
0
winjeg
winjeg

我记得私有仓库通常有两种做法:

1. 内网私有proxy 代理各个仓库

2. 用git 的insteadof 功能 替换go get 的url地址, 

不过, 哎,挺蛋疼的、。

fotomxq
fotomxq
第一条确实没有试过 第二条我上面截图中已经用到了,最让我奇怪的也在这里。因为本地设置是没问题了,但远程就开始不对了…
0
fotomxq
fotomxq

问题已经解决,但由于时间有限,无法定位具体解决方案,这里把后续增加的几个设置贴出来,方便后来人使用。

1、参考 nanyun 方法,将vendor完整推送到代码库。虽然必定会造成代码体积倍增。

2、SSH User Private Key设置如问题中的截图,同时将该证书在服务端直接添加到Jenkins所在服务器的Git中。

3、关于该命令:go env -w GOSUMDB=off,没有任何意义,对本问题没帮助。

4、完善了生产编译脚本:

# 镜像
export GOPROXY=https://goproxy.cn
go env -w GOPRIVATE=*.gitlab.com,gitlab.com,*.gitee.com,gitee.com
git config --global url."git@gitee.com:".insteadOf "https://gitee.com/"
# 构建
go build -o ./builds/service_abc gitee.com/abc/service_abc
# 将相关配置文件更换到builds目录
mv -f ./script/builds/dev/config.json ./builds/config.json
# 压缩打包目录
cd ./builds
tar zcvf ../service_abc.tgz ./*
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部