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;