你以为开了 auto-update 就高枕无忧了?今天 GitHub Actions 的注册陷阱把这件事彻底揭穿了
你以为开了 auto-update 就高枕无忧了?——今天这件事被 GitHub Actions 的注册陷阱彻底揭穿了。
如果你跑的是 GitHub Actions 自托管 Runner,可能觉得最坏的情况就是「版本老了点,凑合用」。GitHub 给了一个宽限期,自己会更新,应该没问题。
但这个认知今天被戳穿了:auto-update 解决不了你的问题,因为版本检查发生在 auto-update 运行之前。
注册陷阱:auto-update 救不了已经「太旧」的 Runner
GitHub 要求 self-hosted Runner 必须在 2.329.0 以上才能注册。但这里有个 GitHub 自己的文档没有直接说明的坑:
auto-update 只有在 Runner 成功注册之后才会启动。
如果你的 Runner 版本已经在 2.329.0 以下,./config.sh 注册时就会被控制平面直接拒绝,auto-update 根本没有机会运行。这是个先有鸡还是先有蛋的问题。
它会击中两类团队:
- 用 Golden Image 部署 Runner 的团队:系统镜像里打包的 Runner 二进制版本太旧,每次重启或重新部署都触发注册失败。
- 从不更新 Runner 的团队:跑了两三年的 Runner 突然有一天重新注册(比如迁移、重启),直接被挡在门外。
这不是理论问题。2026 年 3 月 GitHub 曾尝试过一次执行这个政策,三天后就暂停了——因为大量 Runner 在旧 cgroup 环境下注册失败,把 CI 管道直接搞瘫了。
两次截止日期:你在哪个时区?
GitHub 给出了明确的时间线:
- 2026 年 7 月 31 日:GitHub Enterprise Cloud + Data Residency(已强制执行)
- 2026 年 9 月 25 日:GitHub Enterprise Cloud(即将强制执行)
在此之前,棕色输出(brownout)窗口已经开始了:8 月 24 日、8 月 31 日、9 月 2 日、9 月 7/9/11/14/16/18 日,每次都是 11:00–15:00 ET。棕色输出窗口期间,低于 2.329.0 的 Runner 连注册都会被阻止。
三步修复路径
第一步:确认当前版本
在任意一台 Runner 上运行:
cat _diag/*.log | grep -i “Runner Version”
或者直接在 GitHub → Settings → Actions → Runners 里看版本列。
第二步:修复 Golden Image(治本)
把当前 Runner 版本直接 Bake 进镜像,而不是依赖注册后的 auto-update:
mkdir -p actions-runner && cd actions-runner
curl -o actions-runner.tar.gz https://github.com/actions/runner/releases/download/v2.329.0/actions-runner-linux-x64-2.329.0.tar.gz
tar -xzf actions-runner.tar.gz
./bin/installdependencies.sh
./config.sh –version
把这几行写进你的 Packer/Terraform/Docker 镜像构建脚本,每次重建镜像都用当前稳定版。以后 Runner 启动时注册检查就能通过,auto-update 继续维持最新状态。
第三步:处理已有 Runner
如果镜像不好改,在现有机器上手动跑一行:
./config.sh –url <your-org/repo> –token <runner-token> –disableupdate
等等——–disableupdate 慎用。用了这个参数,你就承担了每 30 天内手动升级的义务。GitHub 每个新版本发布后,超过 30 天不更新,Runner 会停止接收任务。所以大多数团队应该把 auto-update 开着,在镜像层面解决注册时的版本问题就够了。
为什么不干脆用 Ephemeral Runner
如果你的 Runner 每次 Job 都从新镜像启动,注册检查在全新容器里跑,版本永远是新的,不存在「版本漂移」的问题,30 天规则自动满足。这是从根本上绕过注册陷阱的方案。代价是冷启动时间增加,但安全性和合规性大幅提升。
你现在该做什么
- 今天:检查所有 Runner 版本,列一个清单
- 本周:把当前 Runner 包 Bake 进你的镜像构建流程
- 9 月 25 日之前:完成所有 Runner 的版本更新,避免棕色输出窗口期间注册失败
不要等到棕色输出窗口才发现自己踩坑——GitHub 的政策只会越来越严格,不会再推迟了。
评论区
登录后可评论。