Help us learn about your current experience with the documentation. Take the survey.

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 和作业产物。

要访问这些设置:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > CI/CD
  3. 展开 持续集成和部署

为所有项目配置 Auto DevOps

配置 Auto DevOps 以便为所有没有 .gitlab-ci.yml 文件的项目运行。 这适用于现有项目和任何新项目。

为实例中的所有项目配置 Auto DevOps:

  1. 选中 为所有项目默认使用 Auto DevOps 流水线 复选框。
  2. 可选。要使用 Auto Deploy 和 Auto Review Apps, 请指定 Auto DevOps 基础域名
  3. 选择 保存更改

实例 runner

为新项目启用实例 runner

默认情况下使实例 runner 对所有新项目可用。

要为新项目提供实例 runner:

  1. 选中 为新项目启用实例 runner 复选框。
  2. 选择 保存更改

添加实例 runner 详细信息

添加关于实例 runner 的说明文本。 此文本会出现在所有项目的 runner 设置中。

要添加实例 runner 详细信息:

  1. 实例 runner 详细信息 字段中输入文本。您可以使用 Markdown 格式。
  2. 选择 保存更改

要查看呈现的详细信息:

  1. 在左侧边栏中,选择 搜索或跳转到 并找到您的项目或群组。
  2. 选择 设置 > CI/CD
  3. 展开 Runners

项目的 runner 设置显示关于实例 runner 指南的消息。

与多个项目共享项目 runner

与多个项目共享项目 runner。

先决条件:

与多个项目共享项目 runner:

  1. 在左侧边栏底部,选择 管理员
  2. 从左侧边栏中,选择 CI/CD > Runners
  3. 选择您要编辑的 runner。
  4. 在右上角,选择 编辑 pencil )。
  5. 限制此 runner 的项目 下,搜索项目。
  6. 在项目左侧,选择 启用
  7. 为每个其他项目重复此过程。

作业产物

控制 作业产物 在整个 GitLab 实例中的存储和管理方式。

设置最大产物大小

设置作业产物的大小限制以控制存储使用情况。 作业中的每个产物文件默认最大大小为 100 MB。

使用 artifacts:reports 定义的作业产物可以有不同的限制。 当应用不同的限制时,使用较小的值。

此设置适用于最终归档文件的大小,而不是作业中的单个文件。

您可以为以下对象配置产物大小限制:

  • 实例:适用于所有项目和群组的基础设置。
  • 群组:覆盖群组中所有项目的实例设置。
  • 项目:覆盖特定项目的实例和群组设置。

有关 GitLab.com 的限制,请参阅产物最大大小

要更改实例的最大产物大小:

  1. 最大产物大小 (MB) 字段中输入值。
  2. 选择 保存更改

要更改群组或项目的最大产物大小:

  1. 在左侧边栏中,选择 搜索或跳转到 并找到您的项目或群组。
  2. 选择 设置 > CI/CD
  3. 展开 通用流水线
  4. 更改 最大产物大小(以 MB 为单位)的值。
  5. 选择 保存更改

设置默认产物过期时间

设置作业产物在被自动删除之前的保留时间。 默认过期时间为 30 天。

持续时间的语法在 artifacts:expire_in 中描述。 单个作业定义可以在项目的 .gitlab-ci.yml 文件中覆盖此默认值。

对此设置的更改仅适用于新产物。现有产物保持其原始过期时间。 有关手动使旧产物过期的信息, 请参阅故障排除文档

要设置作业产物的默认过期时间:

  1. 默认产物过期时间 字段中输入值。
  2. 选择 保存更改

保留最新成功流水线的产物

保留每个 Git ref(分支或标签)的最新成功流水线的产物, 无论其过期时间如何。

默认情况下,此设置处于开启状态。

此设置优先于项目设置。 如果为实例关闭,则无法为单个项目开启。

当此功能关闭时,现有的保留产物不会立即过期。 必须在分支上运行新的成功流水线后,其产物才能过期。

