当您扩大使用范围时,可能会受到由 GitHub Actions 导致的速率限制。 可以通过联系 来增加一些限制。
除非另有说明,否则达到限制时的预期行为将是取消工作流或作业。
这些限制可能会有变动。
现有系统限制
| 限制类别 | 限制 | 阈值 | 说明 | 是否可以增加 GitHub 的支持? |
|---|---|---|---|---|
| 工作流执行限制 | 工作流运行时间 | 35 天/工作流运行 | 如果工作流程运行时间达到此限制,其运行将被取消。 此时间段包括执行持续时间以及等待和审批所用的时间。 | |
| 工作流执行限制 | 网关审批时间 | 30 天 | 工作流最多可在环境审批上等待 30 天。 | |
| 工作流执行限制 | 作业矩阵 | 256 个作业/工作流运行 | 一个作业矩阵在每次工作流运行中最多可以生成 256 个作业。 此限制适用于 GitHub 托管和自托管运行器。 | |
| 工作流执行限制 | 重新运行 | 50 次重新运行 | 工作流运行最多可以重新运行 50 次。 此限制包括完整重新运行和部分作业重新运行。 | |
| 支持工单 | ||||
| 支票 | 每个检查套件的检查运行次数 | 50,000 次检查运行/检查套件 | 检查套件最多可以运行 50,000 次检查。 此限制适用于通过 Checks API 创建的检查运行和通过 GitHub Actions 工作流运行创建的检查运行。 当检查套件达到此限制时,无法为该检查套件创建其他检查运行。 | |
| 支持工单 | ||||
| 工作流排队 | 工作流触发事件速率限制 | 1500 个事件/10 秒/仓库 | 每个仓库触发工作流运行的事件数量有限制。 | |
| 支持工单 | ||||
| 工作流排队 | 工作流运行排队 | 500 个工作流运行/10 秒 | 达到限制后,本应通过 Webhook 事件触发的工作流运行将被阻止,不会排队。 可重用工作流被视为单个实体。 例如,包含 30 个可重用工作流的运行在此情况下计为 1 个。 | |
| 自承载 | 运行器注册 | 1500 个运行器/5 分钟/仓库/组织/企业 | 可按仓库/组织/企业注册运行器。 | |
| 支持工单 | ||||
| 自承载 | 每个运行器组的运行器数量 | 10,000 个运行器 | 每个运行器组同时注册的运行器数量。 | |
| 自承载 | 作业执行时间 | 5 天 | 工作流中的每个作业的最长执行时间为 5 天。 如果作业达到此限制,该作业将会终止并失败。 | |
| 自承载 | 作业队列时间 | 24 小时 | 作业可以在队列中等待 24 小时才自动取消。 | |
| 所有 GitHub 托管运行器 | 作业并发 | 不定 | 请参阅GitHub 托管运行器的作业并发限制。 | |
| 支持工单 | ||||
| 所有 GitHub 托管运行器 | 作业执行时间 | 6 小时 | 工作流中的每个作业最长可运行 6 小时。 如果作业达到此限制,该作业将会终止并失败。 | |
| 大型运行程序 | 每个运行器并发限制 | 因运行器类型而异 | 设置运行器时确立。 对于 Linux CPU 运行器,最大值通常为 1,000,但因类型而异。 请参阅GitHub 托管运行器的作业并发限制。 | |
| 支持工单 | ||||
| 大型运行程序 | 静态 IP 限制 | 10 个 IP | 每个企业和组织 10 个 IP。 | |
| 支持工单 | ||||
| 大型运行程序 | 用于 VNet 注入的专用 IP 缩放 | 30% 缓冲量 | 需要一个缓冲量来容纳预期的最大作业并发量。 请参阅大型运行器上用于 VNet 注入的专用 IP 缩放。 | |
| 可配置Azure虚拟网络 | ||||
| 依赖项缓存 | 每分钟上传数 | 每分钟 200 个 | 每个存储库限制为每分钟 200 个缓存条目上传。 如果超出此限制,则在速率限制重置之前,后续缓存上传尝试将失败。 | |
| 依赖项缓存 | 每分钟下载数 | 每分钟 1500 个 | 每个存储库限制为每分钟 1500 个缓存条目下载。 如果超出此限制,则在速率限制重置之前,后续缓存下载尝试将失败。 | |
| 依赖项缓存 | 每分钟删除数 | 每分钟 400 个 | 每个存储库限制为每分钟 400 个缓存删除作。 如果超出此限制,则在速率限制重置之前,后续缓存删除尝试将失败。 每个通过键值或 ID 删除缓存的请求都计入此限制。 |
GitHub 托管运行器的作业并发限制
GitHub 支持部门可提高 GitHub Actions 的作业并发限制。 要请求提高,请提交支持工单。
| 运行器类型 | GitHub 计划 | 同时运行的作业总数 | MacOS 作业同时运行的最大数量 | 最大并发 GPU 作业数 | |---|---|---|---|---| | 标准 GitHub 托管运行器 | 免费 | 20 | 5 | 不适用 | | 标准 GitHub 托管运行器 | Pro | 40 | 5 | 不适用 | | 标准 GitHub 托管运行器 | 团队 | 60 | 5 | 不适用 | | 标准 GitHub 托管运行器 | Enterprise | 500 | 50 | 不适用 | | 大型运行器 | 团队 | 1000 | 5 | 100 | | 大型运行器 | Enterprise | 1000 | 50 | 100 |
注意
macOS 最大并发作业数由标准 GitHub 托管运行器和 GitHub 托管大型运行器共享。
所有 GitHub托管运行程序的存储限制
GitHub 支持 无法 增加 GitHub Actions 存储限制。
| 计划 | 工件存储 | 分钟数(每月) | 缓存存储(每个存储库) | 自定义映像存储 |
|---|---|---|---|---|
| GitHub Free | 500 MB | 2,000 | 10 GB | 不適用 |
| GitHub Pro | 1GB | 3,000 | 10 GB | 不適用 |
| GitHub Free 适用于组织 | 500 MB | 2,000 | 10 GB | 不適用 |
| GitHub Team | 2 GB | 3,000 | 10 GB | 75 GB |
| GitHub Enterprise Cloud | 50 GB | 50,000 | 10 GB | 150 GB |
大型运行器上用于 VNet 注入的专用 IP 缩放
在使用大型运行器进行 VNet 注入时,需要确定合适的子网 IP 地址范围。为此,我们建议在你预期的最大作业并发量的基础上增加一定缓冲量。 例如,如果网络配置中的运行器最大作业并发数为 300,建议使用可容纳至少 390 个运行器的子网 IP 地址范围。 请注意,Azure在每个子网(前 4 个和最后 1 个)中保留 5 个 IP,这将根据运行程序要求设置最小实际子网大小。 非常小的子网(例如 /29 或更小)可能无法提供足够的可用地址来满足需求。
通常会达到从属服务限制
GitHub 的 REST API 速率限制 适用于 GitHub Actions 用户,常见的限制包括:
-
未经身份验证的用户-如果仅提取公共数据,则可以发出未经身份验证的请求。 未经身份验证的请求与原始 IP 地址相关联,与发出请求的用户或应用程序无关。
未经身份验证的请求的速率限制为每小时 60 次请求。
-
经过身份验证的用户-可以使用 personal access token 发出 API 请求。 也可以授权 GitHub App or OAuth app,之后则可以代表你发出 API 请求。
所有这些请求均计入 5,000 次请求/小时的个人速率限制。 由 GitHub Enterprise Cloud 组织所有的 GitHub App 代表你发出的
-
GitHub应用安装-使用安装访问令牌进行身份验证的 GitHub Apps 使用安装的最低速率限制(每小时 5,000 个请求)。 如果安装位于 GitHub Enterprise Cloud 组织上,则该安装的速率限制为每小时 15,000 个请求。
对于不在 GitHub Enterprise Cloud 组织上的安装,安装的速率限制将根据用户和仓库数量进行缩放。 具有 20 个以上仓库的安装每小时会为每个仓库再接收 50 个请求。 位于拥有超过 20 个用户的组织的安装,每个用户每小时多获得 50 个请求。 速率限制增加的上限为每小时 12,500 个请求。
GitHub App 用户访问令牌(与安装访问令牌相反)的主要速率限制由经过身份验证的用户的主要速率限制决定。 此速率限制等于另一个 GitHub App 或 OAuth app 代表用户发出的任何请求数,加上用户通过 personal access token 发出的任何请求数。 有关详细信息,请参阅“REST API 的速率限制”。
-
**OAuth 应用 -**这些请求的速率限制为每 OAuth app 5,000 个请求。 如果应用由 GitHub Enterprise Cloud 组织所有,则速率限制为每小时 15,000 次请求。
-
GITHUB 令牌-
GITHUB_TOKEN的速率限制为每个存储库每小时 1,000 个请求。对属于 GitHub Enterprise Cloud 帐户的资源的请求的限制为每个存储库每小时 15,000 个请求。 -
辅助速率限制- 除了主要速率限制外, GitHub 还强制实施辅助速率限制,以防止滥用并让 API 可供所有用户使用,这些 API 不可与 GHEC 一起配置。 有关详细信息,请参阅“REST API 的速率限制”。
Docker Hub的GitHub Actions速率限制
- GitHub 托管运行器拉取公共镜像: 不应用 Docker Hub 的速率限制。
- GitHub 托管运行器拉取专用镜像: 从 Docker Hub 拉取专用镜像受速率限制约束。
- 自托管运行器拉取公共或专用镜像: 从 Docker Hub 拉取镜像始终受速率限制约束。