教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 基于 gitlab-ci 构建 golang 项目 CI 环境

基于 gitlab-ci 构建 golang 项目 CI 环境

发布时间:2022-12-15   编辑:jiaochengji.com
教程集为您提供基于 gitlab-ci 构建 golang 项目 CI 环境等资源,欢迎您收藏本站,我们将为您提供最新的基于 gitlab-ci 构建 golang 项目 CI 环境资源

在 github 上托管 go 开源项目,CI 使用 travis 的服务感觉很方便,几乎不需要额外的设置,但是涉及到公司的项目,通过 gitlab-ci 来跑 golang 项目的 CI,需要一点技巧。

思路大致是这样:

  1. 创建项目在 GOPATH 中的目录的 symbolic link ,指向 gitlab-runner 在该项目上执行 CI 时的工作目录
  2. 切换到这个链接目录,执行每个 stage 的任务

具体的 .gitlab-ci.yaml 文件内容如下:

before_script:
  - export GO_PROJECT_NAMESPACE="$GOPATH/src/gitexample.com/$CI_PROJECT_NAMESPACE"
  - echo $GO_PROJECT_NAMESPACE
  - mkdir -p $GO_PROJECT_NAMESPACE
  - ln -srf $(pwd) $GO_PROJECT_NAMESPACE
  - export GO_PROJECT_PATH="$GO_PROJECT_NAMESPACE/$CI_PROJECT_NAME"
  - echo $GO_PROJECT_PATH
  - cd $GO_PROJECT_PATH

stages:
  - build
  - test
  - release

build:
  stage: build
  script:
    - go build
  
test:
  stage: test
  script:
    - go test -v ./...

release:
  stage: release
  script: 
    - make goreleaser
    ......
    when: on_success
  allow_failure: true
  only:
    - tags

这里注意两个问题

  1. ln命令一定要加上 -f选项覆盖之前创建的link文件,避免报错退出CI。
  2. 本项目 vendor 目录里的代码已经提交到远程仓库中。

ref:

  • GitLab CI Pipeline for Go ($24565) · Snippets · GitLab
到此这篇关于“基于 gitlab-ci 构建 golang 项目 CI 环境”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
使用 GitHub Actions 自动化构建 Golang 应用
在 Go 语言项目中使用 Travis CI
Golang创建私有仓库
Docker LNMP Jenkins 码云实现 PHP 代码自动化部署
golang ide 环境搭建_Go语言环境搭建详解(2020版)
【Golang 接口自动化00】为什么要用Golang做自动化?
云原生环境下微服务管理系统开发
Golang算法题目小计
os.create指定路径 golang_Go语言(Golang)环境搭建详解
php开发学哪些

上一篇:golang 异常处理 下一篇:Goroutine源码记录
[关闭]
~ ~