在建木系统中,节点可以理解为一个步骤,比如单元测试、编译、发布、测试、部署等步骤,每个步骤就可以理解为一个节点,因为每个步骤做的事不同,因此节点也是不同的,但是在建木中,将节点划分为内置节点和自定义节点,内置节点包括开始节点、结束节点、shell节点、网关节点,他们的作用分别如下
start:
targets:
- test_step
type: start
其中:
end:
sources:
- deploy
type: end
其中:
image: 指定镜像,这里镜像是指docker镜像,即只要在dockerhub上存在的镜像即可,必填
environment: 定义环境变量,会在容器内转译成大写的环境变量。如: aaa 在容器内可通过 AAA 环境变量调用,非必填
script: 定义Shell命令,非必填,可使用上面定义的环境变量
示例如下:
shell-node:
image: alpine:3.13.6
script:
- cd /home/
- ls
其中:
shell-node:为节点的名称,可以自定义
网关节点又分为并发网关节点和条件网关节点
并发网关节点
(1)如下图所示:start有两个下游节点,此两个节点即可以并发执行,end上游有两个节点,此两个节点也是可以并发执行的,以你次这里的start和end就被称为并发网关节点
(2)通过sources定义多个上游节点
end:
sources:
- feishu_notice_post1
- feishu_notice_post2
type: end
(3)通过targets定义多个下游节点
start:
targets:
- git_clone1
- git_clone2
type: start
条件网关节点
(1)如下,condition节点即如果condition为true,则执行上面的节点,如果为false则执行下面的节点,这种就是条件网关节点
(2)定义语法如下:
condition:
sources:
- start
type: condition
expression: ${event.number}>100
cases:
true: feishu_notice_post1
false: feishu_notice_post2
其中:${event.number}为事件参数,也可以为常量或其他参数