跳到主要内容

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/

常用搭配

镜像构建部署 (单制品)

制品上传部署 (单制品)

镜像构建部署 (多制品)