工作流任务

本文介绍如何在 Zadig 系统上集成工作流任务来源。工作流任务主要用于自定义工作流中,实现工作流的开放能力。

准备工作

第一步:编码实现自定义工作流任务,并将代码入库,目录结构组织如下:

  1. path/to/your/repo # 代码库根目录
  2. ├── hello # 任务目录,每个任务在单独的目录中
  3. └── v0.0.1 # 版本号
  4. └── hello.yaml # 对应该任务的 YAML 文件
  5. └── jira
  6. └── v1.0.0
  7. └── jira.yaml

以 Zadig 库中的 mysql-runner工作流任务 - 图1 (opens new window) 任务说明代码目录结构组织:

  1. mysql-runner # 任务目录,需要在代码库的根目录中
  2. └── v0.0.1 # 版本号
  3. ├── Dockerfile # 对应 mysql-runner 的镜像构建 Dockerfile
  4. ├── Makefile # mysql-runner 的工程编译文件
  5. ├── main.go # mysql-runner 任务的实现源码
  6. └── mysql-runner.yaml # 任务的 YAML 配置文件

其中 mysql-runner.yaml 文件解读如下:

  1. name: "MySQL 数据库变更" # 任务名称
  2. version: "v0.0.1" # 任务版本
  3. description: "针对 MySQL 数据库执行 SQL 变量" # 任务描述
  4. image: koderover.tencentcloudcr.com/koderover-public/mysql-runner:v0.0.1-amd64 # 任务镜像
  5. inputs: # 参数配置,执行自定义工作流时可指定
  6. - name: mysql_host
  7. description: "mysql host"
  8. type: string
  9. default: ""
  10. - name: mysql_port
  11. description: "mysql port"
  12. type: string
  13. default: ""
  14. - name: username
  15. description: "mysql username"
  16. type: string
  17. default: ""
  18. - name: password
  19. description: "mysql password"
  20. type: string
  21. default: ""
  22. - name: query
  23. description: "query to be used"
  24. type : text
  25. default: ""
  26. envs: # 注入环境变量,任务执行时会读取该变量,具体实现请查看源码 main.go 文件
  27. - name: MYSQL_HOST # 环境变量的名称
  28. value: $(inputs.mysql_host) # 环境变量的值,形式为 $(inputs.key)
  29. - name: MYSQL_PORT
  30. value: $(inputs.mysql_port)
  31. - name: USERNAME
  32. value: $(inputs.username)
  33. - name: PASSWORD
  34. value: $(inputs.password)
  35. - name: QUERY
  36. value: $(inputs.query)

第二步:将上述代码库在 Zadig 中集成,可参考 代码源集成

来源配置

系统管理员访问 系统设置 -> 集成管理 -> 工作流任务,配置代码仓库、分支等信息后保存。

若集成来源成功后,代码库中任务实现有改动,点击 同步 即可。

pipeline_task

使用

在自定义工作流中添加任务,选择任务即可,可修改任务中的变量配置。

pipeline_task pipeline_task