Skip to content

CI/CD 是"代码提交 → 自动构建 → 自动测试 → 自动部署"的自动化流水线,让发布从"手动半天"变成"一键几分钟"。这篇快速入门:概念、流水线阶段、一个 GitHub Actions 例子。

一、解决什么问题:发布不靠"人肉"

没有 CI/CD:每次发版手动打包、手动测、手动传服务器、手动重启——又慢又容易错(漏打包、忘重启、环境不一致)。

有 CI/CD:代码一提交,流水线自动跑——构建、测试、部署全自动,发布可重复、可回滚。

二、流水线的核心阶段

代码提交 → ① 构建(编译打包) → ② 测试(单测/E2E) → ③ 部署(发到环境) → ④ 通知
阶段干什么对应文章
构建编译、打镜像/包
测试跑单测/E2E,不过就停JUnit 5 快速入门》《Playwright 快速入门
部署推镜像、滚动发布
通知成功/失败发消息

关键:测试阶段挂了就阻止部署——CI/CD 不只是自动化,更是"质量门禁"。

三、GitHub Actions 例子

.github/workflows/deploy.yml

yaml
name: CI/CD
on:
  push:
    branches: [main]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: 构建
        run: |
          npm ci
          npm run build

      - name: 测试(不过就部署不了)
        run: npm test

      - name: 部署
        run: |
          scp -r dist/ user@server:/var/www/
          ssh user@server "systemctl reload nginx"

流程:推代码到 main → 自动构建 → 自动测试 → 测试过了自动部署。哪步失败,后续自动停。

四、核心概念

概念是什么
CI(持续集成)频繁把代码合并到主干,每次合并都自动构建+测试
CD(持续交付/部署)CI 通过后自动发布到环境
流水线(Pipeline)构建→测试→部署的自动化流程定义
质量门禁测试不通过就不让进下一步

小结

  • CI/CD = 构建/测试/部署自动化流水线,发布从"人肉"变"一键"
  • 核心阶段:构建 → 测试(质量门禁)→ 部署 → 通知
  • GitHub Actions 是免费的 CI/CD 平台(.github/workflows 下定义 yml)
  • 测试是门禁:不过就停,防止坏代码上线

想了解上线后的监控(流水线部署完怎么盯着),看「监控告警快速入门」(文章整理中)。