关键词
Pipeline
Pipeline执行的过程就是一次执行Stage中的列表流程的阶段。
Stages
默认的Stage
Gitlab的Pipeline有一个默认的Stages流程,如果ci文件中没有存在的Stages阶段,则会使用官方提供的Stages阶段。Gitlab CICD的pipeline有一个默认的stages即下列阶段。
- .pre
- build
- test
- deploy
多个任务可以分配给同一个Stage。而分配给同一个Stage的任务是并行执行的。
其中的job3与jib4按照理论就是并行执行的。
可以定义自己的stages流程。如下图
如图所示job3与job4都分配给了stage3.
运行结果
Script
所有的job都需要有这么一个关键词。script就是执行Linux命令
下图显示了如何使用script执行Linux命令
retry
运行失败,重新运行几遍.一般取值为3
1 | test: |
或者指定失败原因,当这个失败原因的时候才回去触发重试机制
1 | test: |
失败原因 列表 todo
when
发生故障或者经过故障仍然能够运行的作业
only
指定分支,only/except 是规定当前job的可见状态,一个项目有很多分支,tag,我们的流水线,为了对特定的分支,特定的tag执行不同的job,这里就要使用only和except 在任务上加上这一段代码,就表明当前任务只有在master分支可以运行。
cache
缓存是将当前工作环境目录中的一些文件,一些文件夹存储起来,用于在各个任务初始化的时候恢复。
1 | cache: |
在其他任务启动的时候就会恢复这个缓存目录,并不会讲缓存目录删除掉。如果没有缓存,则等待任务结束会将产生的文件删除掉。
image
image 是全局关键词可以在全局层面设置image镜像之后,在单独的job任务中也设置镜像。由于每个服务是单独的,也和前面的cache关键词对应起来。
注入变量
- gitlab-ci.yml中自己定义
- pipeline中预定义的变量
- 在项目中设置变量
gitlab-ci.yml中自己定义
全局变量
1 | variables: |
如何查看pipeline中预定义的变量
1 | get_all_var: |