"Your spending limit needs to be increased":今天就让 GitHub Actions 恢复运行
这条消息意味着你私有仓库的 CI 已经停止,在有计费权限的人修好它之前,或在 1 日 00:00 UTC 之前,都不会再启动。每个等待绿色勾的拉取请求也跟着一起等。
你现在就可以运行这个作业。把它改为 runs-on: skipbox 并推送:Skipbox 的运行器不消耗你的 GitHub 预算或免费分钟数,所以即使计费还没修好,作业也会启动。
GitHub 为什么不启动作业
运行页面显示:
The job was not started because recent account payments have failed or your spending limit needs to be increased.
你的账号无法再为 GitHub 托管的运行器时间付费。原因有三种:
| 原因 | 如何判断 | 由谁修复 |
|---|---|---|
| 设置了用完即停止使用的预算,且已用完 | Budgets and alerts 中显示某个 Actions 预算已达上限 | 组织所有者(个人账号则是你自己) |
| 免费分钟数已用完,且没有付款方式 | 没有绑卡,或 Actions 预算为 $0 | 所有者或账单管理员绑定银行卡 |
| 付款失败 | GitHub 发邮件通知你扣费被拒 | 所有者或账单管理员 |
预算在 Billing & Licensing → Budgets and alerts 中,银行卡在 Billing & Licensing → Payment information 中。修复之后,已被拒绝的作业仍然是拒绝状态:打开每次运行,点击 Re-run failed jobs。如果计费看起来没问题,作业却仍不启动,只有 GitHub Support 能解决。另一条预算消息有单独的指南:An Actions budget is preventing further use 的处理方法。
被拦住的是私有仓库上 GitHub 托管的运行器。自托管运行器不受影响:GitHub 不对它们的分钟数计费。Skipbox 就是自托管运行器。
修好计费只能撑一个月
免费额度每月 $12 或 $18,即 ubuntu-latest 的 2,000 或 3,000 分钟。每次推送都跑 CI 的团队,到月中就会用完。绑卡或提高预算,只是把拦截变成按分钟计费的账单:
| 每月分钟数(4 vCPU) | GitHub | Skipbox S | 每月节省 |
|---|---|---|---|
| 1万 | $102 | $39 | $63 |
| 2万 | $222 | $39 | $183 |
| 3万 | $342 | $39 | $303 |
GitHub 的金额是减去 GitHub Team 包含的额度后的账单。用首页的费用计算器算算你自己的分钟数。
而且分钟数只会增加。编程智能体全天候推送、重新运行 CI,端到端测试套件和矩阵构建让每次推送成倍增加,而低到能压住账单的预算,也低到下个月会再次让合并停下。每一次,整个团队都在等那个能修改计费的人。
用 Skipbox 后有什么不同
作业不会因计费而停止
Skipbox 上的作业既不消耗你的 GitHub 额度,也不消耗预算,GitHub 扣费失败也影响不到它们。到达的作业多于套餐能同时运行的数量时,它们会排队等待,而不会失败。
一个固定价格,分钟数不限
| 套餐 | 机器 | 每月 |
|---|---|---|
| S | 4 vCPU,16 GB | $39 |
| M | 8 vCPU,16 GB | $79 |
| L | 16 vCPU,32 GB | $149 |
更快,而且无需管理
你账号的机器在作业之间一直保留,所以 Docker 层、包缓存和已安装的工具,下一次运行时都在;缓存空间是 GitHub 的 7 倍以上。Skipbox 负责准备和更新机器、在每个作业后清理,并自动做健康检查和重建。
切换只需改一行
jobs:
test:
runs-on: skipbox # was ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm test
- 使用 GitHub 登录 Skipbox。
- 安装 Skipbox GitHub 应用,并选择被拦住的仓库。
- 修改
runs-on并推送。
你刚推送的运行就会在 Skipbox 上启动,系统为 Ubuntu 24.04,带有 Docker、Node.js 和 Python。组织和个人账号都可以使用。GitHub 停止你的作业时该怎么办中有具体步骤,以及如何切换回去。
安全
- 每个账号都有自己的机器。你的作业从不与其他公司的作业共用一台机器。
- 每个作业结束后,Skipbox 会清除运行器的凭据、进程和容器。从 2026年11月13日起,你的检出目录及其构建输出(Cargo 的
target/)会留在你的专属机器上,供之后的作业使用;开启“每个作业用新虚拟机”后,每个作业都在一台新机器上运行。 - 没有写入权限的人提交的代码(例如来自复刻的拉取请求)在一台新的一次性机器上运行。
用被拦住的作业试试
试用无需绑卡,为期 7 天 或 3,000 作业分钟。把被拦住的作业改为 runs-on: skipbox 并推送,今天就能合并,不用再等计费。
常见问题
出现这个错误后,怎样马上让作业运行起来?
把被拦住的作业的 runs-on 改为 skipbox 并推送。对 GitHub 来说,Skipbox 的运行器是自托管运行器,不消耗你的预算或免费分钟数,所以不用任何人去动计费,作业就会启动。试用无需绑卡。
这个错误也会让自托管运行器停下吗?
不会。它停下的是 GitHub 托管的运行器。GitHub 不对自托管运行器的分钟数计费,也不把它们计入包含的计算额度,所以预算和没绑卡都拦不住它们。这就是 Skipbox 上的作业照常运行的原因。
已经提高了预算,作业还是不启动,怎么办?
重新运行失败的作业:GitHub 不会自动重试。检查是否还有另一个覆盖 Actions 的预算已用完,以及 Payment history 中是否有失败的扣费;如果都没问题,请联系 GitHub Support。在工单处理期间,把作业改为 runs-on: skipbox,CI 就不用等工单。
不处理的话,什么时候会自动解除?
在每月 1 日 00:00 UTC,下一个计费周期开始、包含的计算额度重置时。如果那还要好几天,Skipbox 今天就能运行这个作业。
怎样避免下个月再出现?
预算调高,按分钟计费的账单就更大;预算调低,这个错误就会再出现。把作业改到 Skipbox,就能让它们脱离 GitHub 的计费:每月固定 $39,分钟数不限。
更新于 2026年11月11日