在Windows上通过Gitlab CI/CD编译go项目

在Windows上使用Gitlab CI/CD服务时,由于Gitlab Runner服务使用的是一个特殊的账户,这个账户不会读取到当前登录账户的私有环境变量,也没有私有的用户目录;而go runtime会把缓存目录定向到用户目录下,这个时候就会出现问题导致无法编译,导致CI/CD无法产生正确的产物。同时也会出现go环境变量丢失的现象,同样会导致编译失败。

此时我们需要使用临时环境变量对缓存目录进行重定向操作。在Powershell环境下使用以下语句来指定临时环境变量。

$env:[环境变量名]="[环境变量字符值]"
$env:[环境变量名]=[环境变量数字值]

因此,使用以下脚本来进行go项目的编译。在go版本16.6上测试通过。运行目录位于main.go所在目录。

$env:GO111MODULE="auto"
$env:GOARCH="amd64"
$env:GOENV=
$env:GOCACHE="$env:ALLUSERSPROFILE/goCache"
$env:GOMODCACHE="$env:ALLUSERSPROFILE/goModCache"
$env:CGO_ENABLED=1
$env:GOPROXY="https://goproxy.cn,direct"
$env:CC="gcc"
$env:CXX="g++"
go env
go build -a -o test.exe
go clean -modcache

使用powershell运行该段脚本,即可在Gitlab CI生成对应的可执行文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值