壹贰线报核实:GitHub Actions 免费额度全拆解,2000 分钟里藏着一个"10 倍扣费"

各位站长、开发者,今天给大家带来一期逐项核对过 GitHub 官方文档的 GitHub Actions 线报。

在所有 CI/CD 工具里,GitHub Actions 的位置很特殊:它不是独立产品,而是长在 GitHub 仓库里的一条流水线。代码推上去,测试自动跑、镜像自动推、站点自动部署——‌不需要额外注册、不需要配构建机、不花一分钱就能开始用‌。对已经把代码放在 GitHub 的项目来说,它的接入成本几乎为零。

而且它的免费政策确实大方:‌公开仓库完全免费且不限时长‌,私有仓库每月 2000 分钟,并发 20 个任务,Linux、Windows、macOS 三种运行器都能用。

不过这条线报的价值不在于重复这些数字——‌而在于把这三个隐藏细节说清楚‌。因为「2000 分钟」这个说法,很容易让人产生一个偏乐观的预期。

先讲清楚最关键的一点:2000 分钟不是"2000 分钟"

这是本文最需要记住的一件事。

GitHub 的免费额度‌按"运行器类型"折算‌,官方给了一张倍率表:

表格
运行器系统扣费倍率2000 分钟折算后
‌Linux‌1 ×‌2000 分钟‌
‌Windows‌2 ×‌1000 分钟‌
‌macOS‌‌10 ×‌‌仅 200 分钟‌

官方文档写得非常直白:‌"在 GitHub 托管的 Windows 和 macOS 运行器上运行的作业,其消耗分钟数是在 Linux 运行器上运行的作业的 2 倍和 10 倍"‌。

官方还给了两个例子帮忙理解:

  • ‌1000 分钟的 Windows 使用时间,会占用账户中包含的 2000 分钟‌;

  • ‌1000 分钟的 macOS 使用时间,会占用账户中包含的 10000 分钟‌。

第 2 条换算过来就是——‌macOS 你实际只能用 200 分钟‌。

这意味着什么?如果你的项目需要做‌多平台矩阵测试‌(同时跑 Linux + Windows + macOS),那个 2000 分钟的"心理预算"会塌得很快。有开发者算过:一个在三个平台同时运行的测试矩阵,实际消耗相当于单平台任务的 ‌3 倍以上‌——而如果这三个平台里包含 macOS,成本还要再翻好几番。

‌实用建议‌:如果你在写多平台矩阵,看看能不能把 macOS 那条腿去掉,或者把它改成"只在打 tag 时触发"。这是省额度最立竿见影的一招。

逐项核实:免费额度完整清单

按 GitHub 官方文档,GitHub Free 计划的 Actions 权益如下:

  • ‌每月分钟数:2000 分钟(私有仓库)‌
    ‌公开仓库:完全免费,不限分钟数‌。这一点你给的信息准确。
    需要补充一个细节:‌公开仓库虽然免费,但如果你用了高于 2 核的大规格运行器(larger runners),仍然要收费‌——官方明确写了"ci 机器使用超过 2 核的 Windows 和 Ubuntu 运行器,将始终收取费用,包括在公共存储库中"。

  • ‌并发作业数:20 个(Free 计划)‌
    这一点你给的信息准确,但要补一条关键限制:‌macOS 并发最多只有 5 个‌。官方并发表是这样的:

    表格
    计划总并发作业数macOS 最大并发
    ‌Free‌‌20‌‌5‌
    Pro405
    Team605
    Enterprise18015

    也就是说,就算你只跑 macOS 任务,也最多同时开 5 个,碰不到 20 这条线。

  • ‌运行器:Linux、Windows、macOS 全覆盖‌
    这一点准确。GitHub 托管的‌标准运行器‌规格是 ‌2 核 CPU / 7GB 内存 / 14GB SSD‌(实测可用磁盘约 30GB)。另外还有 ‌arm64 运行器‌(Linux 和 Windows 都有 2 核档),以及可选的"大型运行器"(larger runners,2–96 核,需付费)。

  • ‌容器与服务支持‌
    这一点准确,具体包括三块能力:

    • ‌容器化作业‌:用 container: 让整个 job 跑在你指定的 Docker 镜像里;

    • ‌Docker 容器动作(Docker container actions)‌:把 action 打包成镜像分发,运行环境一致;

    • ‌服务容器(service containers)‌:给 job 起 MySQL、PostgreSQL、Redis 这类依赖服务,跑集成测试时特别有用——不用自己装数据库。

  • ‌内置包管理:GitHub Packages‌
    这一点准确。但有个重要细节要提醒:‌Packages 的存储是和 Actions 制品共享同一个 500MB 免费额度的‌,官方口径是"仓库使用的存储空间是 GitHub Actions 构件和 GitHub Packages 使用的存储空间总计"。所以别把它们当两份额度算。

  • ‌缓存:10GB‌
    这一项你清单里没提,但对实际使用很关键。actions/cache 提供 ‌每月 10GB 的缓存空间‌(Free / Pro / Team 计划相同),用来缓存依赖(如 npm、pip、Maven 的包)能大幅缩短构建时间——‌间接等于省分钟数‌。

  • ‌制品存储:500MB(这里有个大坑,下面单独说)‌

  • ‌单次作业最长执行 6 小时‌
    超过会被直接结束。另外整个工作流的最长运行时间是 35 天。这两条不是额度限制,但规划长任务时要留意。

实测踩坑:制品存储那个"删了也不回退"的陷阱

这是本文第二个需要重点讲的,因为它‌不看额度表、也不会提前警告你‌。

很多人以为制品存储是"500MB 用满即止"——删掉旧制品,额度就回来了。‌不是。‌

