golang CI
golang镜像版本http://km.qutoutiao.net/pages/viewpage.action?pageId=106838487#CIdocker%E9%95%9C%E5%83%8F-Golang
可使用官方镜像,但静态检查工具需自行安装
go mod管理包相关文档http://km.qutoutiao.net/pages/viewpage.action?pageId=117437455
GOPROXY默认设置 "https://goproxy.io,https://goproxy.cn,https://mirrors.aliyun.com/goproxy/"
image: registry.qtt6.cn/ee/go:1.13.5-1
variables:
LANG: 'golang'
MOD_CACHE: "/home/work/go/pkg/mod" # cache仅支持项目目录下的文件夹,因此需要在before_script拷贝mod文件夹到MOD_CACHE,在after_script中拷回来
before_script:
- mkdir -p mod $MOD_CACHE && rm -rf $MOD_CACHE && mv mod $MOD_CACHE
$SSH_PRIVATE_KEY私钥变量在仓库首页->settings-CI/CD-Variables里添加,请添加有依赖包仓库权限的私钥
- git config --global url."git@git.qutoutiao.net:".insteadOf "https://git.qutoutiao.net/"
- eval $(ssh-agent -s) && echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add -
定义流水线阶段
stages:
- install
# - test
- build
下载依赖包
install pkg:
stage: install
tags:
- k8s-qa
cache:
paths:
- mod
script:
- go mod tidy -v && go mod download
- cp -rf $MOD_CACHE mod
- chmod -R 777 mod
执行代码静态检查,检查规范 https://github.com/golangci/golangci-lint v1.21.0
lint:
stage: test
tags:
- k8s-qa
cache:
paths:
- mod
policy: pull
allow_failure: true
script:
- ci:execute golint
执行UT
ut:
stage: test
tags:
- k8s-qa
cache:
paths:
- mod
policy: pull
script:
- echo "执行ut go test ./..."
构建制品到制品库
cd_app_id为应用名称用于生成制品到制品库,可到http://paas.qutoutiao.net/里查找应用名称
ci:execute artifacts用于制品上传,不能删除
build:
stage: build
variables:
cd_app_id: "******填写paas平台里的应用名称******"
# 下面两个参数是用于容器
# BASE_IMAGE: "registry.qtt6.cn/paas-dev/centos:7-nscd"
# RUN_COMMAND: "******填写启动命令******"
tags:
- k8s-qa
cache:
paths:
- mod
policy: pull
script:
# 如果是基于qms框架开发的应用,可以使用以下构建命令
# - export PROJECT_NAME=${cd_app_id} && make artifacts_mod
- ci:execute artifacts
# # 如果是容器请使用如下方法
# - ci:execute artifacts-docker
最后更新于 2019-12-27 16:49:07 并被添加「」标签,已有 3905 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处