工作流的触发

本文主要介绍 Zadig 工作流的触发,包括:

  • 手动触发
  • 触发器触发,支持以下 5 种触发器:
    • Git 触发器:代码变更后自动触发工作流
    • 定时器:定时触发工作流
    • JIRA 触发器:JIRA 问题状态变更后自动触发工作流
    • 飞书项目触发器:飞书项目状态变更后自动触发工作流
    • 通用触发器:第三方系统通过 Webhook 自动触发工作流
  • 调用开发者 OpenAPI 触发

注意

其中,产品工作流仅支持 2 种触发器:Git 触发器和定时器。

手动触发

工作流执行入口

入口一: 点击列表中工作流右侧对应的执行按钮,执行工作流。

工作流列表页启动

入口二: 点击工作流操作中的执行按钮,执行工作流。

工作流详情页

产品工作流执行参数

从以上两个入口点击执行按钮之后,都会弹出启动工作流,如下图所示。

工作流详情页

说明:

  • 环境:选择此次任务所要更新的环境。
  • 服务:选择此次任务更新的服务组件名称,支持在一次工作流任务中更新多个服务组件。
  • 代码选择:用户完成选择服务后,可以自由选择代码信息,Zadig 提供四种代码构建方式:
    • 选择某个 Branch,系统会拉取该 Branch 的代码进行构建。
    • 选择某个 Branch + pull request 构建,系统会在工作目录中将 pull request 自动合并到所选 Branch 后进行构建,支持选择多个 pull request。
    • 选择 pull request,系统会拉取该 pull request 的代码进行构建,支持选择多个 pull request。
    • 选择 Tag 构建,系统会拉取该 Tag 的代码进行构建。
  • 变量:构建和测试脚本中设置的自定义变量,在启动工作流时候可以传入具体的值。

提示

若指定了多个 pull request 进行构建,请自行确保所选的 pull request 没有冲突,否则可能会因为代码冲突导致编译失败,进而导致构建失败。

自定义工作流执行参数

工作流详情页

说明:

  • 区域 1:选择执行的任务
  • 区域 2:根据不同的任务输入不同的执行参数

Git 触发器

配置 Git 触发器后,当满足配置条件的代码发生变更时则可以自动触发工作流。

注意

代码源为其他类型时,不支持 Git 触发器。

如何配置

代码托管平台通过 Webhook 的方式触发 Zadig 工作流,所以需要在对应仓库中配置相应的 Webhook,Zadig 提供两种配置 Webhook 的方式:

  • 自动创建:在工作流中配置触发器参数即可,Zadig 会自动在对应代码库中创建 Webhook,适用于代码源集成账号对代码库有创建 Webhook 权限的场景。
  • 手动创建:先在代码库中配置 Webhook,再在 Zadig 中配置触发器参数,适用于代码源集成账号对代码库没有创建 Webhook 权限的场景。
自动创建

点击工作流右侧的 触发器

工作流触发器

选择 Git 触发器 -> 填写参数后保存即可。

工作流的触发 - 图6 工作流的触发 - 图7

参数说明:

  • 工作流执行变量:希望被 Webhook 触发执行的任务,以及任务中的具体配置
  • 其他参数:请参考 Git 触发器基本配置中的描述
手动创建

如果系统集成中的代码源集成账号对代码库没有创建 Webhook 权限,可以选择使用手动创建的方式来配置,操作步骤如下:

  1. 点击手动创建 Webhook 切换到手动创建页面。

工作流的触发 - 图8 工作流的触发 - 图9

  1. 访问代码库配置 Webhook,填写 Webhook URL、Secret Token、触发事件,以 GitLab 示例如下:

不同代码源需要配置的触发事件

  • GitHub 代码源:Branch or tag creation、Check runs、Pull requests、Pushes
  • GitLab 代码源:Push events、Tag push events、Merge request events
  • Gitee 代码源:Push、Tag Push、Pull Request

工作流触发器

  1. 参考 Git 触发器基本配置,填写 Zadig 中的相关配置后保存即可。

代码变更触发效果

