Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 Release Notes
  • 术语表

    • 术语表

本文主要介绍 Zadig 工作流的触发,包括:手动触发、代码变更触发、定时器触发和 OpenAPI 调用触发。

手动触发

手动触发的两个入口:

  • 工作流列表页
  • 工作流详情页入口

工作流启动入口-列表页

点击列表中工作流右侧对应的执行按钮,启动工作流。

工作流列表页启动

工作流启动入口-工作流详情页

点击工作流操作中的执行按钮,启动工作流。

工作流详情页

工作流启动参数说明

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

工作流详情页

参数说明:

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

提示

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

代码变更触发

在工作流中添加触发器配置后,会在对应的代码托管平台创建 Webhook。当出现满足触发条件的代码变更时,会自动触发运行工作流。目前支持以下 3 个代码托管平台:

  • GitHub:在工作流中配置触发器后,会自动在 GitHub 平台创建 Webhook。
  • GitLab:在工作流中配置触发器后,会自动在 GitLab 平台创建 Webhook。
  • Gerrit:需要先在 Gerrit 上安装 Webhook 插件支持,再在工作流中配置触发器。具体安装可参考链接,插件安装成功后效果图示如下:

工作流触发器配置

为工作流配置触发器包括 GUI 方式和YAML 配置文件方式,下面展开介绍。

GUI 方式

在工作流界面中实现触发器的配置,配置过程更直观,可指定代码变更分支(一个分支或通过正则表达式匹配多个分支)、触发事件等。具体配置请参考 GUI 方式配置触发器。

工作流触发器配置

YAML 配置文件方式

将触发器配置组织在代码库的 YAML 文件中,在 YAML 文件中设置相关触发条件和工作流执行策略,在 Zadig 工作流触发器配置中填写 YAML 文件的路径即可。具体配置请参考 YAML 配置文件方式配置触发器。

工作流触发器配置

触发效果

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

代码变更工作流信息反馈

进阶使用场景:Pull request 独立测试环境

注意

Pull request 独立测试环境验证功能目前仅支持 GitLab 代码仓库触发

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

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

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

具体配置如下图所示:

workflow

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

workflow

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

workflow

定时器触发

可以通过工作流的定时器功能来实现工作流的定时触发。具体配置请参阅定时器。

OpenAPI 调用触发

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

Next
工作流的构建缓存