Gitlab 配置
- 配置域名,确保
view-source:<http://git.arsyun.com/hos/go-lib-websocket?go-get=1
里出现正确的域名而不是IP> - HTTPS 建议配置但不是必须(不配置则必须配置
GOINSECURE
环境变量,或者通过go env -w KEY=VALUE
配置)
- 配置域名,确保
项目里如何引用
其他使用 GOPATH 模式的项目不用改任何东西
新项目
启用
GO111MODULE=on
使用 GOPROXY 中国镜像
GOPROXY=https://goproxy.cn,direct
对于局域网服务,绕过
GOPROXY
- 配置
GOPRIVATE=git.arsyun.com
- 配置
配置 Gitlab 访问权限
- SSH:
~/.gitconfig
- HTTP:
~/.netrc
- SSH:
使用指定分支进行引用
依赖的旧项目有两种使用方案
- 在新分支(统一暂时定为
gomod
分支)启用 gomod - 使用
replace
引用本地仓库
- 在新分支(统一暂时定为
一键配置脚本
#!/bin/bash
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOPRIVATE=git.arsyun.com
go env -w GOINSECURE=git.arsyun.com
git config --global --add url."git@git.arsyun.com:".insteadOf "<http://git.arsyun.com/>"
# 然后配置 gitlab 里的 ssh 公私钥
# 体验一下
go get git.arsyun.com/hos-device/go-srv-device-logcollector@5b6efee
旧项目如何迁移到 go mod
- 脚本替换 module 引用方式(更新 module 名字,更新 module 引用名字)
#!/bin/bash
declare -a groups=(hos hos-device hos-disk)
for x in ${groups[@]}; do
echo $x
sed -i "s,\\"$x/,\\"git.arsyun.com/$x/,g" **/*.go
sed -i "s,\\"$x/,\\"git.arsyun.com/$x/,g" go.mod
done
go build ./...
验证是否完成迁移,如果出现小问题手动修复