一、需求来源
提出需求:当提交代码到git仓库的时候 开发环境可以自动实现集成部署。
解决方案:最简单的方法是 每次git push的时候就会自动执行 git仓库 的钩子文件,钩子文件去执行 开发环境的 同步、部署代码的 脚本即可。
当然我们这里使用的要复杂一点,利用 Gitlab CI 去实现该功能。
在介绍 GitLab CI 之前,我们先看看一些持续集成相关的概念。
二、相关概念
2.1 Pipeline
一次 Pipeline 其实相当于一次构建任务,里面可以包含多个流程,如安装依赖、运行测试、编译、部署测试服务器、部署生产服务器等流程。 任何提交或者 Merge Request 的合并都可以触发 Pipeline。
2.2 Stages
Stages 表示构建阶段,说白了就是上面提到的流程。 我们可以在一次 Pipeline 中定义多个 Stages,这些 Stages 会有以下特点:
- 所有 Stages 会按照顺序运行,即当一个 Stage 完成后,下一个 Stage 才会开始
- 只有当所有 Stages 完成后,该构建任务 (Pipeline) 才会成功
- 如果任何一个 Stage 失败,那么后面的 Stages 不会执行,该构建任务 (Pipeline) 失败
2.3 Jobs
Jobs 表示构建工作,表示某个 Stage 里面执行的工作。 我们可以在 Stages 里面定义多个 Jobs?
|