我们知道,合并两个差异很大的分支代码费时费力,还容易出错。在开发完一个耗时很长的版本,合并到主分支时,往往出现功能分支和主分支间代码差异很大的情况。如何规避这种情况呢?
通过持续集成可以规避这种情况。持续集成指频繁地(一天多次)将代码集成到主干。CI 是持续集成(Continuous Intergration)的简称。CI 的好处包括:
- 保证开发分支与主干差异不会太大。 多人协作开发时,如果分支与主干差异过大,极易出现代码重复和覆盖情况。
- 快速发现问题。 当开发完成部分功能开发后,即可合入主干进行测试或体验效果,出现问题后可快速定位问题原因。
- 提升测试效率。 基于CI及增量测试技术,可以将每次集成后的代码内容进行测试,测试周期分散到更长阶段,相比于整个功能上线后的完整测试质量和效果更高。
花了好久开发了一款产品,客户一看,根本不是他想要的,怎么办?
频繁地客户将产品交互给客户,尽快调整。持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
CI/CD 的关系是这样的:
CI/CD 怎么做
要实现 CI/CD 需要工具的配合。
CI 时,前端需要做什么
集成时,前端来说 保证功能的正常。 单元测试,e2e测试。 代码质量质量。 代码风格检查。检查空格,缩进,命名。 代码错误。ts 的类型错误。 代码可维护性检查。代码重复率。圈复杂度。 保证安全。第三方库安全扫描。业务代码的安全扫描。
几款主流ci 工具 执行时机:提交代码时。
核心概念
流水线
Jenkinsfile 定义了持续集成中的工作流水线(pipeline),其不仅实现了对步骤的流式化封装和管理,也是持续集成中的基本功能单位。流水线可以顺序执行,也可以并行执行。
持续集成怎么做
CI/CD 依赖一堆工具来支持自动化。
html 和若干css,js。 前端的产出 npm 包。
总结
CI/CD 适合大团队和需要经常交付的团队。
help.coding.net/docs/ci/int… help.coding.pages.oa.com/docs/ci/%E5…