配置完成后,根据配置提交 pull request、merge request 或者 push 可触发工作流,以 GitLab 为例,在 merge request 中可以查看工作流的反馈信息,如下所示。

代码变更工作流信息反馈

进阶场景:Pull Request 独立测试环境

提示

  1. 通过工作流触发器中配置基准环境和环境销毁策略实现 pull request 独立测试环境的持续交付过程,完成一段代码的全生命周期质量验证。
  2. 支持的代码源请参考:代码源信息

Pull request 级持续交付分为以下步骤:

  • 提交更新的 pull request 代码
  • 根据选择的基准环境生成一个相同服务版本的临时环境
  • 执行工作流更新该测试环境中的服务版本,以及针对该集成环境进行相关自动化测试验证
  • 根据环境销毁策略对测试环境进行回收操作

具体配置如下图所示:

workflow

提交代码变更,在对应 pull request 下可看到关于独立环境的状态信息:

workflow

创建的独立环境效果如下:

workflow

定时器

如何配置

编辑工作流,点击右侧的 触发器 -> 选择 定时器,通过配置定时器,可以实现周期性的运行工作流。支持定时循环、周期循环以及基于 Cron 表达式循环。

工作流触发器 工作流触发器 工作流触发器

参数说明:

  • 工作流执行变量:被触发执行的任务,以及任务中的具体配置
  • 其他参数:参考定时器配置

使用效果

配置后,Zadig 根据配置的时间周期和工作流变量执行工作流。 工作流触发器

JIRA 触发器

可实现 JIRA 状态变更后自动触发 Zadig 工作流。

如何配置

第一步:在工作流中添加 JIRA 触发器

编辑工作流,点击右侧的 触发器 -> 选择 JIRA 触发器

工作流的触发 - 图19 工作流的触发 - 图20

填写参数后保存触发器配置。

jira_trigger

参数说明:

  • 工作流执行变量:希望被触发执行的任务,以及任务中的具体配置

复制 Webhook Url 后保存工作流。

jira_trigger

第二步:在 JIRA 中完成 Webhook 配置

访问 JIRA 系统 -> 点击右上角的 设置 图标 -> 点击 System -> 在左侧 ADVANCED 下找到 Webhook

工作流的触发 - 图23 工作流的触发 - 图24

点击 + Create a Webhook -> 填写 URL(即:第一步中保存的 Webhook Url)并配置触发事件。

提示

目前支持基于 Issue related events 事件自动触发工作流

jira_webhook

使用效果

当满足条件的事件发生后会自动触发工作流执行,待工作流执行完成后,将会添加 Comment 到对应的 Issue 中。

jira_webhook

飞书项目触发器

可实现飞书工作项状态变更后自动触发 Zadig 工作流。

如何配置

第一步:在工作流中添加飞书项目触发器

编辑工作流,点击右侧的触发器 -> 选择 飞书项目触发器

工作流的触发 - 图27 工作流的触发 - 图28

填写参数后保存触发器配置。

jira_trigger

参数说明:

  • 工作流执行变量:希望被触发执行的任务,以及任务中的具体配置

复制 Webhook Url 后保存工作流。

jira_trigger

第二步: 在飞书项目中完成 Webhook 配置

点击 空间配置 -> 自动化 -> 新建规则,进入规则创建。

feishu_webhook

根据需要选择规则,并在操作中将操作类型设为 WebHook -> 填写 URL(即:第一步中保存的 Webhook Url)后保存规则。

feishu_webhook

使用效果

当满足条件的事件发生后会自动触发工作流执行,待工作流执行完成后,将会添加 Comment 到对应的 Issue 中。

jira_webhook

通用触发器

如何配置

点击右侧的 触发器 -> 选择 通用触发器 即可配置实现第三方 Webhook 触发工作流。

jira_trigger general_trigger general_trigger

参数说明:

  • 工作流执行变量:希望被触发执行的任务,以及任务中的具体配置

复制 Webhook Url,在第三方系统中完成添加。

general_webhook

调用开发者 OpenAPI 触发

通过调用 OpenAPI 来触发工作流,具体操作请参阅执行工作流