From 613fc595f4f466a7b0132be1a7f3ba745157368e Mon Sep 17 00:00:00 2001 From: daihw <928874202@qq.com> Date: Wed, 15 Sep 2021 16:13:05 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E8=8A=82=E7=82=B9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guide/custom-node.md | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/guide/custom-node.md b/guide/custom-node.md index 1448620..8064426 100644 --- a/guide/custom-node.md +++ b/guide/custom-node.md @@ -38,33 +38,31 @@ 节点定义版本dsl说明: -
ref: 归属人或归属组织的唯一标识/节点定义在归属内的唯一标识,必填,如:jianmu/hub_publish 若官方节点定义,则可省略归属人或归属组织的唯一标识,如:hub_publish version: 节点定义的版本,必填 resultFile: 输出参数的文件路径,若定义了输出参数outputParameters,则必填 inputParameters: 输入参数 - ref: 参数唯一标识,会在容器内转译成'JIANMU_'开头并大写的环境变量。如:hub_url在容器内可通过JIANMU_HUB_URL环境变量调用,必填 - name: 参数名称,必填 - type: 参数类型,支持STRING、SECRET、NUMBER、BOOLEAN等类型,必填 - STRING/NUMBER/BOOLEAN: 若参数类型为STRING/NUMBER/BOOLEAN,可直接填写值或引用其他变量(事件、全局、其他任务的输出等参数) - SECRET: 若参数类型为SECRET,需要调用平台密钥,具体用法详见密钥管理章节 + ref: 参数唯一标识,会在容器内转译成'JIANMU_'开头并大写的环境变量。如:hub_url在容器内可通过JIANMU_HUB_URL环境变量调用,必填 + name: 参数名称,必填 + type: 参数类型,支持STRING、SECRET、NUMBER、BOOLEAN等类型,必填 + STRING/NUMBER/BOOLEAN: 若参数类型为STRING/NUMBER/BOOLEAN,可直接填写值或引用其他变量(事件、全局、其他任务的输出等[参数](./vars.md)) + SECRET: 若参数类型为SECRET,需要调用平台密钥,具体用法详见[密钥管理](./secrets.md)章节 value: 参数默认值,若执行该节点定义时,没有指定参数值,将会使用此默认值,必填 description: 参数描述,选填 outputParameters: 输出参数,需要在"resultFile"指定的文件内填写对应的json数据,key为输出参数的ref值,格式同输入参数 spec: 镜像相关信息,节点定义类型为docker时,必填 - image: 指定该节点定义使用的容器镜像,执行时,平台将会从dockerhub拉取指定镜像,必填 - cmd: list格式,指定容器运行时的command内容,选填 - 如:cmd: - - shell1 - - shell2 - entrypoint: list格式,指定容器运行时的entrypoint内容,选填 - 如:entrypoint: - - shell1 - - shell2 - 其他非必填参数请参考:spec参数 -+ image: 指定该节点定义使用的容器镜像,执行时,平台将会从dockerhub拉取指定镜像,必填 + cmd: list格式,指定容器运行时的command内容,选填 + 如:cmd: + \- shell1 + \- shell2 + entrypoint: list格式,指定容器运行时的entrypoint内容,选填 + 如:entrypoint: + \- shell1 + \- shell2 + 其他非必填参数请参考:[spec参数](https://gitee.com/jianmu-dev/jianmu-ci-server/blob/master/task-core/src/main/java/dev/jianmu/task/aggregate/spec/ContainerSpec.java) + #### 2.2. 通过节点库中的`hub_publish`节点创建流程或管道推送该节点定义版本至节点库中 -- Gitee From 3de634d6881b4f7b2c3dfb94de04931fd7c86bb3 Mon Sep 17 00:00:00 2001 From: daihw <928874202@qq.com> Date: Wed, 15 Sep 2021 17:37:32 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=AE=A1?= =?UTF-8?q?=E9=81=93=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guide/pipeline-dsl.md | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 guide/pipeline-dsl.md diff --git a/guide/pipeline-dsl.md b/guide/pipeline-dsl.md new file mode 100644 index 0000000..2cb5da4 --- /dev/null +++ b/guide/pipeline-dsl.md @@ -0,0 +1,74 @@ +# 管道定义 + +CI/CD管道使用Yaml来定义 + +### pipeline + +管道定义在pipeline段落下: + +``` +pipeline: + name: 管道名称 + ref: 管道唯一标识 + description: 管道描述 +``` + +### 管道节点 + +管道由节点组成,同一个管道中的节点名称不可重复: + +``` + git_clone: + type: git_clone:1.0.0 +``` + +节点使用type字段来指定节点类型,节点类型由节点定义唯一标识`ref`与节点定义版本组成 + +如果不指定版本时,系统会使用默认版本`latest`,如 + +``` + git_clone: + type: git_clone +``` + +等价于 + +``` + git_clone: + type: git_clone:latest +``` + +### 节点执行顺序 + +管道自上而下依次执行,一个节点只能有一个上游/下游节点,如下: + +``` + git_clone: + type: git_clone:1.0.0 + param: + ref: refs/heads/master + remote_url: https://gitee.com/jianmu-runners/jianmu-runner-node-definition-version-publisher.git + hub_publish: + type: hub_publish:1.0.0 + param: + hub_url: https://api.jianmu.run + dsl_file_path: ${git_clone.git_path} + hub_api_key: ((xxx.xxx)) +``` + +### 节点参数 + +不同的节点类型定义了不同的参数,节点类型预先定义了`输入参数`和`输出参数`的名称、类型与默认值 + +在管道中配置节点时,可以覆盖`输入参数`的默认值,例如: + +``` + hub_publish: + type: "hub_publish:1.0.0" + param: + hub_url: https://api.jianmu.run + dsl_file_path: ${git_clone.git_path} + hub_api_key: ((xxx.xxx)) +``` + +`输入参数`和`输出参数`也可以使用变量方式引用,详情参见[`变量章节`](vars.md) \ No newline at end of file -- Gitee From 97e2deb72cf31f79a6905042a5507aa12283121a Mon Sep 17 00:00:00 2001 From: daihw <928874202@qq.com> Date: Wed, 15 Sep 2021 17:37:59 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E8=8A=82=E7=82=B9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guide/custom-node.md | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/guide/custom-node.md b/guide/custom-node.md index 8064426..7455257 100644 --- a/guide/custom-node.md +++ b/guide/custom-node.md @@ -37,33 +37,35 @@  节点定义版本dsl说明: - +``` ref: 归属人或归属组织的唯一标识/节点定义在归属内的唯一标识,必填,如:jianmu/hub_publish 若官方节点定义,则可省略归属人或归属组织的唯一标识,如:hub_publish version: 节点定义的版本,必填 resultFile: 输出参数的文件路径,若定义了输出参数outputParameters,则必填 inputParameters: 输入参数 - ref: 参数唯一标识,会在容器内转译成'JIANMU_'开头并大写的环境变量。如:hub_url在容器内可通过JIANMU_HUB_URL环境变量调用,必填 - name: 参数名称,必填 - type: 参数类型,支持STRING、SECRET、NUMBER、BOOLEAN等类型,必填 - STRING/NUMBER/BOOLEAN: 若参数类型为STRING/NUMBER/BOOLEAN,可直接填写值或引用其他变量(事件、全局、其他任务的输出等[参数](./vars.md)) - SECRET: 若参数类型为SECRET,需要调用平台密钥,具体用法详见[密钥管理](./secrets.md)章节 + ref: 参数唯一标识,会在容器内转译成'JIANMU_'开头并大写的环境变量。如:hub_url在容器内可通过JIANMU_HUB_URL环境变量调用,必填 + name: 参数名称,必填 + type: 参数类型,支持STRING、SECRET、NUMBER、BOOLEAN等类型,必填 + STRING/NUMBER/BOOLEAN: 若参数类型为STRING/NUMBER/BOOLEAN,可直接填写值或引用其他变量(事件、全局、其他任务的输出等参数) + SECRET: 若参数类型为SECRET,需要调用平台密钥,具体用法详见密钥管理章节 value: 参数默认值,若执行该节点定义时,没有指定参数值,将会使用此默认值,必填 description: 参数描述,选填 outputParameters: 输出参数,需要在"resultFile"指定的文件内填写对应的json数据,key为输出参数的ref值,格式同输入参数 spec: 镜像相关信息,节点定义类型为docker时,必填 - image: 指定该节点定义使用的容器镜像,执行时,平台将会从dockerhub拉取指定镜像,必填 - cmd: list格式,指定容器运行时的command内容,选填 - 如:cmd: - \- shell1 - \- shell2 - entrypoint: list格式,指定容器运行时的entrypoint内容,选填 - 如:entrypoint: - \- shell1 - \- shell2 - 其他非必填参数请参考:[spec参数](https://gitee.com/jianmu-dev/jianmu-ci-server/blob/master/task-core/src/main/java/dev/jianmu/task/aggregate/spec/ContainerSpec.java) - - + image: 指定该节点定义使用的容器镜像,执行时,平台将会从dockerhub拉取指定镜像,必填 + cmd: list格式,指定容器运行时的command内容,选填 + 如:cmd: + - shell1 + - shell2 + entrypoint: list格式,指定容器运行时的entrypoint内容,选填 + 如:entrypoint: + - shell1 + - shell2 +``` +相关链接: +1. 节点输出参数:[变量](vars.md) +2. 调用平台密钥:[密钥管理](secrets.md) +3. spe的其他非必填参数:[spec参数](https://gitee.com/jianmu-dev/jianmu-ci-server/blob/master/task-core/src/main/java/dev/jianmu/task/aggregate/spec/ContainerSpec.java) #### 2.2. 通过节点库中的`hub_publish`节点创建流程或管道推送该节点定义版本至节点库中 -- Gitee From 96bd16603b1e572c77ce09e1e2a466ba1fb052a8 Mon Sep 17 00:00:00 2001 From: daihw <928874202@qq.com> Date: Wed, 15 Sep 2021 17:38:13 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guide/node-dsl.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guide/node-dsl.md b/guide/node-dsl.md index 0b6a252..51ef711 100644 --- a/guide/node-dsl.md +++ b/guide/node-dsl.md @@ -1,8 +1,8 @@ # 节点定义 -流程定义由不同类型的节点组成,不同类型的节点对应不同的节点定义 +[流程](flow-dsl.md)/[管道](guide/pipeline-dsl.md)定义由不同类型的节点组成,不同类型的节点对应不同的节点定义 -建木官方提供的节点定义可以访问[节点库](https://hub.jianmu.dev/)查找 +建木官方提供的节点定义可以访问[节点库](https://hub.jianmu.dev)查找 节点定义中定义了一个节点类型所支持的`输入参数`与`输出参数`,同时指定了参数的类型与默认值 -- Gitee