所有应用程序设置都有可自定义的缓存过期间隔, 这可能会延迟设置更改的效果。

要保留最新成功流水线的产物:

  1. 选中 保留最新成功流水线中所有作业的最新产物 复选框。
  2. 选择 保存更改

要允许产物根据其过期设置过期,请清除该复选框。

显示或隐藏外部重定向警告页面

控制用户通过 GitLab Pages 查看作业产物时是否显示警告页面。 此警告提醒用户生成内容可能存在的安全风险。

默认情况下显示外部重定向警告页面。要隐藏它:

  1. 清除 为作业产物启用外部重定向页面 复选框。
  2. 选择 保存更改

流水线

归档流水线

在指定时间段后自动归档旧流水线及其所有作业。已归档的作业:

  • 在作业日志顶部显示锁定图标( lock )和 此作业已归档
  • 无法重新运行或重试。
  • 当环境自动停止时,无法作为停止部署操作运行。
  • 继续显示可见的作业日志。

归档持续时间从流水线创建时开始计算。必须至少为 1 天。 有效持续时间的示例包括 15 days1 month2 years。 将此字段留空可永不自动归档流水线。

对于 GitLab.com,请参阅计划作业归档

要设置作业归档:

  1. 归档流水线 字段中输入值。
  2. 选择 保存更改

默认允许流水线变量

控制新群组中的新项目是否默认允许流水线变量。

禁用时,使用流水线变量的默认角色 设置对于新群组设置为 不允许任何人,这会级联到新群组中的新项目。 启用时,该设置默认为 开发者

为了保持新群组和项目最安全的默认值,建议 将此设置为禁用。

要在所有新群组的新项目中默认允许流水线变量:

  1. 选中 在新群组中默认允许流水线变量 复选框。
  2. 选择 保存更改

创建群组或项目后,维护者可以选择不同的设置。

默认保护 CI/CD 变量

将项目和群组中的所有新 CI/CD 变量默认设置为受保护。 受保护的变量仅可用于在受保护分支或受保护标签上运行的流水线。

要默认保护所有新 CI/CD 变量:

  1. 选中 默认保护 CI/CD 变量 复选框。
  2. 选择 保存更改

设置最大包含数量

限制流水线可以使用 include 关键字包含的外部 YAML 文件数量。 此限制可防止流水线包含过多文件时出现性能问题。

默认情况下,流水线最多可以包含 150 个文件。 当流水线超过此限制时,它会因错误而失败。

要设置每个流水线的最大包含文件数:

  1. 最大包含数量 字段中输入值。
  2. 选择 保存更改

限制下游流水线触发速率

限制从单个源每分钟可以触发的下游流水线数量。

最大下游流水线触发速率限制给定项目、用户和提交组合每分钟可以触发的下游流水线数量。 默认值为 0,表示没有限制。

每次 Git 推送的流水线限制

设置单次 Git 推送可以触发的标签或分支流水线的最大数量。 有关此限制的更多信息,请参阅每次 Git 推送的流水线数量

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > CI/CD
  3. 展开 持续集成和部署
  4. 更改 每次 Git 推送的流水线限制 的值。
  5. 选择 保存更改

指定默认 CI/CD 配置文件

设置自定义路径和文件名,用作所有新项目中 CI/CD 配置文件的默认值。 默认情况下,GitLab 使用项目根目录中的 .gitlab-ci.yml 文件。

此设置仅适用于更改后创建的新项目。 现有项目继续使用其当前的 CI/CD 配置文件路径。

要设置自定义默认 CI/CD 配置文件路径:

  1. 默认 CI/CD 配置文件 字段中输入值。
  2. 选择 保存更改

单个项目可以通过指定自定义 CI/CD 配置文件 来覆盖此实例默认值。

显示或隐藏流水线建议横幅

控制在没有流水线的合并请求中是否显示指导横幅。 此横幅提供有关如何添加 .gitlab-ci.yml 文件的分步指南。

