一 准备工作
检查'CI/CD'的'基础环境'
(1) 在Gitlab页面'检查gitlab-runner'是否'在线'
(2) 检查'runner服务器'的状态
二 流水线的语法检测
位置: '项目' -->'CI/CD' -->'CI Link' -->'检查文件语法'
语法检验的状态,并把每个参数解析出来
'最佳实践':修改之后'不要立即运行',要做一个'语法校验',防止运行失败!
二 进入主题
一个'.gitlab.yaml'文件就是一条'pipeline',流水线包含很多'标签元素'
(1)job
(2)每个作业可以包含的内容
'目的':先有一个'粗略的认识'
(3)script
注意: '语法报错'
强调: 'job的主体'
(3)before_script
说明:
1) before_script可以作为'全局的默认配置-->在所有job之前定义',如果在job里面'没有定义',则使用'全局默认'的
2) before_script和script是在'同一个shell中',所以任何一个失败,'其它都会失败';after_script是'一个单独的shell'
3) before_script失败'导致整个作业失'败,'其他作业将不再执行',作业失败'不会影响'after_script运行
'模拟': before_script'没有这个ech命令' -->导致后面的'运行失败'
'before_script'失败,'这个job'失败,后面的'作业'就不会运行了
(4)after_script
(5) stages
'不用考虑'job的顺序,通过'stages'来控制'job的运行顺序'
'实践':给每一个job定义一个'stage',然后按照'stages的顺序'找到'对应的job执行' -->stages的某一个内容与job中的stage'标签的值'一致
'并行执行':不同的job有相同的stage
(6)特殊的stage
作用: 一般做一些'初始化'的工作
(7)自定义的stage
并行的问题
(8)variable
变量的引用方式: "$var"
(9)补充
暂停状态的原因:tag分配runner来执行,没有分配tag,默认使用共享的runner
解决:配置允许该runner运行在'没有tag的job上',或者'下面enable'
四 实验