例如:流水线的设计表
CREATE TABLE `tb_pipeline` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`org_id` bigint(20) NOT NULL COMMENT '组织id,关联到组织',
`creator_id` bigint(20) NOT NULL COMMENT '创建者id',
`name` varchar(128) NOT NULL COMMENT 'pipeline名称',
`description` varchar(128) NOT NULL COMMENT 'pipeline描述信息',
`sources` text COMMENT 'pipeline的输入源,json格式,可配置多个输入源',
`content` text NOT NULL COMMENT 'pipeline配置信息,json格式,stage和step配置',
`trigger_mode` smallint(6) NOT NULL DEFAULT '0' COMMENT '0 自动运行 1 手动执行',
`deleted` smallint(6) NOT NULL DEFAULT '0' COMMENT '0逻辑正常 1逻辑删除',
`create_time` timestamp NOT NULL DEFAULT '2000-01-01 00:00:00',
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='pipeline 基本信息全量表';
流水线模版的设计表:
CREATE TABLE `tb_pipeline_template` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`org_id` bigint(20) NOT NULL COMMENT '组织id,关联到组织',
`creator_id` int(10) NOT NULL COMMENT '创建者id,Lake用户id',
`name` varchar(128) NOT NULL COMMENT '模板名称',
`description` varchar(256) NOT NULL COMMENT '模板简介',
`type` varchar(128) NOT NULL DEFAULT 'pipeline' COMMENT '模板类型 pipeine,stage,step',
`category` varchar(128) NOT NULL DEFAULT '' COMMENT '模板分类,例如 JAVA ,C++, Python,Php,Go等',
`show_env` varchar(128) NOT NULL DEFAULT '' COMMENT '展示环境,daily,staging,production,prepub',
`content` text NOT NULL COMMENT '模板内容, json格式',
`deleted` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '0逻辑正常 1逻辑删除',
`create_time` timestamp NOT NULL DEFAULT '2000-01-01 00:00:00',
`modify_time` timestamp NOT NULL DEFAULT '2000-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='pipeline 模版的基本信息';
接口设计 参数等:
所有接口不做特地说明,都为post json
前端传入字段的类型 参考 表结构哈
pipeline 表的sources 目前没有用
orgId,teamId,creatorId,不需要从body传递,后端从header解析
projectId需要从body传递
2.1 pipeline 新建
path: /pipeline/
method: 新增post json
header:orgId,teamId,creatorId
param:
{
"projectId": 345,
"name": "pipeline名称",
"description": "pipeline描述信息",
"sources": "pipeline的输入源,json格式,可配置多个输入源",
"content": "pipeline配置信息,json格式,stage和step配置",
"triggerMode": "0 自动运行 1 手动执行",
}
--orgId,teamId,creatorId,不需要从body传递,后端从header解析,projectId需要
说明
sources,pipeline的输入源,json格式,可配置多个输入源,可以直接是markdown的文本string
content,pipeline配置信息,json格式,stage和step配置,文本string
"deleted": "0逻辑正常 1逻辑删除", "create_time": "2000-01-01 00:00:00","modify_time": 初次新增后端设置 新建和修改时间均为当前时间。
teamId,projectId 默认为0,不为0 的时候关联表插入数据。
return: 返回pipeline list 查询,path: /pipeline/list method: get json
{
"code": 0,
"data": {
"totalPage": 1,
"pageSize": 20,
"totalCount": 3,
"pageNum": 1,
"target": [
{
"id": 123,
"orgId": 123,
"creatorId": 567,
"name": "pipeline名称",
"description": "pipeline描述信息",
"sources": "pipeline的输入源,json格式,可配置多个输入源",
"content": "pipeline配置信息,json格式,stage和step配置",
"triggerMode": "0 自动运行 1 手动执行",
},
{
"id": 124,
"orgId": 123,
"creatorId": 456,
"name": "pipeline名称",
"description": "pipeline描述信息",
"sources": "pipeline的输入源,json格式,可配置多个输入源",
"content": "pipeline配置信息,json格式,stage和step配置",
"triggerMode": "0 自动运行 1 手动执行",
}
]
},
"message": "success"
}
关联表tb_pipeline_project新增数据
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`pipeline_id` bigint(20) NOT NULL COMMENT 'pipeline id',
`team_id` bigint(20) NOT NULL COMMENT '团队id,关联到团队',
`project_id` bigint(20) NOT NULL COMMENT '项目id,关联到项目',
`deleted` smallint(6) NOT NULL DEFAULT '0' COMMENT '0逻辑正常 1逻辑删除',
`create_time` timestamp NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '创建时间',
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',