工作流

本文主要介绍 Zadig 的工作流的配置和使用。

配置工作流

工作流支持多种策略组合,完成从构建->部署->测试->分发,全流程的自动化编排,快速验证快速反馈,保证代码的质量。

基本信息

主要包含工作流名称、描述信息、所属项目信息

workflow

参数说明:

  • 工作流名称:名称只支持字母大小写和数字,特殊字符只支持中划线。
  • 选择项目:选择工作流所更新的项目名称。
  • 描述:描述该工作流的详细信息,在工作留详情页展示。
  • 并发运行 :当更新不同服务时触发该工作流,产生的多个任务将会并发执行以提升构建、部署、测试效率。
  • 自动回退镜像版本 : 是否开启工作流任务执行完成后自动回退镜像到任务开始前的版本。

构建部署

工作流通过构建部署模块提供更新环境的能力。

新增服务时,可以对该服务配置构建,或后续通过项目->构建进行单独配置。Zadig 系统支持多服务同时构建部署。完成配置后,工作流自动添加新增服务,无需额外配置。

workflow

交付物部署

提供通过构建产物直接更新服务的能力 warning 同一个工作流中交付物部署和构建部署为互斥功能,只能选择一个进行开启

workflow

测试

通过修改工作流的测试配置,来实现测试步骤,关于测试配置的创建和使用,请参阅测试管理

自动化测试

目前 Zadig 支持功能测试和性能测试,用户可以通过添加测试按钮从测试配置中选择要添加的测试项目进行测试。

workflow

分发

通过配置分发模块,用户可以对服务的构建产物进行分发操作,目前支持镜像仓库分发和存储空间分发 warning 镜像的分发支持需要管理员提前正确配置镜像仓库
存储空间的分发支持需要管理员提前正确配置对象存储

workflow

参数说明:

  • 添加服务:用户选择要执行分发的服务到分发列表
  • 镜像仓库:用户选择镜像默认分发的仓库,可以到系统设置中的 镜像仓库 查看所有的镜像仓库

定时器

通过配置定时器,可以实现周期性的运行工作流

目前工作流支持的定时器方式主要有:

  • 定时循环:在某个时间点定时执行某个工作流,例如每天 12:00 运行,每周一 10:00 运行
  • 周期循环:周期性的执行某个任务,例如每 30 分钟执行一次工作流
  • Cron表达式:使用标准的 Linux Cron 表达式灵活的配置定时器,例如:”45 4 1,10,22 “,每月 1、10、22 日 4:45 分执行工作流任务

定时循环

具体操作步骤:

  • 点击添加按钮添加一项定时循环条目,分别选择周期时间以及时间点
  • 设置工作流任务参数,执行时按设置的参数执行

workflow workflow

间隔循环

具体操作步骤:

  • 第 1 步:点击添加按钮添加一项间隔循环条目,分别选择周期时间以及时间点
  • 第 2 步:设置工作流参数,执行时按设置的参数执行

workflow

Cron 表达式

具体操作步骤:

  • 第 1 步:点击添加按钮添加一项 Cron 表达式条目,填写 Cron 表达式
  • 第 2 步:设置工作流参数,执行时按设置的参数执行

workflow

Git Webhook

warning 如果您的 Zadig 系统版本低于 1.3.0,则需在代码管理平台正确配置 Webhook,代码变更触发功能才生效,具体配置过程见 Webhook 配置

新增触发器模块,打开 Webhook 开关

workflow

点击添加配置

workflow

参数说明:

  • 代码库:需要监听触发事件的代码仓库,代码源选择不同对应的触发事件也会不同。
  • 目标分支:提交 PR 时的 Base 分支
  • 部署环境:指定触发任务部署步骤更新的环境
  • 基准环境[高级选项] 在 PR 事件触发后会以该环境的服务版本为基础创建一个测试环境,环境名称为 pr-prID-四位随机字符串
  • 环境销毁策略[高级选项] 在 PR 事件触发后,对上述测试环境的销毁策略:每次保留,每次销毁,工作流成功后销毁
  • 部署服务: 指定触发任务构建部署的相应服务
  • 触发事件: push 事件(Merge 操作)时触发,pull_request 提交 PR 时触发,change-merged 修改被merge之后触发
  • 自动取消: 如果你希望只构建最新的提交,则使用这个选项会自动取消队列中的任务
  • 文件目录: 通过设置监听的文件和目录白名单,可以忽略白名单之外的文件变更,不进行触发工作流。主要用于设置需要匹配的文件目录,如果配置中的文件目录有新增、修改或者删除操作就会触发工作流任务。
    • “/“ 表示代码库中的所有文件;
    • 用 “!” 符号开头可以排除相应的文件和文件夹。例如目录 Test 下所有非 .md 文件改动触发某个工作流,可以设置为 test,!.md
    • 排除多级文件夹需要从一级文件夹写起,且一级文件夹前不能加斜杠,如要排除项目下的test1/test2/目录,可以设置为 /,!test1/test2/,不能设置为/,!test2/,也不能设置为/,!/test1/test2/

IM 状态通知

目前支持配置工作流最终执行状态通知到企业微信、钉钉、飞书,具体配置如下图所示。

企业微信

请参照企业微信配置文档获取详细信息。

若为某个群组添加 Bot 可以登录企业微信->选择某个群组后右键点击,选择添加机器人,可以获取到相关 webhook 地址。

参数说明:

  • 企业微信 Webhook 地址 : 通知到企业微信群 Bot 机器人的地址
  • 通知事件: 可配置通知的规则,工作流状态可多选

配置步骤图示:

企业微信配置步骤

通知效果图示:

企业微信通知效果

钉钉

请参照钉钉自定义机器人配置获取详细信息。

在钉钉上添加自定义 Bot 机器人的时候,必须开启安全设置,安全设置有 3 种,可以设置一种或多种

  • 自定义关键字:如果选择自定义关键字,请输入工作流三个字
  • 加签:开启后,webhook 地址获取参考:获取加签后的 webhook 地址
  • IP 地址(段):具体配置请参考配置文档

配置步骤图示:

钉钉配置步骤

通知效果图示:

钉钉通知效果

飞书

请参照飞书配置获取详细信息。

若为某个群组添加 Bot ,可以选择要添加 Bot 的飞书聊天组,点击配置按钮,选择添加机器人。

飞书配置

点击下一步,选择添加自定义机器人 飞书配置

填写机器人描述

飞书配置

复制 webhook 地址

飞书配置

将复制的 webhook 地址回填到工作流配置页面

飞书配置

通知效果图示:

飞书通知效果

运行工作流

工作流支持多种构建方式,用户可以根据需求灵活配置。工作流模块支持通过自动构建(定时器/ Webhook)的方式实现对代码进行持续集成和持续部署,进行快速验证和快速反馈,保证代码的质量。 具体操作可以参阅工作流的触发部分获取更多的信息。