# "Your spending limit needs to be increased"：今天就让 GitHub Actions 恢复运行

> 预算用完、免费分钟数用完且没有付款方式，或付款失败时，GitHub 会显示这条消息并拒绝启动作业。在有人修好计费之前，合并只能等待。把 runs-on 改为 skipbox，作业今天就能在 GitHub 预算之外运行，之后每月固定 $39，分钟数不限。

这条消息意味着你私有仓库的 CI 已经停止，在有计费权限的人修好它之前，或在 1 日 00:00 UTC 之前，都不会再启动。每个等待绿色勾的拉取请求也跟着一起等。

你现在就可以运行这个作业。把它改为 `runs-on: skipbox` 并推送：Skipbox 的运行器不消耗你的 GitHub 预算或免费分钟数，所以即使计费还没修好，作业也会启动。

- 改为 `runs-on: skipbox` 的作业今天就能启动，不用绑新卡，也不用提高预算
- 每月固定 $39，分钟数不限；在 GitHub 的 4 核运行器上跑 2万分钟要 $222
- 背后没有 GitHub 预算，所以下个月底 CI 不会再次冻结

**作业现在被拦住了？** 把私有仓库的作业改为 `runs-on: skipbox`：它会在 Skipbox 上运行，不消耗你的 GitHub 预算。 免费 7 天或 3,000 分钟，无需绑卡。 [用 GitHub 免费开始](https://app.skipbox.dev/sign-in?ref=guide-limit-blocked)

## GitHub 为什么不启动作业

运行页面显示：

```text
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 的处理方法](https://skipbox.dev/guides/github-actions-budget-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 包含的额度后的账单。用[首页的费用计算器](https://skipbox.dev/?ref=g-github-actions-spending-limit-job-not-started-zh-hans#cost)算算你自己的分钟数。

而且分钟数只会增加。编程智能体全天候推送、重新运行 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 负责准备和更新机器、在每个作业后清理，并自动做健康检查和重建。

## 切换只需改一行

```yaml
jobs:
  test:
    runs-on: skipbox # was ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm test
```

1. 使用 GitHub 登录 Skipbox。
2. 安装 Skipbox GitHub 应用，并选择被拦住的仓库。
3. 修改 `runs-on` 并推送。

你刚推送的运行就会在 Skipbox 上启动，系统为 Ubuntu 24.04，带有 Docker、Node.js 和 Python。组织和个人账号都可以使用。[GitHub 停止你的作业时该怎么办](https://docs.skipbox.dev/spending-limit)中有具体步骤，以及如何切换回去。

## 安全

- 每个账号都有自己的机器。你的作业从不与其他公司的作业共用一台机器。
- 每个作业结束后，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 · https://skipbox.dev/zh-hans/guides/github-actions-spending-limit-job-not-started
