CI/CD 是现代软件开发中非常重要的一套工程化实践。
你刚才看到的那个月薪 20--21K、驻罗马尼亚的软件集成工程师岗位,它的核心工作之一就是维护 CI/CD 流水线。
CI/CD 是什么意思?
CI/CD 是两个英文概念的缩写:
| 缩写 | 英文 | 中文 |
|---|---|---|
| CI | Continuous Integration | 持续集成 |
| CD | Continuous Delivery | 持续交付 |
| CD | Continuous Deployment | 持续部署 |
CI/CD 就是把软件开发过程中代码检查、编译、测试、打包、发布等步骤尽可能自动化。
举个你熟悉的 Qt/C++ 项目例子
假设你和另外两名同事一起开发一个 Qt 软件。
以前:手动构建
你们可能是这样工作的:
-
每个人在自己的电脑上编写代码。
-
将代码提交到 Git。
-
需要发布新版本时,由某个同事拉取最新代码。
-
打开 Qt Creator,编译项目。
-
手动检查运行是否正常。
-
将EXE、DLL等文件打包,交给测试人员。
这个过程可能遇到一些问题:
-
某个同事的代码在他电脑上能编译,在别人电脑上却编译失败。
-
缺少某个 DLL 或依赖库。
-
忘记打包 Qt 插件。
-
不同开发人员使用的编译器版本不同。
-
发布时忘记执行某些测试。
使用 CI/CD 之后


这样一来,只要开发人员提交了代码,服务器就可以自动执行一系列预先配置好的工作。
如果编译失败,系统会通知开发人员。
如果测试全部通过,就可以生成一个可供测试或交付的软件版本。
这就是 CI/CD的基本思想。