diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts index a7ec59ca..1100b678 100644 --- a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts @@ -746,7 +746,7 @@ export default { captchaTest: "测试验证码", captchaTestHelper: "保存后再点击测试,请务必测试通过了,再开启登录验证码", - pipelineValidTimeEnabled: "流水线有效期", + pipelineValidTimeEnabled: "启用流水线有效期", pipelineValidTimeEnabledHelper: "是否启用流水线有效期", certDomainAddToMonitorEnabled: "证书域名添加到证书监控", certDomainAddToMonitorEnabledHelper: "创建证书流水线时是否可以选择将域名添加到证书监控", diff --git a/packages/ui/certd-client/src/views/sys/settings/index.vue b/packages/ui/certd-client/src/views/sys/settings/index.vue index a2022fe6..66ee8e42 100644 --- a/packages/ui/certd-client/src/views/sys/settings/index.vue +++ b/packages/ui/certd-client/src/views/sys/settings/index.vue @@ -34,7 +34,7 @@ import SettingRegister from "/@/views/sys/settings/tabs/register.vue"; import SettingPayment from "/@/views/sys/settings/tabs/payment.vue"; import SettingSafe from "/@/views/sys/settings/tabs/safe.vue"; import SettingCaptcha from "/@/views/sys/settings/tabs/captcha.vue"; - +import SettingCert from "/@/views/sys/settings/tabs/cert.vue"; import { useRoute, useRouter } from "vue-router"; import { ref } from "vue"; import { useSettingStore } from "/@/store/settings"; diff --git a/packages/ui/certd-client/src/views/sys/settings/tabs/cert.vue b/packages/ui/certd-client/src/views/sys/settings/tabs/cert.vue index 374de7f7..46ee46f0 100644 --- a/packages/ui/certd-client/src/views/sys/settings/tabs/cert.vue +++ b/packages/ui/certd-client/src/views/sys/settings/tabs/cert.vue @@ -7,7 +7,7 @@ -
{{ t("certd.pipelineValidTimeEnabledHelper") }}
+
{{ t("certd.sys.setting.pipelineValidTimeEnabledHelper") }}
diff --git a/packages/ui/certd-server/src/controller/user/pipeline/pipeline-controller.ts b/packages/ui/certd-server/src/controller/user/pipeline/pipeline-controller.ts index 6d9ebe74..479b12e9 100644 --- a/packages/ui/certd-server/src/controller/user/pipeline/pipeline-controller.ts +++ b/packages/ui/certd-server/src/controller/user/pipeline/pipeline-controller.ts @@ -101,7 +101,7 @@ export class PipelineController extends CrudController { @Post('/trigger', { summary: Constants.per.authOnly }) async trigger(@Query('id') id: number, @Query('stepId') stepId?: string) { await this.authService.checkEntityUserId(this.ctx, this.getService(), id); - await this.service.trigger(id, stepId); + await this.service.trigger(id, stepId,true); return this.ok({}); } 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 0b58da65..1f9cce5d 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 @@ -368,17 +368,21 @@ export class PipelineService extends BaseService { } if (immediateTriggerOnce) { - await this.trigger(pipeline.id); - await sleep(200); + try{ + await this.trigger(pipeline.id); + await sleep(200); + }catch(e){ + logger.error(e); + } + } } - async trigger(id: any, stepId?: string) { + async trigger(id: any, stepId?: string , doCheck = false) { const entity: PipelineEntity = await this.info(id); - if (isComm()) { - await this.checkHasDeployCount(id, entity.userId); + if (doCheck) { + await this.beforeCheck(entity); } - await this.checkUserStatus(entity.userId); this.cron.register({ name: `pipeline.${id}.trigger.once`, cron: null, @@ -504,28 +508,42 @@ export class PipelineService extends BaseService { */ async run(id: number, triggerId: string, stepId?: string) { const entity: PipelineEntity = await this.info(id); - const validTimeEnabled = await this.isPipelineValidTimeEnabled(entity) - if (!validTimeEnabled) { - logger.info(`流水线${id}已过期,不予执行`); - return; - } await this.doRun(entity, triggerId, stepId); } - async doRun(entity: PipelineEntity, triggerId: string, stepId?: string) { - const id = entity.id; + async beforeCheck(entity: PipelineEntity) { + const validTimeEnabled = await this.isPipelineValidTimeEnabled(entity) + if (!validTimeEnabled) { + throw new Error(`流水线${entity.id}已过期,不予执行`); + } + let suite: UserSuiteEntity = null; if (isComm()) { - suite = await this.checkHasDeployCount(id, entity.userId); + suite = await this.checkHasDeployCount(entity.id, entity.userId); } - try { - await this.checkUserStatus(entity.userId); + await this.checkUserStatus(entity.userId); + + return { + suite + } + } + + async doRun(entity: PipelineEntity, triggerId: string, stepId?: string) { + + let suite:any = null + try{ + const res = await this.beforeCheck(entity); + suite = res.suite } catch (e) { - logger.info(e.message); - return; + if(!triggerId){ + //手动执行 + throw e; + } + logger.error(`流水线${entity.id}触发${triggerId}失败:`, e); + } - + const id = entity.id; const pipeline = JSON.parse(entity.content); if (!pipeline.id) { pipeline.id = id;