- 更改哪些用户可以查看您的流水线
- 自动取消冗余流水线
- 防止过时的部署作业
- 限制可以取消流水线或作业的角色
- 指定自定义 CI/CD 配置文件
- 选择默认 Git 策略
- 限制克隆期间提取的更改数量
- 设置作业运行时间限制
- 流水线徽章
- 禁用极狐GitLab CI/CD 流水线
- 自动流水线清理
{{< details >}}
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
{{< /details >}}
您可以自定义流水线在您的项目中如何运行。
更改哪些用户可以查看您的流水线
对于公共和内部项目,您可以更改谁可以看到您的:
- 流水线
- 作业输出日志
- 作业产物
- 流水线安全仪表板
要更改您的流水线及相关功能的可见性:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
-
选中或清除 公共流水线 复选框。当选中时,流水线及相关功能是可见的:
当被清除时:
- 对于 公共 项目,作业日志、作业产物、流水线安全仪表板和 CI/CD 菜单项仅对项目成员(报告者或更高)可见。其他用户,包括访客用户,只能在查看合并请求或提交时查看流水线和作业的状态。
- 对于 内部 项目,流水线对所有经过身份验证的用户(除了 外部用户)可见。相关功能仅对项目成员(报告者或更高)可见。
- 对于 私有 项目,流水线及相关功能仅对项目成员(报告者或更高)可见。
更改公共项目中非项目成员的流水线可见性
您可以控制 公共项目 中非项目成员的流水线可见性。
此设置在以下情况下无效:
要更改非项目成员的流水线可见性:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > 常规。
- 展开 可见性、项目功能、权限。
- 对于 CI/CD,选择:
- 仅项目成员:只有项目成员可以查看流水线。
- 所有有权限的人:非项目成员也可以查看流水线。
- 选择 保存更改。
CI/CD 权限表 列出了当选择 所有有权限的人 时非项目成员可以访问的流水线功能。
自动取消冗余流水线
您可以设置挂起或正在运行的流水线,以便在同一分支上有新的更改流水线运行时自动取消。您可以在项目设置中启用此功能:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
- 选中 自动取消冗余流水线 复选框。
- 选择 保存更改。
使用 interruptible
关键字来指示是否可以在作业完成之前取消正在运行的作业。在具有 interruptible: false
的作业启动后,整个流水线不再被视为可中断。
防止过时的部署作业
{{< history >}}
- 还可以防止运行过时的手动或重试部署作业在极狐GitLab 15.5 添加。
{{< /history >}}
您的项目可能有多个并发部署作业计划在同一时间段运行。
这可能导致较旧的部署作业在较新的作业之后运行,这可能不是您想要的。
为了避免这种情况:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
- 选中 防止过时的部署作业 复选框。
- 可选。清除 允许重试作业以进行回滚部署 复选框。
- 选择 保存更改。
有关更多信息,请参阅 部署安全。
限制可以取消流水线或作业的角色
{{< details >}}
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
{{< /details >}}
{{< history >}}
- 在极狐GitLab 16.7 中引入。
{{< /history >}}
您可以自定义哪些角色有权限取消流水线或作业。
默认情况下,至少具有开发者角色的用户可以取消流水线或作业。 您可以将取消权限限制为至少具有维护者角色的用户,或者完全禁止任何流水线或作业的取消。
要更改取消流水线或作业的权限:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
- 从 取消流水线或作业所需的最低角色 中选择一个选项。
- 选择 保存更改。
指定自定义 CI/CD 配置文件
极狐GitLab 期望在项目的根目录中找到 CI/CD 配置文件(.gitlab-ci.yml
)。然而,您可以指定一个备用文件名路径,包括项目外部的位置。
要自定义路径:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
- 在 CI/CD 配置文件 字段中,输入文件名。如果文件:
- 不在根目录中,请包含路径。
- 在不同的项目中,请包含群组和项目名称。
- 在外部网站上,请输入完整的 URL。
- 选择 保存更改。
{{< alert type=”note” >}}
您不能使用项目的 流水线编辑器 来编辑其他项目或外部网站上的 CI/CD 配置文件。
{{< /alert >}}
自定义 CI/CD 配置文件示例
如果 CI/CD 配置文件不在根目录中,路径必须相对于根目录。例如:
my/path/.gitlab-ci.yml
my/path/.my-custom-file.yml
如果 CI/CD 配置文件在外部网站上,URL 必须以 .yml
结尾:
http://example.com/generate/ci/config.yml
如果 CI/CD 配置文件在不同的项目中:
- 文件必须存在于其默认分支上,或者指定分支为 refname。
- 路径必须相对于另一个项目的根目录。
- 路径后必须跟随
@
符号和完整的群组及项目路径。
例如:
.gitlab-ci.yml@namespace/another-project
my/path/.my-custom-file.yml@namespace/subgroup/another-project
my/path/.my-custom-file.yml@namespace/subgroup1/subgroup2/another-project:refname
如果配置文件在单独的项目中,您可以设置更细粒度的权限。例如:
- 创建一个公共项目来托管配置文件。
- 仅对允许编辑文件的用户授予项目写权限。
然后其他用户和项目可以访问配置文件,而不能编辑它。
选择默认 Git 策略
您可以选择在作业运行时如何从极狐GitLab 提取您的存储库。
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
- 在 Git 策略 下,选择一个选项:
-
git clone
较慢,因为它在每个作业中都会从头开始克隆存储库。然而,本地工作副本始终是干净的。 -
git fetch
较快,因为它重用本地工作副本(如果不存在则回退到克隆)。特别是对于 大型存储库,推荐使用此策略。
-
配置的 Git 策略可以通过 .gitlab-ci.yml
文件中的 GIT_STRATEGY
变量 覆盖。
限制克隆期间提取的更改数量
您可以限制极狐GitLab CI/CD 在克隆存储库时提取的更改数量。
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
- 在 Git 策略 下的 Git 浅克隆 中,输入一个值。最大值为
1000
。要禁用浅克隆并让极狐GitLab CI/CD 每次提取所有分支和标签,请保持值为空或设置为0
。
新创建的项目具有默认的 git depth
值 20
。
此值可以通过 .gitlab-ci.yml
文件中的 GIT_DEPTH
变量 覆盖。
设置作业运行时间限制
您可以定义作业在超时之前可以运行多长时间。
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
- 在 超时 字段中,输入分钟数或类似
2 hours
的可读值。必须为 10 分钟或更长,并且少于一个月。默认值为 60 分钟。挂起的作业在 24 小时不活动后被丢弃。
超出超时时间的作业被标记为失败。
您可以为 单个 runner 覆盖此值。
流水线徽章
您可以使用 流水线徽章 来表示您的项目的流水线状态和测试覆盖率。这些徽章由最新成功的流水线确定。
禁用极狐GitLab CI/CD 流水线
极狐GitLab CI/CD 流水线在所有新项目中默认启用。如果您使用外部 CI/CD 服务器,如 Jenkins 或 Drone CI,您可以禁用极狐GitLab CI/CD 以避免与提交状态 API 冲突。
您可以按项目禁用极狐GitLab CI/CD 或 在一个实例上为所有新项目禁用。
当您禁用极狐GitLab CI/CD 时:
- 左侧边栏中的 CI/CD 项目被移除。
-
/pipelines
和/jobs
页面不再可用。 - 现有作业和流水线被隐藏,而不是移除。
要在您的项目中禁用极狐GitLab CI/CD:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > 常规。
- 展开 可见性、项目功能、权限。
- 在 存储库 部分,关闭 CI/CD。
- 选择 保存更改。
这些更改不适用于 外部集成 中的项目。
自动流水线清理
{{< details >}}
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
{{< /details >}}
{{< history >}}
- 在极狐GitLab 17.7 中引入,使用名为
ci_delete_old_pipelines
的功能标志 。默认禁用。 - 在极狐GitLab 17.9 中移除了 功能标志
ci_delete_old_pipelines
。
{{< /history >}}
具有所有者角色的用户可以设置 CI/CD 流水线过期时间,以帮助管理流水线存储和提高系统性能。系统会自动删除在配置值之前创建的流水线。
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 常规流水线。
- 在 自动流水线清理 字段中,输入秒数或类似
2 weeks
的可读值。必须为一天或更长,并且少于一年。保持为空以从不自动删除流水线。默认情况下为空。 - 选择 保存更改。