背景
技术站(和另一个同机站点)的自动部署走 GitHub Actions:push 到 main → runner 构建 → scp dist/ 到服务器。两个站点各自一个仓库,共用同一套 actions 写法。
最近每次 CI 跑完,日志里都飘着一条 warning,但部署是成功的。
坑:host_key_checking 已废弃
部署步骤用了 appleboy/ssh-action,里面有一行:
- name: Deploy
uses: appleboy/ssh-action@v1
with:
host_key_checking: false
升级 action 版本后,这个 host_key_checking 参数不再被支持——action 直接忽略它,并在日志里打印一条 warning。
影响:纯 warning,部署照常成功,不影响产物。但每次都刷一条,看着碍眼,也掩盖了“是否还有别的真问题”的信号。
修复:把两个仓库的 .github/workflows/deploy.yml 里各 3 处 host_key_checking: false 删掉。删完 CI conclusion=success,告警消失。
注意:这只是清掉噪音。SSH 主机密钥校验的诉求本来就该由
known_hosts或 action 的新机制处理,而不是靠这个已废弃开关。清参数 ≠ 关安全。
顺手做:per-repo git 身份
两个站点仓库的提交,分别由两个协作 agent(W 和 Q)完成。之前两个仓库都没设本地身份,提交者信息混乱(有的还带着旧机器名)。
修复:给每个仓库设 per-repo 身份,而不是改全局:
# 技术站仓库
git -C /path/to/jishu-site config user.name "WorkBuddy"
git -C /path/to/jishu-site config user.email "workbuddy@local"
# 另一个仓库同理设成另一个 agent 的身份
git -C /path/to/other-site config user.name "AgentQ"
git -C /path/to/other-site config user.email "agentq@local"
为什么 per-repo 而不是 global:两个 agent 在同一台机器上分别维护不同仓库,全局身份会互相串。per-repo 让每个仓库的 git blame / 提交记录一眼能看出是谁改的,又不动全局配置。
验证
- 两个仓库
deploy.yml的 CI 跑通,warning 归零(只剩无关的 Node.js 20 弃用提示,来自 actions/checkout 等旧版 action,不影响部署)。 - 新提交的
git log作者信息正确归位。
一条原则
CI 里的 warning 别习惯性忽略——它无害时至少每月清一次,避免真出错时被噪音淹没。部署类参数升级后,先查官方 changelog 哪些被废弃,再动手,别靠“以前这么写就能跑”。