CI/CD 分钟数配额

note术语 CI/CD 分钟数 正在重命名为 计算单位。在此过渡期间,您可能会在 UI 和文档中看到 CI/CD 分钟CI 分钟流水线分钟CI 流水线分钟流水线分钟数配额计算单位 混用。

管理员可以限制项目每月在共享 runners 上运行作业的时间。使用 CI/CD 分钟数配额跟踪此限制。

默认情况下,单个作业的一分钟执行时间使用 1 CI/CD 分钟。流水线使用的 CI/CD 分钟总数是其所有作业持续时间的总和。 作业可以同时运行,因此总 CI/CD 分钟使用量可能高于流水线的端到端持续时间。

SaaS 版:

私有化部署版:

  • CI/CD 分钟数配额默认禁用。
  • 启用时,CI/CD 分钟数配额仅适用于私有项目。
  • 如果命名空间使用其每月配额中的所有 CI/CD 分钟数,管理员可以分配更多 CI/CD 分钟数

项目 runner 不受 CI/CD 分钟数配额限制。

为所有命名空间设置 CI/CD 分钟配额

默认情况下,极狐GitLab 实例没有 CI/CD 分钟数配额。 配额的默认值为 0,即授予无限的 CI/CD 分钟数。 但是,您可以更改此默认值。

先决条件:

  • 您必须是管理员。

要更改适用于所有命名空间的默认配额:

  1. 在左侧边栏中,选择 搜索或转到
  2. 选择 管理中心
  3. 在左侧边栏中,选择 设置 > CI/CD
  4. 展开 持续集成和部署
  5. CI/CD 分钟数配额 框中,输入 CI/CD 分钟的最大数量。
  6. 选择 保存修改

如果已为特定命名空间定义了配额,则此值不会更改该配额。

为特定命名空间设置 CI/CD 分钟配额

您可以覆盖全局值并为特定命名空间设置 CI/CD 分钟数配额。

先决条件:

  • 您必须是管理员。

为命名空间设置 CI/CD 分钟数配额:

  1. 在左侧边栏中,选择 搜索或转到
  2. 选择 管理中心
  3. 在左侧边栏中,选择 概览 > 群组
  4. 对于您要更新的群组,选择 编辑
  5. CI/CD 分钟数配额 框中,输入 CI/CD 分钟的最大数量。
  6. 选择 保存修改
note您可以仅为顶级组或用户命名空间设置 CI/CD 分钟数配额。 如果您为子组设置配额,则不会使用它。

查看 CI/CD 分钟数

先决条件:

  • 您必须有权访问构建,才能查看与构建关联的命名空间的总使用量和配额摘要。
  • 访问 使用量配额 页面的权限取决于您在相关命名空间或群组中的角色。

查看群组的使用量配额报告

显示每个项目的共享 runner 时长功能引入于 15.0 版本。

先决条件:

  • 您必须是群组的所有者。

查看用于您的群组的 CI/CD 分钟数:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的群组,此群组不能是子组。
  2. 在左侧边栏中,选择 设置 > 使用量配额
  3. 选择 流水线 选项卡。

Group CI/CD minutes quota

项目列表仅显示当月 CI/CD 分钟数使用量或共享 runner 使用量的项目。该列表包括命名空间及其子组中的所有项目,按 CI/CD 分钟数使用量降序排列。

查看个人命名空间的使用配额报告

显示共享 runner 时长功能引入于 15.0 版本。

先决条件:

  • 命名空间必须是您的个人命名空间。

您可以查看个人命名空间使用的 CI/CD 分钟数:

  1. 在左侧边栏的右上角,选择您的头像。
  2. 选择 编辑个人资料
  3. 在左侧边栏中,选择 使用量配额

项目列表仅显示当月的个人项目 使用 CI/CD 分钟数或共享 runner 的情况。该列表按 CI/CD 分钟数使用量的降序排列。

购买额外的 CI/CD 分钟数

如果您使用的是 SaaS 版,则可以购买额外的 CI/CD 分钟数包。 额外的 CI/CD 分钟数:

  • 仅在订阅中包含的每月配额用完后使用。
  • 如果在月底有任何剩余,结转到下个月。
  • 有效期为自购买之日起 12 个月或直到所有分钟用完,以先到者为准。当前未强制执行分钟数到期。

例如,使用 SaaS 专业版许可证时:

  • 您每月有 10000 分钟。
  • 您购买了额外的 5000 分钟。
  • 您的总限额为 15000 分钟。

如果您在当月使用 13000 分钟,那么下个月您的额外分钟数将变为 2000。如果您在一个月内使用 9,000 分钟,您的额外分钟数保持不变。

如果您在试用订阅期间购买了额外的 CI/CD 分钟数,则这些分钟数将在试用期结束或您升级到付费计划后可用。

您可以在 定价页面 上找到额外 CI/CD 分钟数的定价。

如何计算 CI/CD 分钟数

极狐GitLab 使用此公式来计算作业的 CI/CD 分钟使用量:

Job duration * Cost factor
  • 作业时长:作业在共享 runner 上运行的时间(以秒为单位),不包括在 createdpending 状态下花费的时间。
  • 消耗系数:基于项目可见性的数字。

该值将转换为分钟,并添加到作业所在的顶级命名空间中的已用 CI/CD 分钟数内。

例如,如果用户 alice 运行流水线:

  • gitlab-cn 命名空间下,流水线中每个作业使用的 CI/CD 分钟数被添加到 gitlab-cn 命名空间的整体消耗中,而不是 alice 命名空间。
  • 对于命名空间中的其中一个个人项目,CI/CD 分钟数被添加到 alice 命名空间的总体消耗中。

