GitLab CI / CD管道配置官方解读

时 间:2019-10-24
功 能:GitLab CI / CD管道配置参考
官方文档:https://docs.gitlab.com/ee/ci/yaml/README.html#tags

1、script

由runner执行的shell脚本,job所需的唯一关键字

示例1:
  job:
    script: "bundle exec rspec"
示例2:
  job:
    script:
      - uname -a
      - bundle exec rspec
2、image

指定用于job的docker镜像
image:name
docker图像全名
image:entrypoint
docker容器的入口点执行的命令或脚本

示例1:
  image: "registry.example.com/my/image:latest"
示例2:
  image:
    name: "registry.example.com/my/image:latest"
3、services:

指定服务docker镜像,改镜像连接到指定的基本镜像image
services:name
应使用的图像的全名

 示例1:
    services:
      - postgresql:9.4
      - redis:latest
  示例2:
    services:
      - name: postgresql:9.4
      - name: redis:latest
4、before_script:

定义在所有job之前运行的命令(包括部署作业),必须是数组

5、after_script:

定义在所有job之后运行的命令(包括失败的job),必须是数组

6、stages:

定义job可以使用的阶段,且是全局定义,允许有多级管道,它定义可罪业执行的顺序
同一阶段的job并行运行,前一阶段的job完成后,将运行下一阶段的job

 示例1:
      stages:
        - build
        - test
        - deploy
7、.pre和.post

每个管道均可使用者两个阶段
.pre: 保证始终是管道的第一个阶段
.post: 保证始终是管道的最后一个阶段

 示例1:
    stages:
      - .pre
      - a
      - b
      - .post
8、stage:

按职位定义,并依赖stages全局定义的职位,允许将作业分为不同的阶段,并且相同的作业stage可以并行执行

9、使用自己的runner

gitlab Runner 默认一次仅运行一个作业
可以在自己的runner上并行运行的情况: 不同的runnner上运行、runner的concurrent设置已经更改

10、only/except

设置job策略以限制创建job的时间
only:运行job的分支和标签名称
except:不允许job的分支和标签名称
允许是正则表达,允许指定存储库路径以过来吧派生作业,更多功能可以查看高级用法

11、tags

从允许运行此项目的所有runner列表中选择特定的runner,
tags允许为具有指定标签的runner允许job

示例1:
   job:
    tags:
      - ruby
      - postgres 
12、allow_failure

允许作业失败,且不会影响其余部分,除手动job以外

13、when

当发生故障或发生故障时允许的job
可使用值:on_success on_failure always manual

14、environment

定义作业部署到特定环境,如果指定不存的名称在则自动创建

  deploy to production:
  stage: deploy
  script: git push production HEAD:master
  environment:
    name: production
15、cache

指定job之前缓存的文件和目录列表,如果cache在job外定义,则表示它是全局的

16、artifacts

在指定成功、失败、始终执行job时,赢附加到该文件和目录的列表
作业完成后,工件将被发送到GitLab,并可在GitLab UI中下载。

17、dependencies

默认artifacts先前阶段的所有dependencies参数都将传递,
但可以使用参数定义一个有限的作业列表(或没有作业)以从中获取工件。
依赖工作何时失败:如果设置为依赖项的作业的工件已 过期或已 擦除,那么依赖项作业将失败。

18、need

允许执行job外的顺序,这样就可以运行某些job而无需等待其他job,无需考虑阶段顺序,可以当多个阶段同时运行

19、coverage

允许您配置如何从作业输出中提取代码覆盖率

20、retry

允许您配置在失败的情况下重试作业的次数

21、timeout

配置特定job的超时时间

22、parallel

配置并行运行的job实例数,此值必须大于等于2且小于等于50

23、trigger

下游管道触发器,当triggerGitLab 根据定义创建的作业启动时,将创建一个下游管道

24、interruptible

如果job因新的管道允许而变得多余,而应去下作业,默认false
仅当 启用了自动取消冗余管道功能时,才使用此值。

25、include

包含外部YAML文件,要求外部YAML文件名具有扩展名.yml或.yaml

示例1:
    include:
      - 'https://gitlab.com/awesome-project/raw/master/.before-script-template.yml'
      - '/templates/.after-script-template.yml'
26、extends

定义要使用的作业extends要继承的条目名称

27、pages

是一项特殊job,用于将静态内容上传到GitLab

28、variables

在.gitlab-ci.yml定义的内部变量,用于存储非敏感项目配置
在job环境中传递这些变量,可以全局设置,也可以按job设置
在variables工作级使用关键字时,它将覆盖全局YAML变量和预定义的变量

  示例1:
    variables:
      DATABASE_URL: "postgres://postgres@postgres/my_database"
29、不推荐使用的参数

全局定义 types
工作定义 type
全局定义image,services,cache,before_script,after_script

30、其他:

自定义构建目录
处理并发
嵌套路径
YAML的特殊功能
隐藏键(job)
锚点
扳机
处理Git推送
跳过工作

你可能感兴趣的:(GitLab CI / CD管道配置官方解读)