gitlab-ci配置

配置文件详解

gitlab-ci.yml参数列表

是否必须描述
script必须定义由Runner执行的shell脚本或命令
extends非必须定义此作业将继承的配置条目
image非必须需要使用的docker镜像,请查阅该文档
services非必须定义所需的docker服务,请查阅该文档
stage非必须定义一个工作场景阶段,默认是test
type非必须stage的别名,不赞成使用
variables非必须在job级别上定义的变量
only非必须定义job所引用的git分支
except非必须定义job所不适用的git分支
tags非必须定义job所适用的runner,tags为runner标签
allow_failure非必须允许任务失败,但是如果失败,将不会改变提交状态
when非必须定义了job什么时候执行,可以是on_success、on_failure、always和manual
dependencies非必须定义了该job依赖哪一个job,如果设置该项,可以通过artifacts设置
artifacts非必须工件,在依赖项之间传递的东西,类似cache,但原理与cache不同
cache非必须定义需要被缓存的文件、文件夹列表
before_script非必须覆盖在作业之前执行的脚本或命令
after_script非必须覆盖在作业之后执行的脚本或命令
environment非必须定义让job完成部署的环境名称
coverage非必须定义job设置代码覆盖率
retry非必须定义job失败后的自动重试次数

gitlab-ci配置示例

before_script:
  - echo "每个job之前都会执行"    
​
after_script:
  - echo "每个job之后都会执行"   
​
# 定义testing的任务
to-testing:
  # 场景为构建
  stage: deploy
  # 在哪个分支上可用
  only:
    - testing
    - /^testing_.*$/ #正则表达式,只有testing_开头的分支才会执行
  # sh文件路劲是git-ruuner服务所在的服务器
  script:
    - /bin/bash /home/deploy.sh
  # 在runner中设置,不然merge时不会推进队列
  tags:
    - deploy_develop
  environment:
    name: testing
    
# 定义production的任务
to-production:
  # 场景为构建
  stage: production
  # 在哪个分支上可用
  only:
    - production
  # sh文件路劲是git-ruuner服务所在的服务器
  script:
    - /bin/bash /home/deploy.sh
  tags:
    - deploy_production
  environment:
    name: production

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