pipeline流程
- 使用golangci-lint 检查代码
- 编译代码
- 部署二进制
before_script 设置环境变量
主要 GOPROXY设置
before_script: - echo before_script - git version - go env -w GOPRIVATE=code.haiziwang.com - mkdir -p .go - go version - go env -w GO111MODULE=on - go env -w GOPROXY=https://goproxy.io,direct
golangci-lint
默认集成了很多开箱即用的linter
https://golangci-lint.run/
golangci-lint: image: golangci/golangci-lint:v1.27.0 stage: lint extends: .go-cache allow_failure: true script: - golangci-lint run -v
allow_failure 表示失败了可以继续跑后续的job
编译
compile: stage: build extends: .go-cache script: - go mod download - go build -race -o $OUTPUT_NAME artifacts: paths: - $OUTPUT_NAME
缓存 go mod
.go-cache: variables: GOPATH: $CI_PROJECT_DIR/.go cache: paths: - .go/pkg/mod/
full example
# This file is a template, and might need editing before it works on your project. image: hub-mirror.c.163.com/library/golang:latest .go-cache: variables: GOPATH: $CI_PROJECT_DIR/.go cache: paths: - .go/pkg/mod/ variables: OUTPUT_NAME: helloworld-app stages: - lint - build - deploy before_script: - echo before_script - git version - go env -w GOPRIVATE=code.haiziwang.com - mkdir -p .go - go version - go env -w GO111MODULE=on - go env -w GOPROXY=https://goproxy.io,direct golangci-lint: image: golangci/golangci-lint:v1.27.0 stage: lint extends: .go-cache allow_failure: true script: - golangci-lint run -v compile: stage: build extends: .go-cache script: - go mod download - go build -race -o $OUTPUT_NAME artifacts: paths: - $OUTPUT_NAME deploy-dev: stage: deploy script: - echo deploy dev environment
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。