GitHub 的制品存储按 ‌GB·小时(GB-Hour)‌ 计量:

‌消耗 = 占用存储空间(GB)× 文件留存时长(小时)‌

官方给的换算方式是:‌0.5GB × 30 天 × 24 小时 = 360 GB·小时/月‌。也就是说,你每月能用的其实是‌约 360 GB·小时‌这个"存储时长总量",而不是"某一瞬间不超过 500MB"。

‌这里面有两个坑:‌

  1. ‌制品默认留存 90 天‌。一个 100MB 的构建产物,如果不清除,会在 90 天里‌持续消耗‌存储额度。多个版本的产物一叠加,额度很快就见底了。

  2. ‌额度耗尽后,删除制品也不会回退‌。由于按 GB·小时累计计费,‌已消耗的额度无法挽回‌——删除只能防止继续消耗,额度必须‌等月度账单周期重置‌才能恢复。而在额度和分钟数耗尽期间,‌流水线会被锁定无法执行‌。

‌实用建议‌:在 workflow 里显式设置 retention-days(比如 7 天或 14 天),并且在上传制品的步骤里控制 path 范围,别把整个构建目录都传上去。这一条比控制分钟数更容易被忽略。

2026 年的两条时效信息,值得知道

‌信息一:2026 年 1 月 1 日起,托管运行器价格有过调整。‌

按第三方整理的信息,GitHub 在 2026 年初对托管运行器价格做了调整,‌Linux 2 核实例降至每分钟 0.006 美元、Windows 2 核 0.010 美元、macOS 0.062 美元‌。这一组单价和 GitHub 官方定价文档里列出的数字是吻合的。

需要说明的是,‌这对免费用量本身没有影响‌——2000 分钟还是 2000 分钟。它影响的是你‌超出免费额度之后的付费单价‌。如果你正在评估"要不要升级、超出后大概花多少钱",按这几个单价算即可。

‌信息二:曾计划对私有仓库的"自托管运行器"收平台费,但已推迟。‌

GitHub 曾在 2026 年宣布,要对‌私有仓库里的自托管 Runner‌收取每分钟 0.002 美元的平台费——这在开发者社区引发了不小的争议,因为自托管 Runner 用的是用户自己的机器和电费。‌结果这项政策在宣布后 48 小时内就被推迟,至今没有实施。‌

这条写进线报的原因是:‌自托管 Runner 目前仍然是"零分钟消耗"的免费扩容方案‌。你可以把它理解成——把 runs-on 从托管运行器换到自己的一台服务器上,任务跑多少分钟都不占用那 2000 分钟额度。对构建量大的项目来说,这是比升级付费更划算的一条路(代价是自己维护机器)。

免费额度不够用时的三条路

结合起来看,GitHub Actions 的免费额度有明确的扩容手段,按成本从低到高排:

  1. ‌自托管 Runner(最省)‌。把自己的服务器、甚至家里的闲置机器注册成 Runner,runs-on 指向自定义标签,任务就不消耗托管分钟数。目前没有平台费。‌代价‌:机器要自己维护,安全问题自己负责(公开仓库尤其要小心,别让陌生 PR 在自托管 Runner 上跑代码)。

  2. ‌升级付费计划‌。按公开信息,Team 计划(4 美元/用户/月)提供 3000 分钟、Enterprise(21 美元/用户/月)提供 50000 分钟。适合团队协作、需要更多额度和高级功能的场景。

  3. ‌优化流水线(不花钱)‌。这条最实在,具体三招:

    • ‌用缓存‌:actions/cache 缓存依赖,一次 npm ci 可能省掉几分钟,10GB 缓存额度是白给的;

    • ‌控制触发条件‌:加 paths 过滤,别让改个 README 也触发全量构建;同时小心 push 和 PR 同时触发导致同一工作流跑两遍;

    • ‌裁剪矩阵‌:多平台矩阵里去掉不必要的 macOS/Windows 腿,或者只在打 tag 时跑。

壹贰线报专属:两套务实方案

‌开源项目方案(免费额度基本用不完)‌
如果你的项目是开源的、放在公开仓库,那 GitHub Actions 对你几乎就是"无限免费"——公开仓库不限分钟数,标准运行器也不收费。多平台矩阵、多架构构建都可以放开跑。‌唯一要盯的是制品存储那 500MB / 360 GB·小时‌,给制品设好 retention-days,别让 90 天的历史产物把额度啃光。这是最适合 GitHub Actions 的使用场景,也是它相对其他 CI 平台最大的优势。

‌私有项目方案(要精打细算)‌
私有仓库的 2000 分钟要省着用:‌尽量只用 Linux 运行器‌(倍率 1×),需要 Windows 就做好"1000 分钟"的心理预期,需要 macOS 则要按"200 分钟"来规划。多平台矩阵建议改成条件触发。如果构建量大,‌优先考虑自建 Runner‌——目前不收平台费,等于把额度变成无限。制品上传记得加留存天数限制。

最后提示

壹贰线报只发核实过的信息。GitHub Actions 这次核下来,有个挺有意思的感受:‌它的免费政策本身是同类里最实在的‌——公开仓库不限量这一条,别的平台都给不出来。但它把"复杂"藏在了细节里:2000 分钟要按倍率折算、并发 20 里 macOS 只占 5、制品存储按 GB·小时算且删了不回退。这些不看文档是想不到的。

上手前建议想清楚四件事:一是‌项目是公开还是私有‌,这决定了你是"基本无限"还是"要精算";二是‌矩阵里有没有 macOS‌,10 倍扣费是最贵的坑;三是‌制品留存设了几天‌,这是最容易无声吃掉额度的项;四是‌构建量有多大‌,大到一定程度就该考虑自建 Runner。


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。