流水线设置
创建流水线时,可以通过各种设置来自定义流水线配置。本文档对这些设置进行详细阐述。
准备工作
- 您需要创建一个企业空间、一个 DevOps 项目以及一个用户 (
project-regular
),必须邀请该用户至该 DevOps 项目中并赋予operator
角色。有关更多信息,请参考创建企业空间、项目、用户和角色。 - 您需要启用 KubeSphere DevOps 系统。
基本信息
在基本信息选项卡,您可以自定义以下信息:
名称:流水线的名称,同一个 DevOps 项目内的流水线不能重名。
DevOps 项目:流水线所属的 DevOps 项目。
描述信息:描述流水线的附加信息,描述信息不超过 256 个字符。
代码仓库(可选):您可以选择一个代码仓库作为流水线的代码源。您可以选择 GitHub、GitLab、Bitbucket、Git 以及 SVN 作为代码源。
如果选择 GitHub,则必须指定用于访问 GitHub 的凭证。如果您已预先使用您的 GitHub 令牌创建了凭证,则可以从下拉菜单中选择已有凭证,或者点击创建凭证来创建新凭证。选择凭证后,点击确定,即可在右侧查看您的仓库。完成所有操作后,请点击 √ 图标。
如果选择 GitLab,则必须指定 GitLab 服务器地址、项目组/所有者和代码仓库。如果访问代码仓库需要凭证,则需要指定一个凭证。完成所有操作后,请点击 √ 图标。
如果选择 Bitbucket,则需要输入您的 Bitbucket 服务器地址。您可以预先使用您的 Bitbucket 用户名和密码创建一个凭证,或者点击创建凭证来创建一个新凭证。输入信息后点击确定,即可在右侧看到您的仓库。完成所有操作后,请点击 √ 图标。
如果选择 Git,则需要指定仓库 URL。如果访问代码仓库需要凭证,则需要指定一个凭证。您也可以点击创建凭证来添加新凭证。完成所有操作后,请点击 √ 图标。
如果选择 SVN,则需要指定仓库地址和凭证。您也可以按需指定包括分支和排除分支。完成所有操作后,请点击 √ 图标。
指定代码仓库时的高级设置
如果您指定一个代码仓库,则可以在高级设置选项卡上自定义以下配置:
分支设置
删除旧分支:自动删除旧分支。分支记录将一起被删除。分支记录包括控制台输出、存档制品以及与特定分支相关的其他元数据。保留较少的分支可以节省 Jenkins 所使用的磁盘空间。KubeSphere 提供两个选项来确定何时丢弃旧的分支:
分支保留天数(天):超过保留期限的分支将被删除。
分支最大数量:如果分支数量超过最大数量,将删除最旧的分支。
备注
分支保留天数(天)和分支最大数量同时适用于分支。只要分支满足任一字段的条件,则将被丢弃。例如,如果将保留分支的天数指定为 2,将保留分支的最大个数指定为 3,那么超过任一数目的分支将被丢弃。KubeSphere 默认用 7 和 5 预先填充这两个字段。
策略设置
在策略设置中,KubeSphere 默认提供四种策略。Jenkins 流水线运行时,开发者提交的 PR (Pull Request) 也将被视为单独的分支。
发现分支
- 排除已提交 PR 的分支:已提交 PR 的分支将被排除。
- 只包括已提交 PR 的分支:只拉取已提交 PR 的分支。
- 包括所有分支:从仓库中拉取所有分支。
发现标签
- 开启标签发现:拥有指定标签的分支将被扫描。
- 关闭标签发现:拥有指定标签的分支不会被扫描。
从原仓库发现 PR
- 拉取 PR 合并后的代码:PR 合并到目标分支后,将基于源代码创建并运行流水线。
- 拉取 PR 提交时的代码:根据 PR 本身的源代码创建并运行流水线。
- 当 PR 被发现时会创建两个流水线:KubeSphere 会创建两个流水线,一个流水线使用 PR 本身的源代码版本,一个流水线使用 PR 与目标分支合并后的源代码版本。
从 Fork 仓库中发现 PR
- 拉取 PR 合并后的代码:PR 合并到目标分支后,将基于源代码创建并运行流水线。
- 拉取 PR 提交时的代码:根据 PR 本身的源代码创建并运行流水线。
- 当 PR 被发现时会创建两个流水线:KubeSphere 会创建两个流水线,一个流水线使用 PR 本身的源代码版本,一个流水线使用 PR 与目标分支合并后的源代码版本。
- 贡献者:对 PR 做出贡献的用户。
- 所有人:每个可以访问 PR 的用户。
- 具有管理员或有编辑权限的用户:仅限于对 PR 具有管理员或编辑权限的用户。
- 无:如果选择此选项,那么无论在拉取策略中选择了哪个选项,都不会发现 PR。
正则过滤
勾选选框以指定正则表达式来过滤分支、PR 和标签。
脚本路径
脚本路径参数指定代码仓库中的 Jenkinsfile 路径,它指代仓库的根目录。如果文件位置发生更改,则脚本路径也需要更改。
扫描触发器
勾选定时扫描,并从下拉列表中设置扫描时间间隔。
构建触发器
您可以从创建流水线时触发和删除流水线时触发的下拉列表中选择一个流水线,以便在创建新的流水线或删除流水线时自动触发指定流水线中的任务。
克隆设置
- 克隆深度:克隆时需要提取的 commit 数量。
- 克隆超时时间(min):完成克隆过程所需要的时长(以分钟为单位)。
- 开启浅克隆:如果您开启浅克隆,则克隆的代码不会包含标签。
Webhook
Webhook 能有效地让流水线发现远程代码仓库中的更改,并自动触发新一轮运行。Webhook 应成为触发 Jenkins 自动扫描 GitHub 和 Git(例如 GitLab)的主要方法。
不指定代码仓库时的高级设置
如果不指定代码仓库,则可以在高级设置选项卡上自定义以下配置:
构建设置
删除过期构建记录:确定何时删除分支下的构建记录。构建记录包括控制台输出、存档制品以及与特定构建相关的其他元数据。保留较少的构建可以节省 Jenkins 所使用的磁盘空间。KubeSphere 提供两个选项来确定应何时删除旧的构建:
构建记录保留期限(天):超过保留期限的构建记录将被删除。
构建记录最大数量:当构建记录数量超过允许的最大数量,最早的构建记录将被删除。
备注
这两个条件同时适用于构建。如果首先满足任一条件,构建将会被删除。
不允许并发构建:如果勾选此选项,则不能并发运行多个构建。
构建参数
参数化的构建过程允许您在开始运行流水线时传入一个或多个参数。KubeSphere 默认提供五种参数类型,包括字符串、多行字符串、布尔值、选项 以及密码。当参数化项目时,构建会被替换为参数化构建,其中将提示用户为每个定义的参数输入值。
构建触发器
定时构建:允许定期执行构建。点击了解更多来参照详细的 CRON 语法。