Skip to main content

Actions 限制

在 GitHub Actions 中存在扩展时可能达到的限制,部分限制可通过联系支持部门提高。

在本文中

当您扩大使用范围时,可能会受到由 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 Free500 MB2,00010 GB不適用
GitHub Pro1GB3,00010 GB不適用
GitHub Free 适用于组织500 MB2,00010 GB不適用
GitHub Team2 GB3,00010 GB75 GB
GitHub Enterprise Cloud50 GB50,00010 GB150 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 拉取镜像始终受速率限制约束。