GitHub Actions (Workflows) Bug:Billing Issue
结论
问题不在 workflow 配置或 YAML 语法,而在仓库所属的 GitHub 账户。该账户仍使用旧版的按仓库计费计划(legacy per-repository billing plan),GitHub Actions 不支持这一计划。
账户或组织的账单管理员需要进入 Billing settings,将旧版计费方案迁移或升级为支持 GitHub Actions 的当前方案。计费状态更新后,再回到仓库启用并运行 Actions。
原因
GitHub Actions 是否可用,取决于仓库所有者的账户类型和计费方案:
- 个人仓库取决于个人账户的计费状态。
- 组织仓库取决于组织的计费状态。
- 如果仓库所属账户仍在使用 legacy per-repository billing plan,GitHub 会在 workflow 执行前将其拦截。
- 修改
.github/workflows/*.yml、重新创建 workflow 或调整 Actions 权限,都无法绕过计费限制。
解决步骤
1. 确认仓库所有者
查看仓库地址:
https://github.com/OWNER/REPOSITORY
OWNER 可能是个人账户,也可能是组织。需要修改的是 OWNER 对应账户的账单方案,不是提交代码的开发者账户。
2. 使用具备账单权限的账户操作
- 个人仓库:由个人账户所有者处理。
- 组织仓库:通常需要 organization owner 或 billing manager 权限。
如果看不到账单或套餐设置,请联系仓库所属组织的管理员。普通 collaborator 通常无权修改组织的计费方案。
3. 进入 Billing settings
登录 GitHub,进入账户或组织的 Settings,找到 Billing、Billing and plans 或类似入口。GitHub 的界面名称可能随版本调整,请以当前页面为准。
按照页面提示,将 legacy per-repository billing plan 迁移或升级为当前可用的账户方案。操作前需要确认:
- 新方案是否收费;
- 私有仓库的 Actions 用量额度;
- 超出额度后的计费方式;
- 是否需要添加或更新付款方式;
- 组织是否设置了 spending limit 或预算限制。
4. 检查仓库的 Actions 权限
解决计费问题后,进入仓库的以下页面:
Settings → Actions → General
确认 Actions 未被禁用,并按需允许相应的 actions 和 reusable workflows。
如果组织统一限制了 GitHub Actions,还需要修改组织级设置。仓库设置无法覆盖组织的强制限制。
5. 重新运行 workflow
可以在 Actions 页面重新运行失败的 workflow,也可以提交一次新变更来触发执行。
例如,创建一个最小测试文件:
# .github/workflows/test.yml
name: Test GitHub Actions
on:
workflow_dispatch:
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Print message
run: echo "GitHub Actions is available"
提交后,可以通过 workflow_dispatch 手动运行,也可以向 main 分支推送一次提交进行验证。
如果暂时无法升级
如果没有账单管理权限,或暂时无法迁移方案,可以考虑:
- 将仓库转移到支持 GitHub Actions 的个人账户或组织;
- fork 到另一个支持 Actions 的账户后运行;
- 暂时改用其他 CI 服务。
转移仓库前,需要检查权限、Secrets、环境保护规则、GitHub Apps、webhooks、Packages 和组织合规要求。Secrets 通常需要重新配置,不应假定它们会在迁移或 fork 后自动可用。
注意事项
- 不要因为这条错误反复修改 workflow YAML,因为错误发生在执行资格检查阶段。
- 公共仓库也不一定能绕过旧版计费方案限制,具体情况以仓库所属账户的 Billing 页面为准。
- 如果升级方案后仍然报错,请继续检查付款方式、消费额度、组织级 Actions 策略和仓库级 Actions 权限。
- 如果 Billing 页面已经显示迁移完成,但错误仍然存在,请保留完整报错、仓库 URL、账户方案截图和操作时间,并联系 GitHub Support 核查账户状态。
备注:内容仅供参考。
