添加 Gerrit 触发器时,可以选择 Gerrit 侦听器、Gerrit 服务器上 Gerrit 项目,然后配置 Gerrit 事件。在 Gerrit 侦听器定义中,选择 Gerrit 端点。如果需要在连接侦听器后更新 Gerrit 端点,必须先断开侦听器的连接,然后再更新端点。
在以下示例中,先配置 Gerrit 侦听器,然后在三个不同管道上具有两个事件的 Gerrit 触发器中使用该侦听器。
验证您是
Automation Pipelines
中项目的成员。如果您不是其成员,则让
Automation Pipelines
管理员将您添加为项目的成员。请参见
如何在 Automation Pipelines 中添加项目
。
确认在
Automation Pipelines
中配置了 Gerrit 端点。请参见
如何将 Automation Pipelines 与 Gerrit 集成
。
确认您知道 Gerrit 版本。
对于要触发的管道,确认您将管道的输入属性设置为
Gerrit
,以允许管道在管道运行时将 Gerrit 参数作为输入接收。
有关输入参数的信息,请参见
如何创建 CICD 管道和配置工作区
。
VMware Cloud Services API 令牌将对您进行身份验证,以与
Automation Pipelines
建立外部 API 连接。要获取 API 令牌,请执行以下操作:
登录到
VMware Aria Automation
。
单击您的用户名旁边的下拉箭头。
单击
我的帐户
。
单击
API 令牌
。
单击
生成新的 API 令牌
。
输入令牌名称。
在“组织角色”下,单击以展开
所有组织角色
,然后选择
组织所有者
。
在“服务角色”下,单击以展开
,然后选择
Pipelines 管理员
。
单击
生成
。
生成的令牌
窗口将显示一个令牌,其中包含您指定的名称和组织的名称。
单击
复制
图标。
单击
复制
可确保您捕获准确的字符串,比使用指针来复制字符串更可靠。
侦听器将开始监控 Gerrit 服务器上的所有活动,并侦听该服务器上已激活的任何触发器。要停止侦听该服务器上的触发器,请停用触发器。
注:
要更新连接到侦听器的 Gerrit 端点,必须先断开侦听器的连接,然后再更新该端点。
单击
。
单击
侦听器
选项卡。
单击要更新且已连接到端点的侦听器上的
断开连接
。
提供文件包含以触发管道。当提交中的任何文件与包含路径或正则表达式中指定的文件匹配时,将触发管道。指定正则表达式时,
Automation Pipelines
仅触发更改集中的文件名与提供的表达式匹配的管道。为单个存储库中的多个管道配置触发器时,正则表达式筛选器很有用。
提供文件排除以防止管道触发。当提交中的所有文件与排除路径或正则表达式中指定的文件匹配时,不会触发管道。
排除优先
打开时,可确保不会触发管道。即使提交中的任何文件与排除路径或正则表达式中指定的文件匹配,也不会触发管道。
排除优先
默认设置为关闭。
如果条件同时满足文件包含和文件排除,则不会触发管道。
在以下示例中,文件包含和文件排除都是触发器的条件。
对于文件包含,提交对
runtime/src/main/a.java
或任意 java 文件的任何更改都将触发事件配置中配置的管道。
对于文件排除,仅提交同时对这两个文件的更改不会触发事件配置中配置的管道。
单击
新建配置
。
对于 Gerrit 事件,选择
修补程序集已创建
、
草稿已发布
或
更改已合并
。或者,要绕过 Gerrit 直接推送到 Git,选择
直接 Git 推送
。
注:
从 Gerrit 版本 2.15 开始,不再支持草稿更改和草稿更改集。因此,如果运行的是 Gerrit 版本 2.15 或更高版本,则
草稿已发布
不是受支持的事件。
选择将触发的管道。
如果管道包括自定义添加的输入参数,则“输入参数”列表将显示参数和值。您可以输入将通过触发器事件传递到管道的输入参数的值。或者,也可以将这些值留空,或使用默认值。
注:
如果定义了默认值:
为输入参数输入的任何值都将替代在管道模型中定义的默认值。
如果管道模型中的参数值发生更改,则触发器配置中的默认值不会更改。
有关 Gerrit 触发器的自动插入输入参数的信息,请参见
必备条件
。
对于
修补程序集已创建
、
草稿已发布
和
更改已合并
,默认情况下某些操作会与标签一起出现。可以更改标签或添加注释。然后,当管道运行时,标签或注释将作为对该管道
执行的操作
显示在
活动
选项卡上。
通过 Gerrit 事件配置,可以通过对成功注释或失败注释使用变量来输入注释。例如:
${var.success}
和
${var.failure}
。
单击
保存
。
要为多个管道添加多个触发器事件,请再次单击
新建配置
。
在以下示例中,您可以看到三个管道的事件:
如果 Gerrit 项目中发生
更改已合并
事件,则会触发名为
Gerrit-Pipeline
的管道。
如果 Gerrit 项目中发生
修补程序集已创建
事件,则会触发名为
Gerrit-Trigger-Pipeline
和
Gerrit-Demo-Pipeline
的管道。
单击
创建
。
Gerrit 触发器在
触发器
选项卡上显示为新的卡视图,并默认设置为
已禁用
。
在触发器卡中,单击
启用
。
激活触发器后,可以使用 Gerrit 侦听器,该侦听器将开始监控 Gerrit 项目分支上发生的事件。
要创建一个触发器(具有相同的文件包含条件或文件排除条件,但存储库不同于创建触发器时所包含的存储库),请在触发器卡视图上单击
。然后,在克隆的触发器上,单击
打开
,然后更改参数。
下一步做什么
在 Gerrit 项目中提交代码更改之后,在
Automation Pipelines
的
活动
选项卡中查看 Gerrit 事件。验证活动列表是否包含与触发器配置中的每个管道执行对应的条目。
发生事件时,只能运行 Gerrit 触发器中与该特定事件类型相关的管道。在此示例中,如果创建修补程序集,只会运行
Gerrit-Trigger-Pipeline
和
Gerrit-Demo-Pipeline
。
活动
选项卡上列中的信息描述了每个 Gerrit 触发器事件。可以通过单击表下方的列图标选择显示的列。
如果触发器是直接 Git 推送,则
更改主题
和
执行
列为空。
适用于 Gerrit 的触发器
列显示创建事件的触发器。
默认情况下,
侦听器
列处于关闭状态。选择该列后,该列将显示接收事件的 Gerrit 侦听器。单个侦听器可能显示与多个触发器关联。
默认情况下,
触发器类型
列处于关闭状态。选择该列后,该列将触发器类型显示为“自动”或“手动”。
其他列包括
提交时间
、
更改号码
、
状态
、
消息
、
执行的操作
、
用户
、
Gerrit 项目
、
分支
和
事件
。
要控制管道运行完成或失败的活动,请单击“活动”屏幕上任何条目左侧的三个点。
如果由于管道模型错误或其他问题而导致管道无法运行,请更正错误,然后选择
重新运行
以再次运行管道。
如果由于网络连接问题或其他问题而导致管道无法运行,请选择
继续
以重新启动同一管道执行,从而节省了运行时间。
使用
查看执行
可打开管道执行视图。请参见
如何运行管道和查看结果
。
使用
删除
从“活动”屏幕中删除条目。
如果 Gerrit 事件无法触发管道,可以单击
手动触发
,然后选择适用于 Gerrit 的触发器,输入“更改 ID”,并单击
手动触发
仅适用于有效的 Gerrit 事件,如
修补程序集已创建
、
更改已合并
和
草稿已发布
。
由于 Gerrit 服务器和管道云代理之间的连接中断,Gerrit 事件可能会缺失。连接中断可能持续长达 10 分钟。升级或重新启动 Gerrit 服务器或者升级管道云代理时,可能会发生连接中断。