添加 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 参数作为输入接收。

    可以插入到管道的 Gerrit 输入参数显示在输入选项卡上。

    有关输入参数的信息,请参见 如何创建 CICD 管道和配置工作区

  • VMware Cloud Services API 令牌将对您进行身份验证,以与 Automation Pipelines 建立外部 API 连接。要获取 API 令牌,请执行以下操作:
  • 登录到 VMware Aria Automation
  • 单击您的用户名旁边的下拉箭头。
  • 单击 我的帐户
  • 单击 API 令牌
  • 单击 生成新的 API 令牌
  • 输入令牌名称。
  • 在“组织角色”下,单击以展开 所有组织角色 ,然后选择 组织所有者
  • 在“服务角色”下,单击以展开 VMware Aria Automation > Pipelines ,然后选择 Pipelines 管理员
  • 单击 生成

    生成的令牌 窗口将显示一个令牌,其中包含您指定的名称和组织的名称。

  • 单击 复制 图标。

    单击 复制 可确保您捕获准确的字符串,比使用指针来复制字符串更可靠。

  • 侦听器将开始监控 Gerrit 服务器上的所有活动,并侦听该服务器上已激活的任何触发器。要停止侦听该服务器上的触发器,请停用触发器。 注: 要更新连接到侦听器的 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 服务器或者升级管道云代理时,可能会发生连接中断。