YAML语法说明

相关概念

Job是Action工作流的基本组成单位,通过定义多个job,并且设置job的依赖关系,可以生成一个DAG,TensorBay Workflow Engine通过执行这个DAG来实现任务的自动化。通过以下YAML文件为例:

tasks:
  hello-world:
    container:
      image: alpine:latest
      command: [echo]
      args: ["hello world!"]
  1. 【tasks】: 定义该workflow下所有的job

  2. 【tasks.hello-world】: 定义了一个task,task的名字叫做"hello-world"

  3. 【tasks.hello-world.container】: 这个job执行环境是docker container

  4. 【tasks.hello-world.container.image】: docker container使用的image是alpine:latest

  5. 【tasks.hello-world.container.command】: docker container里执行的命令是echo

  6. 【tasks.hello-world.container.args】: echo的参数是"hello world"

1 Job的运行环境

job支持以下3种运行环境,每个job有且仅有一个运行环境:

1.Container:在docker container里执行任意命令,使用指定的image,生成一个container并执行,任务内容由image定义。

2.Script:在docker container里执行指定的脚本

3.Git:在docker container内执行一个git repo的代码

2 Job的依赖关系

Dependencies:job可以通过dependencies关键字来定义他们的依赖关系

执行效果:菱形DAG图,taskA先执行,然后taskB和taskC并发执行,taskD等到taskB和taskC都结束才开始运行

3 Job的参数设置

3-1 参数的属性

Name: 参数名称,用来在workflow代码中引用该参数

Type: 参数类型,指定该参数的数据类型,支持三种简单类型

  • string: 字符串

  • number: 数字,包括整型,浮点型

  • boolean:布尔值,true/false

Default: 参数的默认值,启动workflow时,如果没有显式指定,则会取这里预定义的默认值

3-2 参数的定义

支持通过TensorBay控制台设置及查看详细参数

3-3 参数的设定

手动式:如果workflow启动方式为手动式,那么value可以通过TensorBay控制台动态设置

自动式:如果workflow启动方式为自动式,那么value取默认值

3-4 参数的引用方式

在workflow中通过参数name使用参数

  1. 引用的参数要用{{}}包围

  2. 参数的前缀必须是workflow.parameters.

  3. 参数的名称必须跟预定义的一致

4 Job的环境设置

Environment定义了container的环境变量,环境变量的引用方式跟普通的docker container环境变量一致

最后更新于

这有帮助吗?