⏳ CICD 指的是持续集成/持续交付(continuous integration/ continuous delivery),是为了满足互联网、金融公司快速迭代项目的需要而提出的一种软件开发思想。大致思路是通过编写自动化脚本,使新代码必须通过一些规则核查后才能部署上线。
Gitlab 是实现了 CICD 流程的一个优秀平台,通过在项目的根目录下编写 .gitlab-ci.yml
文件来配置 CI 流程,主要描述项目被如何编译。
一、stages
stages 参数定义了代码若要通过流水线需经历的阶段,供所有作业使用。
若文件中未定义 stages,则默认包含 build、test 和 deploy 三个阶段。
stages:
- lint
- test
- build
以上就是一个 stages 参数定义,在 gitlab 中的效果如下,表示要分别通过这三个阶段的检验才算发布成功,因此被形象地称为流水线。
二、job
job 可以翻译为 “作业”,它是 .gitlab-ci.yml
文件的基本单元。它的基本定义方式是:
job_name:
stage: lint
script:
- xxx
- xxxx
other_param: xxx
首先声明作业名称,然后在内部声明它的一些参数。如上面声明的一个参数是 stage
,表明该 job 被绑定到 lint
阶段。
job 是文件中的顶级元素,且至少包含一条 script
语句。若一个 job 未显式地关联某个阶段,则默认关联至 test
阶段。