横幅显示有关如何开始使用 GitLab 流水线的指导。

默认情况下显示流水线建议横幅。要隐藏它:

  1. 清除 启用流水线建议横幅 复选框。
  2. 选择 保存更改

显示或隐藏 Jenkins 迁移横幅

控制是否显示鼓励从 Jenkins 迁移到 GitLab CI/CD 的横幅。 此横幅出现在已启用 Jenkins 集成的项目的合并请求中。

提示从 Jenkins 迁移到 GitLab CI 的横幅

默认情况下显示 Jenkins 迁移横幅。要隐藏它:

  1. 选中 显示从 Jenkins 迁移横幅 复选框。
  2. 选择 保存更改

设置 CI/CD 限制

设置 CI/CD 限制以控制资源使用并帮助防止性能问题。

您可以配置以下 CI/CD 限制:

  • 实例级 CI/CD 变量最大数量
  • dotenv 产物的最大大小(字节)
  • dotenv 产物中的变量最大数量
  • 单个流水线中的作业最大数量
  • 当前活动流水线中的作业总数
  • 项目到项目和从项目订阅的流水线最大数量
  • 流水线计划最大数量
  • 作业可以具有的 needs 依赖项最大数量
  • 过去七天内群组中创建或活动的 runner 最大数量
  • 过去七天内项目中创建或活动的 runner 最大数量
  • 流水线层次结构树中的下游流水线最大数量

有关这些限制控制内容的更多信息,请参阅 CI/CD 限制

要配置 CI/CD 限制:

  1. CI/CD 限制 下,为您要配置的限制设置值。
  2. 选择 保存更改

访问包注册表设置

配置 NuGet 包验证、Helm 包限制、包文件大小限制和包转发。

要访问这些设置:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > CI/CD
  3. 展开 包注册表

跳过 NuGet 包元数据 URL 验证

跳过 NuGet 包中 projectUrliconUrllicenseUrl 元数据的验证。

默认情况下,GitLab 验证这些 URL。如果您的 GitLab 实例无法访问互联网, 此验证将失败并阻止您上传 NuGet 包。

要跳过 NuGet 包元数据 URL 验证:

  1. 选中 跳过 NuGet 包的元数据 URL 验证 复选框。
  2. 选择 保存更改

设置每个频道的最大 Helm 包数量

设置每个频道可以列出的 Helm 包的最大数量。

要设置 Helm 包限制:

  1. 包限制 下,在 每个频道的 Helm 包最大数量 字段中输入值。
  2. 选择 保存更改

设置包文件大小限制

为每种包类型设置最大文件大小限制,以控制存储使用并保持系统性能。

您可以为以下包配置最大文件大小限制(以字节为单位):

  • Conan 包
  • Helm chart
  • Maven 包
  • npm 包
  • NuGet 包
  • PyPI 包
  • Terraform Module 包
  • 通用包

要配置包文件大小限制:

  1. 包文件大小限制 下,为您要配置的限制输入值。
  2. 选择 保存大小限制

控制包转发

  • Tier: Premium, Ultimate
  • Offering: GitLab Self-Managed

控制当在 GitLab 包注册表中找不到包时,是否将包请求转发到公共注册表。

默认情况下,GitLab 将包请求转发到它们各自的公共注册表:

要停止包转发:

  1. 清除以下任何复选框:
    • 如果包在 GitLab 包注册表中未找到,则将 Maven 包请求转发到 Maven 注册表
    • 如果包在 GitLab 包注册表中未找到,则将 npm 包请求转发到 npm 注册表
    • 如果包在 GitLab 包注册表中未找到,则将 PyPI 包请求转发到 PyPI 注册表
  2. 选择 保存更改

访问 runner 设置

配置 runner 版本管理和注册设置。

要访问这些设置:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > CI/CD
  3. 展开 Runners

控制 runner 版本管理

控制您的实例是否从 GitLab.com 获取官方 runner 版本数据, 以确定 runner 是否需要升级

