From d9a622e5bd8397f270295892800ee87721247ae6 Mon Sep 17 00:00:00 2001 From: Odboy Date: Fri, 25 Jul 2025 23:16:49 +0800 Subject: [PATCH] =?UTF-8?q?refactor(devops):=20=E9=87=8D=E6=9E=84=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E7=BA=BF=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 WebSocket 消息解析工具类 WsMessageUtil - 添加流水线实例节点明细查询功能 - 优化流水线重试逻辑,支持指定节点重试 - 新增多个流水线节点处理服务类 - 调整流水线模板获取方式 - 优化流水线状态检查逻辑 --- .../src/api/devops/pipelineInstance.js | 8 + cutejava-front/src/store/getters.js | 7 +- cutejava-front/src/store/modules/pipeline.js | 15 + cutejava-front/src/temp | 0 cutejava-front/src/utils/request.js | 6 +- .../views/components/dev/CutePipelineNode.vue | 268 +++++++++++------- .../componentsDemo/CutePipelineNodeDemo.vue | 12 +- .../framework/websocket/model/WsSidVo.java | 13 + .../websocket/util/WsMessageUtil.java | 27 ++ .../DevopsPipelineInstanceController.java | 18 +- .../AbstractPipelineNodeJobService.java | 2 +- .../pipeline/core/PipelineJobBean.java | 10 - .../core/PipelineNodeJobExecutor.java | 2 +- .../log/PipelineNodeStepLogAspect.java | 8 +- ...ataVo.java => PipelineInstanceNodeVo.java} | 9 +- .../pipeline/model/PipelineInstanceVo.java | 7 +- .../model/PipelineNodeTemplateVo.java | 4 +- .../PipelineInstanceNodeDetailService.java | 4 +- .../service/core/PipelineInstanceService.java | 4 +- .../service/core/PipelineTemplateService.java | 5 - ...PipelineInstanceNodeDetailServiceImpl.java | 27 +- .../impl/PipelineInstanceServiceImpl.java | 52 ++-- .../PipelineNodeApkSignAndroidService.java | 2 +- ...a => PipelineNodeApproveCPlusService.java} | 6 +- ...ipelineNodeApproveTestAndroidService.java} | 6 +- .../PipelineNodeBuildCPlusService.java | 44 +++ .../pipeline/PipelineNodeBuildIOSService.java | 44 +++ ...ipelineNodeCheckFlutterVersionService.java | 44 +++ .../PipelineNodeDeployNodeService.java | 2 +- ...a => PipelineNodeDeployPythonService.java} | 20 +- ...=> PipelineNodeHttpPostPluginService.java} | 6 +- .../PipelineNodeMergeBranchService.java | 2 +- ...pelineNodeReinforceAndroidApkService.java} | 4 +- .../PipelineNodeUploadAndroidApkService.java | 44 +++ .../pipeline/node/PipelineNodeDemoBiz.java | 4 +- .../node/PipelineNodeMergeBranchBiz.java | 2 + cutejava/doc/warning.md | 3 + 37 files changed, 535 insertions(+), 206 deletions(-) create mode 100644 cutejava-front/src/store/modules/pipeline.js create mode 100644 cutejava-front/src/temp create mode 100644 cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java create mode 100644 cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/util/WsMessageUtil.java rename cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/model/{PipelineNodeDataVo.java => PipelineInstanceNodeVo.java} (69%) rename cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/{PipelineNodeHttpPostPluginStcUploadService.java => PipelineNodeApproveCPlusService.java} (88%) rename cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/{PipelineNodeMPassUploadAndroidService.java => PipelineNodeApproveTestAndroidService.java} (91%) create mode 100644 cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/PipelineNodeBuildCPlusService.java create mode 100644 cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/PipelineNodeBuildIOSService.java create mode 100644 cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/PipelineNodeCheckFlutterVersionService.java rename cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/{PipelineNodeHttpPostPluginStcResultService.java => PipelineNodeDeployPythonService.java} (60%) rename cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/{PipelineNodeReleaseAndroidService.java => PipelineNodeHttpPostPluginService.java} (91%) rename cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/{PipelineNodeMPassStartAndroidService.java => PipelineNodeReinforceAndroidApkService.java} (91%) create mode 100644 cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/service/pipeline/PipelineNodeUploadAndroidApkService.java create mode 100644 cutejava/doc/warning.md diff --git a/cutejava-front/src/api/devops/pipelineInstance.js b/cutejava-front/src/api/devops/pipelineInstance.js index c0e2e87b..81ad3942 100644 --- a/cutejava-front/src/api/devops/pipelineInstance.js +++ b/cutejava-front/src/api/devops/pipelineInstance.js @@ -8,6 +8,14 @@ export function startPipeline(data) { }) } +export function retryPipeline(data) { + return request({ + url: 'api/devops/pipelineInstance/retry', + method: 'post', + data + }) +} + export function restartPipeline(data) { return request({ url: 'api/devops/pipelineInstance/restart', diff --git a/cutejava-front/src/store/getters.js b/cutejava-front/src/store/getters.js index aadeb3cd..189deddd 100644 --- a/cutejava-front/src/store/getters.js +++ b/cutejava-front/src/store/getters.js @@ -1,3 +1,7 @@ +/** + * 在modules中定义后,需要到这注册 + * @type {any} + */ const getters = { deployUploadApi: state => state.api.deployUploadApi, databaseUploadApi: state => state.api.databaseUploadApi, @@ -19,6 +23,7 @@ const getters = { druidSqlApi: state => state.api.druidSqlApi, swaggerApi: state => state.api.swaggerApi, websocketApi: state => state.api.websocketApi, - sidebarRouters: state => state.permission.sidebarRouters + sidebarRouters: state => state.permission.sidebarRouters, + statusConst: state => state.pipeline.statusConst } export default getters diff --git a/cutejava-front/src/store/modules/pipeline.js b/cutejava-front/src/store/modules/pipeline.js new file mode 100644 index 00000000..0c6b325e --- /dev/null +++ b/cutejava-front/src/store/modules/pipeline.js @@ -0,0 +1,15 @@ +const pipeline = { + /** + * 全局常量 + */ + state: { + statusConst: { + pending: { code: 'pending', label: '未开始', color: '#C0C4CC', icon: 'el-icon-time' }, + running: { code: 'running', label: '运行中', color: '#409EFF', icon: 'el-icon-loading' }, + success: { code: 'success', label: '执行成功', color: '#67C23A', icon: 'el-icon-success' }, + fail: { code: 'fail', label: '执行失败', color: '#F56C6C', icon: 'el-icon-error' } + } + } +} + +export default pipeline diff --git a/cutejava-front/src/temp b/cutejava-front/src/temp new file mode 100644 index 00000000..e69de29b diff --git a/cutejava-front/src/utils/request.js b/cutejava-front/src/utils/request.js index 56b51e44..921b3a7b 100644 --- a/cutejava-front/src/utils/request.js +++ b/cutejava-front/src/utils/request.js @@ -30,7 +30,9 @@ service.interceptors.request.use( // response 拦截器 service.interceptors.response.use( response => { - return response.data + const data = response.data + // console.error('data', data) + return data }, error => { // 兼容blob下载出错json提示 @@ -57,7 +59,7 @@ service.interceptors.response.use( return Promise.reject(error) } } - console.log(code) + // console.log(code) if (code) { if (code === 401) { store.dispatch('LogOut').then(() => { diff --git a/cutejava-front/src/views/components/dev/CutePipelineNode.vue b/cutejava-front/src/views/components/dev/CutePipelineNode.vue index af2fe34b..ef0040a4 100644 --- a/cutejava-front/src/views/components/dev/CutePipelineNode.vue +++ b/cutejava-front/src/views/components/dev/CutePipelineNode.vue @@ -1,118 +1,60 @@ @@ -142,7 +101,9 @@