From 5e59651d45bc91919629e35995ff1b3cff6b87ea Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 25 May 2026 00:15:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(pipeline-service):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E7=BA=BF=E8=BF=90=E8=A1=8C=E6=97=B6=E8=B6=85?= =?UTF-8?q?=E8=BF=87=E5=A5=97=E9=A4=90=E9=83=A8=E7=BD=B2=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E4=BB=8D=E7=84=B6=E8=83=BD=E5=A4=9F=E6=AD=A3=E5=B8=B8=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pipeline/service/pipeline-service.test.ts | 38 +++++++++++++++++++ .../pipeline/service/pipeline-service.ts | 1 + 2 files changed, 39 insertions(+) create mode 100644 packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.test.ts diff --git a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.test.ts b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.test.ts new file mode 100644 index 000000000..ca0021399 --- /dev/null +++ b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.test.ts @@ -0,0 +1,38 @@ +import assert from "assert"; +import { PipelineEntity } from "../entity/pipeline.js"; +import { PipelineService } from "./pipeline-service.js"; + +describe("PipelineService", () => { + it("does not start a pipeline run when beforeCheck fails", async () => { + const service = new PipelineService(); + let historyStarted = false; + + service.beforeCheck = async () => { + throw new Error("部署次数不足"); + }; + service.userService = { + async isAdmin() { + return false; + }, + } as any; + service.historyService = { + async start() { + historyStarted = true; + throw new Error("history should not start"); + }, + } as any; + + const entity = new PipelineEntity(); + entity.id = 1; + entity.userId = 1; + entity.projectId = 0; + entity.content = JSON.stringify({ + stages: [{ id: "stage1", tasks: [] }], + triggers: [], + }); + + await service.doRun(entity, null, "ALL"); + + assert.equal(historyStarted, false); + }); +}); diff --git a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts index c53ec1452..15829588f 100644 --- a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts +++ b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts @@ -659,6 +659,7 @@ export class PipelineService extends BaseService { suite = res.suite } catch (e) { logger.error(`流水线${entity.id}触发失败(${triggerId}):${e.message}`); + return; } const id = entity.id;