早上烧饭,你不会先淘米、再洗锅、最后才想起火没开。软件开发也一样,写代码、测试、部署这些事如果分开做,总会有漏掉的步骤。持续集成(CI)就像是把做饭的流程固定下来,每加一味料就尝一尝,出问题马上发现。
一个电商小团队的真实场景
有家做本地特产的小电商平台,三个人开发后台系统。以前每次上线新功能,都要手动打包、上传服务器、跑测试,经常出现“在我电脑上好好的”这种问题。后来他们用了持续集成,只要代码提交到仓库,系统自动运行测试、检查格式、生成新版本。
比如他们用 GitHub Actions 写了个简单的配置:
name: Build and Test
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
每次有人提交代码,这个流程自动跑一遍。有一次同事改了购物车逻辑,忘了处理空状态,测试直接报错,连不上线。省了半夜修 bug 的时间。
别等月底对账才发现账不对
这就像家庭记账,不是每个月底才翻流水,而是每笔支出当场记下。持续集成就是让代码每天甚至每小时都“对一次账”。哪怕只是改了个按钮颜色,系统也会自动检查有没有误伤其他功能。
有个做社区团购的项目,他们接入 CI 后,连文档更新都自动化了。代码一合并,帮助页面自动同步变更,运营人员再也不用问“这个新功能到底怎么用”。
从小事开始,不用一开始就搞复杂
很多人一听“集成”就觉得要买服务器、配一堆工具。其实可以从最简单的做起。比如先写几个核心测试用例,然后在 GitHub 上设个免费的 Action 流程,让它每次自动跑一遍。
就像学做饭,先学会煮熟饭,再练炒菜。有个开发者说,他第一次配 CI 成功时的感觉,就像电饭煲第一次自己跳闸,不用再靠猜生熟。