CI/CD 设置
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
在 管理员 区域中为您的 GitLab 实例配置 CI/CD 设置。
提供以下设置:
- Variables:为实例中的所有项目配置可用的 CI/CD 变量。
- Continuous Integration and Deployment:配置 Auto DevOps、作业、产物、实例 runner 和流水线功能的设置。
- Package registry:配置包转发和文件大小限制。
- Runners:配置 runner 注册、版本管理和令牌设置。
- Job token permissions:控制跨项目的作业令牌访问。
- Job logs:配置增量日志等作业日志设置。
访问持续集成和部署设置
自定义 CI/CD 设置,包括 Auto DevOps、实例 runner 和作业产物。
要访问这些设置:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > CI/CD。
- 展开 持续集成和部署。
为所有项目配置 Auto DevOps
配置 Auto DevOps
以便为所有没有 .gitlab-ci.yml 文件的项目运行。
这适用于现有项目和任何新项目。
为实例中的所有项目配置 Auto DevOps:
- 选中 为所有项目默认使用 Auto DevOps 流水线 复选框。
- 可选。要使用 Auto Deploy 和 Auto Review Apps, 请指定 Auto DevOps 基础域名。
- 选择 保存更改。
实例 runner
为新项目启用实例 runner
默认情况下使实例 runner 对所有新项目可用。
要为新项目提供实例 runner:
- 选中 为新项目启用实例 runner 复选框。
- 选择 保存更改。
添加实例 runner 详细信息
添加关于实例 runner 的说明文本。 此文本会出现在所有项目的 runner 设置中。
要添加实例 runner 详细信息:
- 在 实例 runner 详细信息 字段中输入文本。您可以使用 Markdown 格式。
- 选择 保存更改。
要查看呈现的详细信息:
- 在左侧边栏中,选择 搜索或跳转到 并找到您的项目或群组。
- 选择 设置 > CI/CD。
- 展开 Runners。
与多个项目共享项目 runner
与多个项目共享项目 runner。
先决条件:
- 您必须拥有已注册的 项目 runner。
与多个项目共享项目 runner:
- 在左侧边栏底部,选择 管理员。
- 从左侧边栏中,选择 CI/CD > Runners。
- 选择您要编辑的 runner。
- 在右上角,选择 编辑( )。
- 在 限制此 runner 的项目 下,搜索项目。
- 在项目左侧,选择 启用。
- 为每个其他项目重复此过程。
作业产物
控制 作业产物 在整个 GitLab 实例中的存储和管理方式。
设置最大产物大小
设置作业产物的大小限制以控制存储使用情况。 作业中的每个产物文件默认最大大小为 100 MB。
使用 artifacts:reports 定义的作业产物可以有不同的限制。
当应用不同的限制时,使用较小的值。
此设置适用于最终归档文件的大小,而不是作业中的单个文件。
您可以为以下对象配置产物大小限制:
- 实例:适用于所有项目和群组的基础设置。
- 群组:覆盖群组中所有项目的实例设置。
- 项目:覆盖特定项目的实例和群组设置。
有关 GitLab.com 的限制,请参阅产物最大大小。
要更改实例的最大产物大小:
- 在 最大产物大小 (MB) 字段中输入值。
- 选择 保存更改。
要更改群组或项目的最大产物大小:
- 在左侧边栏中,选择 搜索或跳转到 并找到您的项目或群组。
- 选择 设置 > CI/CD。
- 展开 通用流水线
- 更改 最大产物大小(以 MB 为单位)的值。
- 选择 保存更改。
设置默认产物过期时间
设置作业产物在被自动删除之前的保留时间。 默认过期时间为 30 天。
持续时间的语法在 artifacts:expire_in 中描述。
单个作业定义可以在项目的 .gitlab-ci.yml 文件中覆盖此默认值。
对此设置的更改仅适用于新产物。现有产物保持其原始过期时间。 有关手动使旧产物过期的信息, 请参阅故障排除文档。
要设置作业产物的默认过期时间:
- 在 默认产物过期时间 字段中输入值。
- 选择 保存更改。
保留最新成功流水线的产物
保留每个 Git ref(分支或标签)的最新成功流水线的产物, 无论其过期时间如何。
默认情况下,此设置处于开启状态。
此设置优先于项目设置。 如果为实例关闭,则无法为单个项目开启。
当此功能关闭时,现有的保留产物不会立即过期。 必须在分支上运行新的成功流水线后,其产物才能过期。
所有应用程序设置都有可自定义的缓存过期间隔, 这可能会延迟设置更改的效果。
要保留最新成功流水线的产物:
- 选中 保留最新成功流水线中所有作业的最新产物 复选框。
- 选择 保存更改。
要允许产物根据其过期设置过期,请清除该复选框。
显示或隐藏外部重定向警告页面
控制用户通过 GitLab Pages 查看作业产物时是否显示警告页面。 此警告提醒用户生成内容可能存在的安全风险。
默认情况下显示外部重定向警告页面。要隐藏它:
- 清除 为作业产物启用外部重定向页面 复选框。
- 选择 保存更改。
流水线
归档流水线
在指定时间段后自动归档旧流水线及其所有作业。已归档的作业:
- 在作业日志顶部显示锁定图标( )和 此作业已归档。
- 无法重新运行或重试。
- 当环境自动停止时,无法作为停止部署操作运行。
- 继续显示可见的作业日志。
归档持续时间从流水线创建时开始计算。必须至少为 1 天。
有效持续时间的示例包括 15 days、1 month 和 2 years。
将此字段留空可永不自动归档流水线。
对于 GitLab.com,请参阅计划作业归档。
要设置作业归档:
- 在 归档流水线 字段中输入值。
- 选择 保存更改。
默认允许流水线变量
控制新群组中的新项目是否默认允许流水线变量。
禁用时,使用流水线变量的默认角色 设置对于新群组设置为 不允许任何人,这会级联到新群组中的新项目。 启用时,该设置默认为 开发者。
为了保持新群组和项目最安全的默认值,建议 将此设置为禁用。
要在所有新群组的新项目中默认允许流水线变量:
- 选中 在新群组中默认允许流水线变量 复选框。
- 选择 保存更改。
创建群组或项目后,维护者可以选择不同的设置。
默认保护 CI/CD 变量
将项目和群组中的所有新 CI/CD 变量默认设置为受保护。 受保护的变量仅可用于在受保护分支或受保护标签上运行的流水线。
要默认保护所有新 CI/CD 变量:
- 选中 默认保护 CI/CD 变量 复选框。
- 选择 保存更改。
设置最大包含数量
限制流水线可以使用 include 关键字包含的外部 YAML 文件数量。
此限制可防止流水线包含过多文件时出现性能问题。
默认情况下,流水线最多可以包含 150 个文件。 当流水线超过此限制时,它会因错误而失败。
要设置每个流水线的最大包含文件数:
- 在 最大包含数量 字段中输入值。
- 选择 保存更改。
限制下游流水线触发速率
限制从单个源每分钟可以触发的下游流水线数量。
最大下游流水线触发速率限制给定项目、用户和提交组合每分钟可以触发的下游流水线数量。
默认值为 0,表示没有限制。
每次 Git 推送的流水线限制
设置单次 Git 推送可以触发的标签或分支流水线的最大数量。 有关此限制的更多信息,请参阅每次 Git 推送的流水线数量。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > CI/CD。
- 展开 持续集成和部署。
- 更改 每次 Git 推送的流水线限制 的值。
- 选择 保存更改。
指定默认 CI/CD 配置文件
设置自定义路径和文件名,用作所有新项目中 CI/CD 配置文件的默认值。
默认情况下,GitLab 使用项目根目录中的 .gitlab-ci.yml 文件。
此设置仅适用于更改后创建的新项目。 现有项目继续使用其当前的 CI/CD 配置文件路径。
要设置自定义默认 CI/CD 配置文件路径:
- 在 默认 CI/CD 配置文件 字段中输入值。
- 选择 保存更改。
单个项目可以通过指定自定义 CI/CD 配置文件 来覆盖此实例默认值。
显示或隐藏流水线建议横幅
控制在没有流水线的合并请求中是否显示指导横幅。
此横幅提供有关如何添加 .gitlab-ci.yml 文件的分步指南。
默认情况下显示流水线建议横幅。要隐藏它:
- 清除 启用流水线建议横幅 复选框。
- 选择 保存更改。
显示或隐藏 Jenkins 迁移横幅
控制是否显示鼓励从 Jenkins 迁移到 GitLab CI/CD 的横幅。 此横幅出现在已启用 Jenkins 集成的项目的合并请求中。
默认情况下显示 Jenkins 迁移横幅。要隐藏它:
- 选中 显示从 Jenkins 迁移横幅 复选框。
- 选择 保存更改。
设置 CI/CD 限制
设置 CI/CD 限制以控制资源使用并帮助防止性能问题。
您可以配置以下 CI/CD 限制:
- 实例级 CI/CD 变量最大数量
- dotenv 产物的最大大小(字节)
- dotenv 产物中的变量最大数量
- 单个流水线中的作业最大数量
- 当前活动流水线中的作业总数
- 项目到项目和从项目订阅的流水线最大数量
- 流水线计划最大数量
- 作业可以具有的 needs 依赖项最大数量
- 过去七天内群组中创建或活动的 runner 最大数量
- 过去七天内项目中创建或活动的 runner 最大数量
- 流水线层次结构树中的下游流水线最大数量
有关这些限制控制内容的更多信息,请参阅 CI/CD 限制。
要配置 CI/CD 限制:
- 在 CI/CD 限制 下,为您要配置的限制设置值。
- 选择 保存更改。
访问包注册表设置
配置 NuGet 包验证、Helm 包限制、包文件大小限制和包转发。
要访问这些设置:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > CI/CD。
- 展开 包注册表。
跳过 NuGet 包元数据 URL 验证
跳过 NuGet 包中 projectUrl、iconUrl 和 licenseUrl 元数据的验证。
默认情况下,GitLab 验证这些 URL。如果您的 GitLab 实例无法访问互联网, 此验证将失败并阻止您上传 NuGet 包。
要跳过 NuGet 包元数据 URL 验证:
- 选中 跳过 NuGet 包的元数据 URL 验证 复选框。
- 选择 保存更改。
设置每个频道的最大 Helm 包数量
设置每个频道可以列出的 Helm 包的最大数量。
要设置 Helm 包限制:
- 在 包限制 下,在 每个频道的 Helm 包最大数量 字段中输入值。
- 选择 保存更改。
设置包文件大小限制
为每种包类型设置最大文件大小限制,以控制存储使用并保持系统性能。
您可以为以下包配置最大文件大小限制(以字节为单位):
- Conan 包
- Helm chart
- Maven 包
- npm 包
- NuGet 包
- PyPI 包
- Terraform Module 包
- 通用包
要配置包文件大小限制:
- 在 包文件大小限制 下,为您要配置的限制输入值。
- 选择 保存大小限制。
控制包转发
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed
控制当在 GitLab 包注册表中找不到包时,是否将包请求转发到公共注册表。
默认情况下,GitLab 将包请求转发到它们各自的公共注册表:
- Maven 请求转发到 Maven Central
- npm 请求转发到 npmjs.com
- PyPI 请求转发到 pypi.org
要停止包转发:
- 清除以下任何复选框:
- 如果包在 GitLab 包注册表中未找到,则将 Maven 包请求转发到 Maven 注册表
- 如果包在 GitLab 包注册表中未找到,则将 npm 包请求转发到 npm 注册表
- 如果包在 GitLab 包注册表中未找到,则将 PyPI 包请求转发到 PyPI 注册表
- 选择 保存更改。
访问 runner 设置
配置 runner 版本管理和注册设置。
要访问这些设置:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > CI/CD。
- 展开 Runners。
控制 runner 版本管理
控制您的实例是否从 GitLab.com 获取官方 runner 版本数据, 以确定 runner 是否需要升级。
默认情况下,GitLab 获取 runner 版本数据。要停止获取此数据:
- 在 Runner 版本管理 下,清除 从 GitLab.com 获取 GitLab Runner 发布版本数据 复选框。
- 选择 保存更改。
控制 runner 注册
控制谁可以注册 runner 以及是否允许注册令牌。
传递 runner 注册令牌和支持某些配置参数的选项 在 GitLab 15.6 中已弃用,并计划在 GitLab 20.0 中移除。 使用 runner 创建工作流程 生成身份验证令牌以注册 runner。此过程提供 runner 所有权的完全可追溯性, 并增强 runner 队列的安全性。
有关更多信息,请参阅 迁移到新的 runner 注册工作流程。
默认情况下,允许 runner 注册令牌以及项目和群组成员注册。 要限制 runner 注册:
- 在 Runner 注册 下,清除以下任何复选框:
- 允许 runner 注册令牌
- 项目成员可以创建 runner
- 群组成员可以创建 runner
- 选择 保存更改。
当您为项目成员禁用 runner 注册时,注册 令牌会自动轮换。先前的令牌变为无效,您必须 使用项目的新注册令牌。
限制特定群组的 runner 注册
控制特定群组的成员是否可以注册 runner。
先决条件:
- 必须在 runner 注册设置 中 选中 群组成员可以创建 runner 复选框。
要限制特定群组的 runner 注册:
- 在左侧边栏底部,选择 管理员。
- 选择 概览 > 群组 并找到您的群组。
- 选择 编辑。
- 在 Runner 注册 下,清除 可以注册新群组 runner 复选框。
- 选择 保存更改。
访问作业令牌权限设置
控制 CI/CD 作业令牌如何访问您的项目。
要访问这些设置:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > CI/CD。
- 展开 作业令牌权限。
强制执行作业令牌允许列表
要求所有项目使用允许列表控制作业令牌访问。
强制执行时,CI/CD 作业令牌只能访问令牌源项目已添加到项目允许列表的项目。 有关更多信息,请参阅控制对您项目的作业令牌访问。
要强制执行作业令牌允许列表:
- 在 授权的群组和项目 下,选中 为所有项目启用并强制执行作业令牌允许列表 复选框。
- 选择 保存更改。
访问作业日志设置
控制 CI/CD 作业日志的存储和处理方式。
要访问这些设置:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > CI/CD。
- 展开 作业日志。
配置增量日志记录
使用 Redis 临时缓存作业日志,并将归档日志增量上传到对象存储。 这可以提高性能并减少磁盘空间使用。
有关更多信息,请参阅增量日志记录。
先决条件:
- 您必须为 CI/CD 产物、日志和构建配置对象存储。
要为所有项目开启增量日志记录:
- 在 增量日志记录配置 下,选中 开启增量日志记录 复选框。
- 选择 保存更改。
必需的流水线配置(已弃用)
- Tier: Ultimate
- Offering: GitLab Self-Managed
您可以将 CI/CD 模板 设置为 GitLab 实例上所有项目的必需流水线配置。您可以使用来自以下位置的模板:
-
默认 CI/CD 模板。
-
存储在实例模板仓库中的自定义模板。
当流水线运行时,项目 CI/CD 配置会合并到必需的流水线配置中。
合并的配置与必需的流水线配置使用 include 关键字
添加项目配置相同。要查看项目的完整合并配置,请在流水线编辑器中查看完整配置。
要为必需的流水线配置选择 CI/CD 模板:
- 在左侧边栏底部,选择 管理员区域。
- 选择 设置 > CI/CD。
- 展开 必需的流水线配置 部分。
- 从下拉列表中选择 CI/CD 模板。
- 选择 保存更改。