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
  • 术语表

    • 术语表

本文主要介绍自定义工作流中的任务如何使用。

工作流任务指定阶段下方点击 +任务为阶段增加的任务配置,系统目前支持构建、部署、通用任务、Kubernetes 部署、测试、自定义任务 等任务类型。

common_workflow_config

构建

构建任务

任务类型自定义工作流发布工作流
构建任务√-

common_workflow_config

参数说明:

  • 任务名称:支持 32 位以内的小写英文字母、数字或者中划线,且以小写英文字母开头;在同一个自定义工作流中,任务名称需唯一
  • 镜像仓库:选择镜像仓库,当构建任务执行完成功后,构建出的镜像(即内置 $IMAGE 变量)会被推送到所选仓库中
  • 服务组件:选择服务组件以及该服务组件使用的构建名称,点击展开构建配置的 设置 可配置所选中的变量值以及代码库默认分支
    • 变量配置:配置构建中的变量值,参考 变量赋值
    • 分支配置:选择代码库并指定默认分支,执行工作流时会默认使用指定的分支

提示

  1. 内置构建任务中不再支持 $ENV_NAME 构建变量,需要确保构建脚本中未使用该变量。
  2. 暂不支持使用 Jenkins 构建。

部署

部署任务

任务类型自定义工作流发布工作流
部署任务√-
common_workflow_config

参数说明:

  • 任务名称:支持 32 位以内的小写英文字母、数字或者中划线,且以小写英文字母开头;在同一个自定义工作流中,任务名称需唯一
  • 环境:选择要部署的环境,参考 变量赋值
  • 服务组件:配置要部署的服务组件,支持手动输入或指定前置构建任务两种配置方式(系统将会使用构建任务中输出的 $IMAGE 变量来部署服务)
  • 状态检测:若开启,部署任务会轮询服务运行状态
    • 服务实例的 Replicas = AvailableReplicas,则部署成功,工作流任务状态为成功
    • 服务容器因 ImagePullBackOff/ErrImagePull/CrashLoopBackOff/ErrImageNeverPull 原因而处于 waiting 状态时,视为部署失败,工作流任务状态为失败
    • 当超过部署超时时间后仍没有满足成功/失败条件,则部署超时,部署超时设置可参考 服务策略配置

提示

部署任务的服务组件指定为 全局变量/其他任务输出 时,系统将会使用构建任务中输出的 $IMAGE 变量来部署服务。

Kubernetes 部署任务

任务类型自定义工作流发布工作流
Kubernetes 部署任务√√

部署指定集群指定命名空间中的容器。

common_workflow_config

参数说明:

  • 任务名称:在同一个自定义工作流中,任务名称需唯一
  • 镜像仓库:执行 Kubernetes 部署任务时,从哪个镜像仓库获取镜像来部署目标容器
  • 集群:待部署容器所在的集群
  • 命名空间:待部署容器所在的命名空间
  • 容器:指定命名空间中的容器应用(目前支持 Deployment 资源及 Statefulset 资源)
  • 容器状态检测:若开启,部署任务会轮询容器运行状态,在部署超时之前该容器正常运行,任务状态才为成功
  • 超时时间:容器部署超时时间

测试

测试任务

任务类型自定义工作流发布工作流
测试任务√√

支持在自定义工作流中引用测试配置。

选择具体的测试配置后,可对测试配置中的代码库默认分支和变量进行设置,按需开启共享存储,参考文档:

  • 变量赋值
  • 共享存储

代码扫描

任务类型自定义工作流发布工作流
代码扫描√√

使用已配置完成的 Sonar 进行代码扫描任务,对代码质量进行验证。

workflow_sonar

参数说明:

  • 任务名称:在同一个自定义工作流中,任务名称需唯一。
  • 扫描名称:选择项目中的代码扫描任务,可多选。
  • 扫描配置:可设置代码扫描中代码库的默认分支,按需开启共享存储,可参考 共享存储 进行配置。

数据变更

MySQL 数据库变更

任务类型自定义工作流发布工作流
MySQL 数据库变更√√

对 MySQL 数据库执行 SQL 语句,实现数据和代码变更联动变更。

mysql

参数说明:

  • mysql_host:数据库地址
  • mysql_port:数据库端口号
  • username:用户名
  • password:密码
  • query:SQL语句,支持多行

其他

通用任务

任务类型自定义工作流发布工作流
通用任务√√

支持拉取代码、执行 Shell 脚本、文件存储等功能。

  • 执行环境:参考 构建环境配置
  • 代码信息:为通用任务配置代码库,或者配置代码库类型的工作流变量后,将此处代码源的值设置为全局变量/其他任务输出,配置工作流变量可参考 变量
  • 变量:为通用任务配置自定义变量,变量赋值支持三种方式,参考 变量赋值
  • 添加步骤:包括添加 Shell 脚本执行以及文件存储,可参考 更多构建配置
  • 高级配置:参考 高级配置

镜像分发

任务类型自定义工作流发布工作流
镜像分发√√

可将镜像 Retag 后推送到指定镜像仓库。

common_workflow_config

参数说明:

  • 任务名称:在同一个自定义工作流中,任务名称需唯一。
  • 服务组件:需要做镜像分发的服务组件,支持手动输入和其他任务输出两种方式。
  • 源镜像仓库:待分发的镜像来源。
  • 目标镜像仓库:镜像分发的目标仓库。
  • 镜像版本规则:开启后,镜像分发任务将根据指定规则生成目标镜像的版本,支持变量和常量组合的方式来配置。

执行镜像分发任务时,所有服务的镜像版本都按照配置中的规则生成。

镜像版本规则中可用变量列表:

变量名说明
{{.project}}项目名称
{{.workflow.name}}工作流名称
{{.workflow.task.creator}}工作流任务执行者
{{.workflow.task.timestamp}}工作流任务执行时间,Unix 时间戳格式
{{.workflow.task.id}}工作流任务序号
{{.workflow.input.imageTag}}当服务组件指定为运行时输入时可使用该变量,其值为输入的值
{{.job.<部署任务名称>.envName}}指定部署任务中的环境名称
{{.job.preBuild.imageTag}}当服务组件指定为其他任务输出时可使用该变量,其值为前置构建任务的镜像版本

除上述变量外,还支持使用前置任务中输出的变量,参考文档:输出变量。

自定义任务

自己定义任务的实现,在工作流中配置自定义任务,详细使用方法请参考 自定义任务。

不同任务中支持的配置方式

任务中的相关配置项支持丰富的赋值方式,不同任务中支持的方式参见下表:

任务配置项固定值运行时输入全局变量/其他任务输出
构建构建变量√√√
部署环境√√-
服务组件-√√
Kubernetes 部署容器√√-
测试测试变量√√√
MySQL 数据库变更变量√√√
通用代码源-√√
自定义变量√√√
镜像分发服务组件-√√
执行 Jenkins Job变量√√√
JIRA Issue 状态变更变量√√√
自定义任务变量√√√
Prev
自定义工作流
Next
工作流审批