Golang 构建
表单介绍
-
Golang 版本号:下拉列表选择合适的 JDK 版本,插件执行时会根据选择的版本初始化 JDK 环境。
-
构建命令:构建命令为用户自定义构建命令,命令执行目录为代码库根路径,支持
${参数Key}
获取环境变量,注意添加set -e
可控制脚本命令出错自动退出。
# 默认使用goproxy.cn
export GOPROXY=https://goproxy.cn
# 输入你的构建命令
make build
-
暂存构建物:
- 唯一标识:制品产出的标识,在下游任务可以通过
${唯一标识}
方式引用来获取构建物。 - 打包文件/目录:选择制品产出的文件或目录,可以是单个,也可以是多个(这些打包目录规整到一起压缩)。
- 唯一标识:制品产出的标识,在下游任务可以通过
-
构建缓存:
缓存参数支持绝对路径、相对路径两种写法,例如:
- /go/pkg/mod
- xxx/xxx 相对于代码库的根目录
- /root/workspace/xxx
规则说明:
- 所谓缓存,实质上就是把我们流水线中重复使用的模块,打包上传的 S3 中存储,当再次触发流水线时,从 S3 中下载解压缓存文件
- 只有流水线构建成功,才会上传更新缓存文件
- 缓存文件默认失效 30 天
- 每次触发流水线,可延长缓存失效(即使构建失败)
注意事项:
Golang 构建加速
go 构建默认会从 github 拉取相关依赖,下载速度会很慢
为了加快构建速度,可以设置国内镜像源:
export GO111MODULE=on
export GOPROXY=https://mirrors.aliyun.com/goproxy/
构建二进制文件 (不同环境)
go 构建二进制文件时,存在兼容性问题,不同环境的二进制文件不能跨环境执行
为了构建执行环境的二进制文件,可执行以下命令选择环境:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
set CGO_ENABLED=0
set GOOS=linux #指定系统(Windows,linux,darwin「mac os」)
set GOARCH=amd64 #表示目标系统架构(arm arm64 386 amd64 等等)
go build
制作 rpm 离线包
内置了 fpm 插件,可使用此插件把构建的二进制文件制作成 rpm 离线包
执行命令:
## 参数说明:-n 二进制文件名称 -v 版本号 -p rpm文件名称 -f 生成的rpm文件存放位置
fpm -s dir -t rpm -n record-mdk -v `{AGILE_PIPELINE_BUILD_NUMBER}` -p record-mdk-${AGILE_PIPELINE_BUILD_NUMBER}.x86_64.rpm -f record-mdk=/usr/local/