CI/CD
CI/CD翻译为持续集成/持续部署,对于软件开发而已是必不可少的,而且也是顺利成章的。持续集成的过程就是软件从从一个个commit持续变完善的过程,持续集成的目的是保证每个commit是安全的。我们在开发时确保:
- 合理的模块分隔,每个提交单一功能原则,尽量减少新代码破坏原有代码的机会
- CI对每个提交进行安全性检查,一般是构建和测试。即使是比较大规模的代码重构提交,CI也能进行全局的安全性检查保证相对的正确性。
这样就能一直以较小的开销进行开发发布,比较像在执行平摊分析算法。本文使用的方法不局限于Angular项目。
Github actions
本文主要涉及对github托管的Angular项目项目进行CI集成,以及对release也做成了一个github workflow。本文对CD不做涉及。如果是托管在gitlab等其他平台的项目,则需使用不同的方法。
本文CI使用的工具为github actions,仍然在beta测试中,本文出现的相应api有可能日后还会更改,如发现不能用,请评论。
主要概念
- Workflow 自动化流程单元,可定义多个job并行运行,比如CI里我们可以定义build和test,他们并行进行测试
- Action 执行单元,真正功能代码运行的单元,job可以调用。github提供了
actions/setup-node
用于node和前端相关的项目。
对比Gitlab CI/CI
对比Gitlab CI/CD,
- 因为github起步略晚,所