从 0 到上线 网站建设实训课
总览/ 课程地图/ S4 自动化

M18CI 自动部署与测试环境

所属路径 B / C 第 18 / 31 讲 S4 自动化
push 即上线,但要能排障
学完能写出一条可排障的流水线,并知道它什么时候在骗你

01为什么重要

流水线最容易骗人的地方是「绿」。配置缺失时它会优雅跳过,run 显示成功,实际一个文件都没传。所以判断标准必须是步骤级结果,不是那个绿勾。

02要讲清的 4 件事核心要点

  • workflow 骨架与 Secrets 命名
  • 构建 + 传输步骤;降级护栏(产物版本低于线上即中止)
  • 测试环境:先用子域或端口跑预发布,验过再切主域
  • 步骤级排障,不看 run 的绿勾

03照着做:4 步操作顺序

  1. 在仓库里配 LH_HOST / USER / ROOT / SSH_KEY
  2. 写 workflow:构建 + 传输 + 降级护栏
  3. push 后下钻到步骤级看结果,别看 run 绿勾
  4. 故意把版本号改小,验证护栏会拦
curl -s "https://api.github.com/repos/OWNER/REPO/actions/runs?per_page=1" | grep -E "conclusion|head_sha"
# 再下钻到 jobs,看 Deploy 那一步是 success 还是 skipped

04产出物与验收做完怎么算过

产出物

一条可用流水线 + 一个预发布地址

验收判据

可验push 后 5 分钟内线上内容变化且能指出哪一步生效;预发布与生产可分别访问

05练习15 分钟内可做完

故意把版本号改小再 push,观察降级护栏是否把你拦下。

06最容易踩的坑

runner 到服务器链路不稳会卡在 in_progress 并留僵尸会话;重跑旧部署会造成「失败的绿色部署」
后果:重跑一个旧的部署 run,把旧产物重新盖回线上,而它最后只因自检失败才标红——「失败的绿部署」比红灯危险。

07自检表进度存在本机浏览器

0 / 6

08本讲术语全部 28 条

  • 降级护栏:上传前把本次产物版本与线上比对,产物更旧就中止,防止旧版本覆盖新版本。
  • 预发布:上线前先在独立地址(子域或端口)跑一遍真环境,验过再切主域,不拿生产当试验场。
  • CI 与 Actions:CI=每次提交后自动跑构建与检查;GitHub Actions 是它的一种实现,配置写在 .github/workflows/。
  • Secrets:仓库里加密保存的变量(如服务器地址与私钥),只在流水线运行时注入,不进代码。