默认情况下,GitLab 获取 runner 版本数据。要停止获取此数据:

  1. Runner 版本管理 下,清除 从 GitLab.com 获取 GitLab Runner 发布版本数据 复选框。
  2. 选择 保存更改

控制 runner 注册

控制谁可以注册 runner 以及是否允许注册令牌。

传递 runner 注册令牌和支持某些配置参数的选项 在 GitLab 15.6 中已弃用,并计划在 GitLab 20.0 中移除。 使用 runner 创建工作流程 生成身份验证令牌以注册 runner。此过程提供 runner 所有权的完全可追溯性, 并增强 runner 队列的安全性。

有关更多信息,请参阅 迁移到新的 runner 注册工作流程

默认情况下,允许 runner 注册令牌以及项目和群组成员注册。 要限制 runner 注册:

  1. Runner 注册 下,清除以下任何复选框:
    • 允许 runner 注册令牌
    • 项目成员可以创建 runner
    • 群组成员可以创建 runner
  2. 选择 保存更改

当您为项目成员禁用 runner 注册时,注册 令牌会自动轮换。先前的令牌变为无效,您必须 使用项目的新注册令牌。

限制特定群组的 runner 注册

控制特定群组的成员是否可以注册 runner。

先决条件:

要限制特定群组的 runner 注册:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 概览 > 群组 并找到您的群组。
  3. 选择 编辑
  4. Runner 注册 下,清除 可以注册新群组 runner 复选框。
  5. 选择 保存更改

访问作业令牌权限设置

控制 CI/CD 作业令牌如何访问您的项目。

要访问这些设置:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > CI/CD
  3. 展开 作业令牌权限

强制执行作业令牌允许列表

要求所有项目使用允许列表控制作业令牌访问。

强制执行时,CI/CD 作业令牌只能访问令牌源项目已添加到项目允许列表的项目。 有关更多信息,请参阅控制对您项目的作业令牌访问

要强制执行作业令牌允许列表:

  1. 授权的群组和项目 下,选中 为所有项目启用并强制执行作业令牌允许列表 复选框。
  2. 选择 保存更改

访问作业日志设置

控制 CI/CD 作业日志的存储和处理方式。

要访问这些设置:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > CI/CD
  3. 展开 作业日志

配置增量日志记录

使用 Redis 临时缓存作业日志,并将归档日志增量上传到对象存储。 这可以提高性能并减少磁盘空间使用。

有关更多信息,请参阅增量日志记录

先决条件:

要为所有项目开启增量日志记录:

  1. 增量日志记录配置 下,选中 开启增量日志记录 复选框。
  2. 选择 保存更改

必需的流水线配置(已弃用)

  • Tier: Ultimate
  • Offering: GitLab Self-Managed

此功能在 GitLab 15.9 中已弃用, 并在 17.0 中移除。从 17.4 开始,它仅在功能标志 required_pipelines 后可用,默认禁用。 请改用合规流水线。此更改是一个破坏性更改。

您可以将 CI/CD 模板 设置为 GitLab 实例上所有项目的必需流水线配置。您可以使用来自以下位置的模板:

  • 默认 CI/CD 模板。

  • 存储在实例模板仓库中的自定义模板。

    当您使用在实例模板仓库中定义的配置时, 嵌套的 include: 关键字 (包括 include:fileinclude:localinclude:remoteinclude:template不起作用

当流水线运行时,项目 CI/CD 配置会合并到必需的流水线配置中。 合并的配置与必需的流水线配置使用 include 关键字 添加项目配置相同。要查看项目的完整合并配置,请在流水线编辑器中查看完整配置

要为必需的流水线配置选择 CI/CD 模板:

  1. 在左侧边栏底部,选择 管理员区域
  2. 选择 设置 > CI/CD
  3. 展开 必需的流水线配置 部分。
  4. 从下拉列表中选择 CI/CD 模板。
  5. 选择 保存更改