.gitlab-ci.yml文件编写模版与说明

参考文档

https://segmentfault.com/a/1190000010442764#articleHeader1

内置系统变量:https://docs.gitlab.com/ee/ci/variables/predefined_variables.html

模版

image: golang:latest

 # 只有在发起MR的时候才会执行,我们可以用 << *mr 来指定某一阶段只在MR时执行
.mr_template: &mr
    only:
      - merge_requests
      
# 只有MR被合并进master分支时才会执行,我们可以用 << *origin 来指定
.origin_template: &origin
    refs:
      - master
      
 # 代码风格检查
.vet: &go-vet |
    find . -name "*.go"
    git diff --exit-code
    

before_script:
# 通过 * 引用我们前面定义好的脚本
  - *vet

# prepare和test在提交MR时会执行,而pack和deploy在MR被合并时才会执行
stages:
  - prepare
  - test
  - pack
  - deploy
  
gomod:
 # << 将某块的脚本插入到这里,<<: *mr 其实就是将mr_template的内容放到这里
  <<: *mr
  stage: prepare
  script:
    - go mod download
    
test:
  <<: *mr
  stage: test
  script:
    - go test ./...
 
pack:
  <<: *origin
  stage: pack
  script:
    - go build main.go
    
    
pack:
  <<: *origin
  stage: deploy
  script:
    - echo "发布...."

你可能感兴趣的:(工具使用,git)