实战 CI/CD:利用 GitHub Actions 管理大型开源项目的自动化构建
引子
前不久在关于 CI/CD 文章《实战 CI/CD:微软加持的 GitHub Actions,怎么用才香?》中简单介绍了一下 GitHub 的官方 CI/CD 工作流服务 GitHub Actions,用一个实际的 Python 项目例子做了演示。不过,这部分内容相对较初级,而对于一些大型项目来说,我们可能需要更复杂的工作流。而这篇文章的主要目的是帮助开发者们熟悉软件开发中的工程化部分。
本篇文章以实际的大型项目为例,介绍一下笔者的开源项目 Crawlab 在 GitHub Actions 中的 CI/CD 应用。对 Crawlab 不熟悉的读者,可以参考一下官网或官方文档,简单来说,Crawlab 就是能帮助提高数据采集效率的爬虫管理平台。
整体 CI/CD 架构
Crawlab 新版本 v0.6 将不少通用的模块进行了拆分,因此整个项目由多个子项目依赖组成,例如主项目 crawlab 依赖于前端 crawlab-ui 和后端 crawlab-core。这样切分成多个子项目之后,各个模块耦合性降低,可维护性增加。
以下是 Crawlab 的整体 CI/CD 架构示意图。







