本文主要介绍 Zadig 的工作流的配置和使用。
配置工作流
工作流支持多种策略组合,完成从构建
->部署
->测试
->分发
全流程的自动化编排,快速验证快速反馈,保证代码的质量。
基本信息
主要包含工作流名称、描述信息、所属项目信息
参数说明:
工作流名称
:名称只支持字母大小写和数字,特殊字符只支持中划线。选择项目
:选择工作流所更新的项目名称。描述
:描述该工作流的详细信息,在工作留详情页展示。并发运行
新:多名合作者先后触发该工作流更新不同的服务时,产生的多个任务将会并发执行以提升构建、部署、测试效率。自动回退镜像版本
新: 若开启,则工作流执行完毕后,被更新服务的镜像会回退到工作流任务执行前的版本。
注意
主机场景的项目不支持自动回退镜像版本功能。
构建部署
为服务配置构建后,工作流通过构建部署模块提供更新环境的能力。
服务构建配置细节可参阅构建配置
交付物部署
提供通过构建产物直接更新服务的能力
注意
同一个工作流中交付物部署和构建部署为互斥功能,只能选择一个进行开启
测试
通过修改工作流的测试配置,来实现测试步骤,关于测试配置的创建和使用,请参阅测试管理
自动化测试
目前 Zadig 支持功能测试和性能测试,用户可以通过添加测试按钮从测试配置中选择要添加的测试项目进行测试。
分发
通过配置分发模块,用户可以对服务的构建产物进行分发操作,目前支持镜像仓库分发和存储空间分发
前提
镜像的分发支持需要管理员提前正确配置镜像仓库
存储空间的分发支持需要管理员提前正确配置对象存储
参数说明:
- 添加服务:要被执行分发的目标服务
- 镜像仓库:构建的镜像产物被分发的目标镜像仓库,可在系统设置的 镜像仓库 中查阅
- 对象存储:构建的文件产物(一般为压缩包)被分发的目标对象存储,可在系统设置的 对象存储 中查阅
定时器
通过配置定时器,可以实现周期性的运行工作流
目前工作流支持的定时器方式主要有:
- 定时循环:在某个时间点定时执行某个工作流,例如每天 12:00 运行,每周一 10:00 运行
- 周期循环:周期性的执行某个任务,例如每 30 分钟执行一次工作流
- Cron表达式:使用标准的 Linux Cron 表达式灵活的配置定时器,例如:”45 4 1,10,22 * *“,每月 1、10、22 日 4:45 分执行工作流任务
定时循环
具体操作步骤:
- 点击添加按钮添加一项定时循环条目,分别选择周期时间以及时间点
- 设置工作流任务参数,执行时按设置的参数执行
间隔循环
具体操作步骤:
- 第 1 步:点击添加按钮添加一项间隔循环条目,分别选择周期时间以及时间点
- 第 2 步:设置工作流参数,执行时按设置的参数执行
Cron 表达式
具体操作步骤:
- 第 1 步:点击添加按钮添加一项 Cron 表达式条目,填写 Cron 表达式
- 第 2 步:设置工作流参数,执行时按设置的参数执行
Git Webhook
注意
如果您的 Zadig 系统版本低于 1.3.0,则需在代码管理平台正确配置 Webhook,代码变更触发功能才生效,具体配置过程见 Webhook 配置
新增触发器模块,打开 Webhook 开关
点击添加配置
参数说明:
代码库
:需要监听触发事件的代码仓库,代码源选择不同对应的触发事件也会不同。目标分支
:提交 PR 时的 Base 分支。支持正则表达式配置,语法参见 Regexp Syntax (opens new window)。部署环境
:指定触发任务部署步骤更新的环境基准环境
:[高级选项] 在 PR 事件触发后会以该环境的服务版本为基础创建一个测试环境,环境名称为 pr-prID-四位随机字符串环境销毁策略
:[高级选项] 在 PR 事件触发后,对上述测试环境的销毁策略:每次保留,每次销毁,工作流成功后销毁部署服务
: 指定触发任务构建部署的相应服务触发事件
:push
事件(Merge 操作)时触发,pull_request
提交 PR 时触发,change-merged
修改被merge之后触发自动取消
: 如果你希望只构建最新的提交,则使用这个选项会自动取消队列中的任务文件目录
: 通过设置监听的文件和目录白名单,可以忽略白名单之外的文件变更,不进行触发工作流。主要用于设置需要匹配的文件目录,如果配置中的文件目录有新增、修改或者删除操作就会触发工作流任务。- “/“ 表示代码库中的所有文件;
- 用 “!” 符号开头可以排除相应的文件和文件夹。例如目录
Test
下所有非.md
文件改动触发某个工作流,可以设置为test,!.md
; - 排除多级文件夹需要从一级文件夹写起,且一级文件夹前不能加斜杠,如要排除项目下的test1/test2/目录,可以设置为
/,!test1/test2/
,不能设置为/,!test2/
,也不能设置为/,!/test1/test2/
。
IM 状态通知
目前支持配置工作流最终执行状态通知到企业微信、钉钉、飞书,具体配置如下图所示。
企业微信
请参照企业微信配置文档 (opens new window)获取详细信息。
若为某个群组添加 Bot 可以登录企业微信->选择某个群组后右键点击,选择添加机器人,可以获取到相关 webhook 地址。
参数说明:
企业微信 Webhook 地址
: 通知到企业微信群 Bot 机器人的地址通知事件
: 可配置通知的规则,工作流状态可多选
配置步骤图示:
通知效果图示:
钉钉
请参照钉钉自定义机器人配置 (opens new window)获取详细信息。
在钉钉上添加自定义 Bot 机器人的时候,必须开启安全设置,安全设置有 3 种,可以设置一种或多种
自定义关键字
:如果选择自定义关键字,请输入工作流
三个字加签
:开启后,webhook 地址获取参考:获取加签后的 webhook 地址 (opens new window)IP 地址(段)
:具体配置请参考配置文档
配置步骤图示:
通知效果图示:
飞书
请参照飞书配置 (opens new window)获取详细信息。
若为某个群组添加 Bot ,可以选择要添加 Bot 的飞书聊天组,点击配置按钮,选择添加机器人。
点击下一步,选择添加自定义机器人
填写机器人描述
复制 webhook 地址
将复制的 webhook 地址回填到工作流配置页面
通知效果图示:
运行工作流
工作流支持多种构建方式,用户可以根据需求灵活配置。工作流模块支持通过自动构建(定时器/ Webhook)的方式实现对代码进行持续集成和持续部署,进行快速验证和快速反馈,保证代码的质量。 具体操作可以参阅工作流的触发部分获取更多的信息。