一、什么是.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

将当前工作环境目录中的一些文件或一些文件夹存储起来,用于在各个任务初始化的时候恢复 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