GitHub Actions「spending limit needs to be increased」:今天就讓作業恢復執行
這則訊息表示你私有儲存庫的 CI 已經停止,而且要等有帳單權限的人修好,或等到每月 1 日 UTC 00:00,才會重新啟動。每個等著綠色勾勾的 Pull Request 都跟著一起等。
你現在就能執行作業。把它改成 runs-on: skipbox 並推送:Skipbox 的 Runner 不會用到你的 GitHub 預算或免費分鐘數,所以帳單還沒修好,作業也能啟動。
GitHub 為什麼不啟動作業
執行頁面顯示:
The job was not started because recent account payments have failed or your spending limit needs to be increased.
你的帳號無法再為更多 GitHub 託管 Runner 的時間付費。原因有三種:
| 原因 | 怎麼判斷 | 由誰修正 |
|---|---|---|
| 設定為停止用量的預算已用完 | Budgets and alerts 顯示某個 Actions 預算已達上限 | 組織的擁有者(個人帳號則是你自己) |
| 免費分鐘數用完,又沒有付款方式 | 沒有登記信用卡,或 Actions 預算為 US$0 | 擁有者或帳單管理員新增信用卡 |
| 付款失敗 | GitHub 寄信通知你扣款遭拒 | 擁有者或帳單管理員 |
預算在 Billing & Licensing → Budgets and alerts,信用卡在 Billing & Licensing → Payment information。修正後,已被拒絕的作業不會自己恢復:打開每次執行,按一下 Re-run failed jobs。如果帳單看起來沒問題,作業卻還是沒有啟動,只有 GitHub Support 能解除。另一則預算訊息有自己的指南:Actions 預算阻止了進一步使用。
被擋下的是私有儲存庫上的 GitHub 託管 Runner。自架 Runner 不受影響:GitHub 不對它們的分鐘數收費。Skipbox 就是自架 Runner。
修好帳單,也只撐得了一個月
免費額度是每月 US$12 或 US$18,等於 ubuntu-latest 的 2,000 或 3,000 分鐘。每次推送都跑 CI 的團隊,月中就會用完。登記信用卡或提高預算,只是把封鎖變成按分鐘計費的帳單:
| 每月分鐘數(4 vCPU) | GitHub | Skipbox S | 每月省下 |
|---|---|---|---|
| 10,000 | $102 | $39 | $63 |
| 20,000 | $222 | $39 | $183 |
| 30,000 | $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 App,並選擇被擋下的儲存庫。
- 修改
runs-on並推送。
你剛推送的執行就會在 Skipbox 上啟動,環境是內含 Docker、Node.js 和 Python 的 Ubuntu 24.04。組織和個人帳號都能用。GitHub 停止你的作業時該怎麼辦說明了步驟,以及怎麼換回來。
安全性
- 每個帳號都有自己的機器。你的作業絕不會和其他公司的作業共用機器。
- 每個作業結束後,Skipbox 會清除 Runner 的憑證、程序和容器。從 2026 年 11 月 13 日起,你的 checkout 和它的建置輸出(Cargo 的
target/)會留在你的專屬機器上,供之後的作業使用;開啟「每個作業都用新 VM」,每個作業就會用一台全新的機器。 - 沒有寫入權限的人提交的程式碼(例如來自 fork 的 Pull Request)會在全新、只用一次的機器上執行。
用被擋下的作業試試看
試用不需信用卡,為期 7 天或 3,000 作業分鐘。把被擋下的作業改成 runs-on: skipbox,推送,今天就合併,不必等帳單。
常見問題
出現這個錯誤後,怎麼讓作業馬上跑起來?
把被擋下的作業的 runs-on 改成 skipbox 並推送。對 GitHub 來說,Skipbox 的 Runner 是自架 Runner,所以不會用到你的預算或免費分鐘數,作業不必等任何人處理帳單就能啟動。試用不需信用卡。
這個錯誤也會擋下自架 Runner 嗎?
不會。它擋下的是 GitHub 託管的 Runner。GitHub 不對自架 Runner 的分鐘數收費,也不會算進你的內含運算額度,所以不論預算用完或沒有信用卡,都擋不下它們。這就是 Skipbox 上的作業會繼續執行的原因。
我已經提高預算,作業還是沒有啟動,怎麼辦?
重新執行失敗的作業:GitHub 不會自動重試。檢查是否還有另一個涵蓋 Actions 的預算也用完了,並在 Payment history 中查看有沒有扣款失敗;如果都沒問題,請聯絡 GitHub Support。處理期間,把作業改成 runs-on: skipbox,CI 就不必等客服回覆。
封鎖什麼時候會自己解除?
在每月 1 日 UTC 00:00,下一個帳單週期開始、內含運算額度重設的時候。如果那還要好幾天,Skipbox 今天就能執行這個作業。
怎麼避免下個月又發生?
預算調高,按分鐘計費的帳單就跟著變大;調低,這個錯誤就會再出現。把作業移到 Skipbox,就能讓它們脫離 GitHub 的計費:每月固定 $39,分鐘數不限。
更新於 2026年11月11日