GitLab CI/CD 学习记录 - .gitlab-ci.yml
一、关键字介绍
script #由Runner执行的Shell脚本。 image #使用docker镜像, image:name service #使用docker services镜像, services:name before_script #执行作业前运行的脚本 after_script #作业完成后运行的脚本 stages #定义管道中的步骤,依次运行 stage #定义管道中步骤的作业段 only #指定作业限制only:refs,only:kubernetes,only:variables,和only:changes tags #指定执行作业的runner allow_failure #允许job失败 when #什么时候开始工作, on_success #只有当前一个阶段的所有工作都成功时(或者因为它们被标记而被认为是成功的allow_failure)才执行工作 。这是默认值。 on_failure #仅当前一阶段的至少一个作业失败时才执行作业。 always #无论先前阶段的工作状态如何,都可以执行工作。 manual #手动执行作业 delayed #延迟作业。后面跟start_in,start_in 30minutes(延迟30分钟),不加单位,默认为秒。最长可延迟1小时。 environment #作业依赖的环境名称 #Name of an environment to which the job deploys,Environments allow you to track deployments of your application. cache key:"$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG" #为每分支,每步骤启用缓存 artifacts #job成功时附加到作业的文件或目录 dependencies #此job依赖其他jobz,主要作用于作业优先级 converage #给定作业代码覆盖率设置 retry #在发生故障时,可以自动重试作业的次数。 parallel #应该并行运行多少个作业实例 trigger #定义下游管道触发器 include #允许此作业包含外部YAML extends #此作业将继承的配置项 pages #上传作业结果用于gitlab pages variables #作业级别定义作业变量
二、示例
runner的执行方式为shell的简单示例。
1 cache: 2 key:"$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG" #为每分支提供缓存 3 paths: 4 - node_modules #缓存哪些文件/文件夹 5 - bower_components 6 before_script: 7 -echo "执行前运行脚本" 8 after_script: 9 -echo "执行后运行脚本" 10 stages: #设置步骤有哪些,常用三大块,创建,测试,发布 11 -build 12 -test 13 -deploy 14 Job1: #设置某一步的运行工作,每个步骤可有多个job同步进行,也可设置dependencies限制 15 stage:build #此job属于哪个步骤 16 script: 17 -echo "go go go" 18 only: 19 -master #哪个分支触发 20 tags: 21 -share #指定runner,注册runner时填写的tag 22 test: 23 stage:test 24 script: 25 -echo "测试开始" 26 only: 27 -master 28 tags: 29 -share 30 deploy: 31 stage:deploy 32 when: 33 - manual #上面有解释 34 script: 35 -echo "部署开始" 36 only: 37 -master 38 tags: 39 -share
参考资料
GitLab CI/CD pipeline configuration reference