一条流水线使用的 CI/CD 分钟数是流水线中运行的所有作业使用的总 CI/CD 分钟数。作业可以同时运行,因此总 CI/CD 分钟使用量可能高于流水线的端到端持续时间。

消耗系数

在 JihuLab.com 的共享 Runner 上运行作业的消耗系数为:

  • 1:内部、私有和公开项目。

私有化部署的消耗系数为:

  • 1:内部、私有和公开项目。

基础版极狐GitLab 项目的消耗系数

使用基础版极狐GitLab 的贡献者在为极狐GitLab 维护的开源项目做出贡献时可以使用共享 Runner 上的 30 万分钟数。仅当专门为极狐GitLab 产品的项目部分做出贡献时,才可能使用最多 300,000 分钟。共享 runner 上可用的总分钟数减少了来自其他项目的流水线使用的 CI/CD 分钟数。 这 30 万分钟数适用于所有 SaaS 层,消耗系数计算方式如下:

  • Monthly minute quota / 300,000 job duration minutes = Cost factor

例如,专业版中每个月拥有 10,000 的 CI/CD 分钟数:

  • 10,000 / 300,000 = 0.03333333333 消耗系数

对于降低的消耗系数:

  • 合并请求源项目必须是极狐GitLab 所维护项目的派生。
  • 合并请求目标项目必须是派生的父项目。
  • 流水线必须是合并请求、合并结果或合并队列流水线。

极狐GitLab 管理员可以使用名为 ci_minimal_cost_factor_for_gitlab_namespaces标志将命名空间添加到降低的消耗系数中。

JiHuLab SaaS 上的额外消耗

JiHuLab SaaS Runner 根据不同的 Runner 类型(Linux、Windows 或 macOS)和虚拟机配置,拥有不同的消耗系数。

JiHuLab SaaS Runner 类型 机器类型 CI/CD 分钟数消耗系数
Linux OS + Docker 执行器 1
Linux OS + Docker 执行器 2
Linux OS + Docker 执行器 3

每月重置 CI/CD 分钟数

在每个日历月的第一天,对于所有使用共享 runner 的命名空间,CI/CD 分钟数的累积使用量将重置为 0。这意味着您的全部配额可用,并且计算将从 0 重新开始。

例如,如果您的每月配额为 10,000 CI/CD 分钟数:

  • 4 月 1 日,您有 10,000 分钟。
  • 在四月,您只使用了 10,000 分钟中的 6000
  • 5 月 1 日,累计使用分钟数重置为 0,您在 5 月有 10,000 分钟可再次使用。

保留上个月的使用数据,显示一段时间内的消耗历史视图。

购买的 CI/CD 分钟数的月间结转

如果您购买了额外的 CI/CD 分钟数且未全部使用,则剩余量将转入下个月。

例如:

  • 4 月 1 日,您购买了 5,000 CI/CD 分钟数。
  • 在四月,您只使用了 5,000 分钟中的 3000 分钟。
  • 5 月 1 日,剩余的 2,000 分钟会结转到您的配额中。

额外的 CI/CD 分钟数是一次性购买的,不会每月更新或刷新。

当您超过配额时会发生什么

当本月使用 CI/CD 分钟书配额时,极狐GitLab 将停止处理新作业。

  • 任何应该由共享 runner 选择的非运行作业都会被自动丢弃。
  • 任何正在重试的作业都会自动放弃。
  • 如果整个命名空间使用量在宽限期内超出配额,则任何正在运行的作业都可以随时删除。

运行作业的宽限期为 1,000 CI/CD 分钟。

项目 runner 上的作业不受 CI/CD 分钟配额的影响。

SaaS 使用量通知

在 SaaS 版上,以下情况会向命名空间所有者发送电子邮件通知:

  • 可用 CI/CD 分钟数低于配额的 30%。
  • 可用 CI/CD 分钟数低于配额的 5%。
  • 所有 CI/CD 分钟数已用完。

特殊配额限制

在某些情况下,配额限制由以下标记之一代替:

  • 无限制分钟数:适用于具有无限 CI/CD 分钟数的命名空间
  • 不支持分钟数:适用于未启用有效共享 runner 的命名空间

减少 CI/CD 分钟数的消耗

如果您的项目消耗过多的 CI/CD 分钟数,您可以使用一些策略来减少 CI/CD 分钟数的使用:

  • 如果您使用项目镜像,请确保禁用用于镜像更新的流水线
  • 减少计划流水线的频率。
  • 不需要时跳过流水线。
  • 使用可中断的作业,如果新流水线启动,这些作业可以自动取消。
  • 如果作业不必在每个流水线中运行,请使用 rules 使其仅在需要时运行。
  • 对某些作业使用私有 runner。
  • 如果您正在从一个派生项目工作并向父项目提交合并请求,您可以要求维护者在父项目中运行流水线。

如果您管理一个开源项目,这些改进还可以减少贡献者派生项目的 CI/CD 分钟消耗,从而实现更多贡献。

有关更多详细信息,请参阅我们的流水线效率指南

重置使用的 CI/CD 分钟数

管理员可以重置当月命名空间使用的分钟数。

重置个人命名空间的分钟数

  1. 在管理中心找到用户
  2. 选择 编辑
  3. 限制 中,选择 重置流水线分钟数

重置群组命名空间的分钟数

  1. 在管理中心找到群组
  2. 选择 编辑
  3. 权限和组功能 中,选择 重置流水线分钟数