gitlab--ci/cd部署golang程序中submodule和私有库问题

submodule问题

配置.gitmodules

在一个项目中使用了submodule,拉取下来之后会生成一个.gitmodules文件

[submodule "xxxx"] ==>工程拉取下来后的路径
	path =xxxx  ==>工程拉取下来后的路径
	url = xxxx  ==>submodule 工程在gitlab中的地址,默认应该是仓库的绝对路径

在此处,关于url配置。官文表明可以使用绝对地址或者相对地址。

  1. 如果主项目和子项目在同一个gitlab服务器地址下,可以使用相对地址。主项目:https://gitlab.xxx.cn/group_name/project-master.git,子项目地址:https://gitlab.xxx.cn/group_name/project-submodules.git
[submodule "model/project-submodules"]
	path = model/project-submodules
	url = ../project-submodules.git
  1. 如果不在同一个服务器上,可以使用绝对地址。主项目:https://gitlab.aaa.cn/group_name/project-master.git,子项目地址:https://gitlab.bbb.cn/group_name/project-submodules.git
[submodule "model/project-submodules"]
	path = model/project-submodules
	url = https://gitlab.bbb.cn/group_name/project-submodules.git

配置.gitlab-ci.yml

variables:
  GIT_SUBMODULE_STRATEGY: recursive 

确保权限

在上面两个步骤中,需要确保执行上面命令的项目成员,在主项目和子项目中都有项目的 Maintainer 或 Owner 权限。

私有库

有时项目会像使用第三方库那样引入自己写的一个私有库。一般在公司会这样做。这里前提是私有库已经可以正常在本地使用。

dockerfile配置

配置go环境 GOPRIVATE

可以在本地配置,在本地可以先使用docker打包试试

GOPRIVATE=gitlab.xxxx.cn

dockerfile

ENV GOPRIVATE=gitlab.xxxx.cn
ENV CGO_ENABLED=0
RUN git config --global url."https://username:被当作库访问的仓库的访问令牌@gitlab.xxxx.cn".insteadOf "https://gitlab.xxxx.cn"

username应该默认就是auth2

参考资料

submodule
官网submodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值