.gitlab-ci.yml 配置文件的编写
一、什么是.gitlab-ci.yml 文件GitLab提供持续集成服务。如果将.gitlab-ci.yml文件添加到存储库的根目录,并将GitLab项目配置为使用Runner,则每次提交或推送都会触发CI 管道。该.gitlab-ci.yml文件是配置CI如何处理项目的位置。位于存储库的根目录中。在对存储库进行任何推送时,GitLab都会查找该.gitlab-ci.yml 文件,并根据该文件的内
一、什么是.gitlab-ci.yml 文件
GitLab提供持续集成服务。如果将.gitlab-ci.yml文件添加到存储库的根目录,并将GitLab项目配置为使用Runner,则每次提交或推送都会触发CI 管道。
该.gitlab-ci.yml文件是配置CI如何处理项目的位置。位于存储库的根目录中。
在对存储库进行任何推送时,GitLab都会查找该.gitlab-ci.yml 文件,并根据该文件的内容在Runners上启动作业。
因为.gitlab-ci.yml是在存储库中并且受版本控制的,所以旧版本仍然可以成功构建,fork可以轻松使用CI,分支可以具有不同的管道和作业,并且您拥有CI的唯一真实来源。
工作:
定义了约束,指出应在什么条件下执行它们。
具有任意名称的顶级元素,并且必须至少包含script子句。
不限制可以定义多少个。
二、配置参数解释
stages
定义pipeline的全部阶段(stage),阶段内所有任务并行执行,全部执行成功开始下一阶段任务,任何阶段内任意job执行失败都会导致pipeline失败,所有stage,job执行成功后pipeline会显示pass。如果未定义stages,则默认有build、test、deploy三个阶段,如果未定义stage,则默认test阶段
ps:可以定义后不使用,但使用就必须先定义
#流水线的stages的顺序可以自己定义
#相同阶段的任务将会并发的执行,上一个阶段的任务完整的结束之后,下一个阶段的任务才会开始执行
stages:
- stage1
- stage2
- stage3
job1:
stage: stage1
script:
- echo 'stage1 job'
job2:
stage: stage2
script:
- echo 'stage2 job'
job3:
stage: stage3
script:
- echo 'stage3 job'
stages
任务内的阶段,必须从全局阶段中选
script
由runner执行的shell脚本
ps:必填项,所有jod都必须要有script
retry
发生故障时可以自动重试作业的时间和次数。(0或1或2)
image
指定一个docker镜像作为基础运行环境,经常用到的镜像,比如java,docker,python
tags
指定流水线使用哪个runner去运行,只能定义到一个具体的项目,tags的取值范围是该项目可见的runner
关于如何找到项目可用的runner
only/except
限定当前任务执行条件
only:限定某些分支或某些tag
except:排除某些分支或某些tag
when
实现在发生故障或尽管发生故障时仍能运行的作业
cache
将当前工作环境目录中的一些文件或一些文件夹存储起来,用于在各个任务初始化的时候恢复
更多推荐
所有评论(0)