- 为所有命名空间设置 CI/CD 分钟配额
- 为特定命名空间设置 CI/CD 分钟配额
- 查看群组使用的 CI/CD 分钟数
- 查看个人命名空间使用的 CI/CD 分钟数
- 购买额外的 CI/CD 分钟数
- 如何计算 CI/CD 分钟数
- 当您超过配额时会发生什么
- 减少 CI/CD 分钟数的消耗
CI/CD 分钟数配额
管理员可以限制项目每月在共享 runners 上运行作业的时间。使用 CI/CD 分钟数配额跟踪此限制。
默认情况下,单个作业的一分钟执行时间使用 1 CI/CD 分钟。流水线使用的 CI/CD 分钟总数是其所有作业持续时间的总和。 作业可以同时运行,因此总 CI/CD 分钟使用量可能高于流水线的端到端持续时间。
SaaS 版:
- 公开项目和私有项目都启用了 CI/CD 分钟数配额,但公开项目消耗 CI/CD 分钟数的速度较慢。
- 命名空间的每月基本 CI/CD 分钟数配额由其许可证级别确定。
- 如果您需要超过每月配额中的 CI/CD 分钟数,您可以购买额外的 CI/CD 分钟数。
私有化部署版:
- CI/CD 分钟数配额默认禁用。
- 启用时,CI/CD 分钟数配额仅适用于私有项目。
- 如果命名空间使用其每月配额中的所有 CI/CD 分钟数,管理员可以分配更多 CI/CD 分钟数。
特定 runner 不受 CI/CD 分钟数配额限制。
为所有命名空间设置 CI/CD 分钟配额
默认情况下,极狐GitLab 实例没有 CI/CD 分钟数配额。
配额的默认值为 0
,即授予无限的 CI/CD 分钟数。
但是,您可以更改此默认值。
先决条件:
- 您必须是管理员。
要更改适用于所有命名空间的默认配额:
- 在顶部栏上,选择 主菜单 > 管理员。
- 在左侧边栏,选择 设置 > CI/CD。
- 展开 持续集成和部署。
- 在 CI/CD 分钟数配额 框中,输入 CI/CD 分钟的最大数量。
- 选择 保存修改。
如果已为特定命名空间定义了配额,则此值不会更改该配额。
为特定命名空间设置 CI/CD 分钟配额
您可以覆盖全局值并为特定命名空间设置 CI/CD 分钟数配额。
先决条件:
- 您必须是管理员。
为命名空间设置 CI/CD 分钟数配额:
- 在顶部栏上,选择 主菜单 > 管理员。
- 在左侧边栏上,选择 概览 > 群组。
- 对于您要更新的群组,选择 编辑。
- 在 CI/CD 分钟数配额 框中,输入 CI/CD 分钟的最大数量。
- 选择 保存修改。
查看群组使用的 CI/CD 分钟数
显示每个项目的共享 runner 时长功能引入于 15.0 版本。
您可以查看群组使用的 CI/CD 分钟数。
先决条件:
- 您必须是群组的所有者。
查看用于您的组的 CI/CD 分钟数:
- 在顶部栏上,选择 主菜单 > 群组 并找到您的群组,此群组不能是子组。
- 在左侧边栏中,选择 设置 > 使用量配额。
- 选择 流水线 选项卡。
项目列表仅显示当月 CI/CD 分钟数使用量或共享 runner 使用量的项目。该列表包括命名空间及其子组中的所有项目,按 CI/CD 分钟数使用量降序排列。
查看个人命名空间使用的 CI/CD 分钟数
显示共享 runner 时长功能引入于 15.0 版本。
您可以查看个人命名空间使用的 CI/CD 分钟数:
- 在顶部栏的右上角,选择您的头像。
- 选择 编辑个人资料。
- 在左侧边栏中,选择 使用量配额。
项目列表仅显示当月的个人项目 使用 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 上运行的时间(以秒为单位),不包括在
created
或pending
状态下花费的时间。 - 消耗参数:基于项目可见性的数字。
该值将转换为分钟,并添加到作业所在的顶级命名空间中的已用 CI/CD 分钟数内。
例如,如果用户 alice
运行流水线:
- 在
gitlab-cn
命名空间下,流水线中每个作业使用的 CI/CD 分钟数被添加到gitlab-cn
命名空间的整体消耗中,而不是alice
命名空间。 - 对于命名空间中的其中一个个人项目,CI/CD 分钟数被添加到
alice
命名空间的总体消耗中。
一条流水线使用的 CI/CD 分钟数是流水线中运行的所有作业使用的总 CI/CD 分钟数。作业可以同时运行,因此总 CI/CD 分钟使用量可能高于流水线的端到端持续时间。
消耗参数
在 JiHuLab 的共享运行器上运行作业的消耗参数为:
-
1
:内部和私有项目。 -
0.008
:公开项目(中型和大型 Runner 除外)。
私有化部署的消耗参数为:
-
0
:公开项目,不消耗 CI/CD 分钟数。 -
1
:内部和私有项目。
免费版极狐GitLab 项目的消耗参数
使用免费版极狐GitLab 的贡献者在为极狐GitLab 维护的开源项目做出贡献时可以使用共享 Runner 上的 30 万分钟数。 这 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 分钟数的消耗
如果您的项目消耗过多的 CI/CD 分钟数,您可以使用一些策略来减少 CI/CD 分钟数的使用:
- 如果您使用项目镜像,请确保禁用用于镜像更新的流水线。
- 减少计划流水线的频率。
- 不需要时跳过流水线。
- 使用可中断的作业,如果新流水线启动,这些作业可以自动取消。
- 如果作业不必在每个流水线中运行,请使用
rules
使其仅在需要时运行。 - 对某些作业使用私有 runner。
- 如果您正在从一个派生项目工作并向父项目提交合并请求,您可以要求维护者在父项目中运行流水线。
如果您管理一个开源项目,这些改进还可以减少贡献者派生项目的 CI/CD 分钟消耗,从而实现更多贡献。
有关更多详细信息,请参阅我们的流水线效率指南。