deploy-ease-platform/frontend/src/pages/Workflow/Design/nodes/JenkinsBuildNode.tsx
dengqichen 329cb955d8 1
2025-10-21 16:25:51 +08:00

129 lines
3.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {ConfigurableNodeDefinition, NodeType, NodeCategory} from './types';
/**
* Jenkins构建节点定义纯配置
* 使用 BaseNode 组件渲染,无需自定义渲染代码
*/
export const JenkinsBuildNodeDefinition: ConfigurableNodeDefinition = {
nodeCode: "JENKINS_BUILD",
nodeName: "Jenkins构建",
nodeType: NodeType.JENKINS_BUILD,
category: NodeCategory.TASK,
description: "通过Jenkins执行构建任务",
// 渲染配置(配置驱动)
renderConfig: {
shape: 'rounded-rect',
size: {width: 140, height: 48},
icon: {
type: 'emoji',
content: '🔨',
size: 32
},
theme: {
primary: '#f59e0b',
secondary: '#d97706',
selectedBorder: '#3b82f6',
hoverBorder: '#f59e0b',
gradient: ['#ffffff', '#fef3c7']
},
handles: {
input: true,
output: true
},
features: {
showBadge: true,
showHoverMenu: true
}
},
// 基本配置Schema
configSchema: {
type: "object",
title: "基本配置",
description: "节点的基本信息和Jenkins构建配置参数",
properties: {
nodeName: {
type: "string",
title: "节点名称",
description: "节点在流程图中显示的名称",
default: "Jenkins构建"
},
nodeCode: {
type: "string",
title: "节点编码",
description: "节点的唯一标识符",
default: "JENKINS_BUILD"
},
description: {
type: "string",
title: "节点描述",
description: "节点的详细说明",
default: "通过Jenkins执行构建任务"
},
jenkinsUrl: {
type: "string",
title: "Jenkins服务器地址",
description: "Jenkins服务器的完整URL地址",
default: "http://jenkins.example.com:8080",
format: "uri"
}
},
required: ["nodeName", "nodeCode", "jenkinsUrl"]
},
// ✅ 输出能力定义(只读展示,传递给后端)
outputs: [
{
name: "buildNumber",
title: "构建编号",
type: "number",
description: "Jenkins构建的唯一编号",
example: 123,
required: true
},
{
name: "buildStatus",
title: "构建状态",
type: "string",
enum: ["SUCCESS", "FAILURE", "UNSTABLE", "ABORTED"],
description: "构建执行的结果状态",
example: "SUCCESS",
required: true
},
{
name: "buildUrl",
title: "构建URL",
type: "string",
description: "Jenkins构建页面的访问地址",
example: "http://jenkins.example.com/job/app/123/",
required: true
},
{
name: "artifactUrl",
title: "构建产物地址",
type: "string",
description: "构建生成的jar/war包下载地址",
example: "http://jenkins.example.com/job/app/123/artifact/target/app-1.0.0.jar",
required: false
},
{
name: "gitCommitId",
title: "Git提交ID",
type: "string",
description: "本次构建使用的Git提交哈希值",
example: "a3f5e8d2c4b1a5e9f2d3e7b8c9d1a2f3e4b5c6d7",
required: true
},
{
name: "buildDuration",
title: "构建时长",
type: "number",
description: "构建执行的时长(秒)",
example: 120,
required: true
}
]
};
// ✅ 不再需要单独的渲染组件,使用 BaseNode 即可