回系列博客主目录及代码地址 spring boot项目基于docker搭建gitlab CI CD持续集成环境
CI&CD
CI - 持续集成
- 定义
持续集成是一种软件开发实践,其目标是快速确保开发人员新提交的变更是好的,让产品可以快速迭代,同时还能保持高质量。
其核心措施是频繁地将代码集成到主干分支,并通过自动化构建、测试来验证代码的正确性,从而能够快速尽早的发现集成错误 (快速失败),只要有一个测试用例失败,就不能集成。 - 持续集成的作用
1. 快速发现集成错误,每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易
2. 防止分支大幅偏离主干,如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,冲突多
甚至难以集成
3. 保证代码保持高质量,随时可交付。通过自动化测试验证每次代码的提交,并及时解决集成错误,代码
能够保持高质量,等到feature开发完成以后可以随时进行交付
- 持续集成的原则
1. 需要版本控制来保障代码能够回退到历史任意版本
2. 需要有专门的集成服务器来执行集成构建。根据项目的具体实际,集成构建可以被软件的修改来直接触发
也可以定时启动
3. 开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地
4. 必须保证构建的成功。如果构建失败,修复构建过程中的错误是优先级最高的事情
- 持续集成系统的构成
CD - 持续部署 & 持续交付
CD其实包括持续部署(Continuous Deployment)和持续交付(Continuous Delivery)
- 持续交付(CD)通常是指整个devops流程链(管道),它自动监测源代码变更并通过构建、测试、打包和相关操作运行它们以生成可部署的版本。
- 持续部署(CD)是指能够自动提供持续交付管道中发布版本给最终用户使用。而我们将要大奖的gitlab CI CD中的CD是持续部署