增加构建通知
This commit is contained in:
parent
e7211f8699
commit
7bf536cb41
@ -1,5 +1,6 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.dto;
|
package com.qqchen.deploy.backend.deploy.dto;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
@ -19,8 +20,11 @@ import java.util.List;
|
|||||||
@Schema(description = "部署执行请求")
|
@Schema(description = "部署执行请求")
|
||||||
public class DeployExecuteRequest {
|
public class DeployExecuteRequest {
|
||||||
|
|
||||||
@Schema(description = "Jenkins配置", required = true)
|
@Schema(description = "构建类型", required = true)
|
||||||
@NotNull(message = "Jenkins配置不能为空")
|
@NotNull(message = "构建类型不能为空")
|
||||||
|
private BuildTypeEnum buildType;
|
||||||
|
|
||||||
|
@Schema(description = "Jenkins配置(buildType为JENKINS时必填)")
|
||||||
@Valid
|
@Valid
|
||||||
private JenkinsConfig jenkins;
|
private JenkinsConfig jenkins;
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.qqchen.deploy.backend.deploy.service.impl;
|
|||||||
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.*;
|
import com.qqchen.deploy.backend.deploy.dto.*;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.*;
|
import com.qqchen.deploy.backend.deploy.entity.*;
|
||||||
|
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||||
import com.qqchen.deploy.backend.deploy.repository.*;
|
import com.qqchen.deploy.backend.deploy.repository.*;
|
||||||
import com.qqchen.deploy.backend.notification.entity.NotificationChannel;
|
import com.qqchen.deploy.backend.notification.entity.NotificationChannel;
|
||||||
import com.qqchen.deploy.backend.notification.entity.NotificationTemplate;
|
import com.qqchen.deploy.backend.notification.entity.NotificationTemplate;
|
||||||
@ -744,7 +745,11 @@ public class DeployServiceImpl implements IDeployService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public DeployResultDTO executeDeploy(DeployExecuteRequest request) {
|
public DeployResultDTO executeDeploy(DeployExecuteRequest request) {
|
||||||
log.info("开始执行部署: teamApplicationId={}, applicationCode={}, environmentCode={}", request.getTeamApplicationId(), request.getApplicationCode(), request.getEnvironmentCode());
|
log.info("开始执行部署: teamApplicationId={}, applicationCode={}, environmentCode={}, buildType={}",
|
||||||
|
request.getTeamApplicationId(), request.getApplicationCode(), request.getEnvironmentCode(), request.getBuildType());
|
||||||
|
|
||||||
|
// 0. 根据构建类型校验Jenkins配置
|
||||||
|
validateJenkinsConfig(request);
|
||||||
|
|
||||||
// 1. 查询工作流定义
|
// 1. 查询工作流定义
|
||||||
TeamApplication teamApp = teamApplicationRepository.findById(request.getTeamApplicationId()).orElseThrow(() -> new BusinessException(ResponseCode.TEAM_APPLICATION_NOT_FOUND));
|
TeamApplication teamApp = teamApplicationRepository.findById(request.getTeamApplicationId()).orElseThrow(() -> new BusinessException(ResponseCode.TEAM_APPLICATION_NOT_FOUND));
|
||||||
@ -800,6 +805,24 @@ public class DeployServiceImpl implements IDeployService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据构建类型校验Jenkins配置
|
||||||
|
* <p>当buildType为JENKINS时,jenkins配置必填
|
||||||
|
*/
|
||||||
|
private void validateJenkinsConfig(DeployExecuteRequest request) {
|
||||||
|
if (request.getBuildType() == BuildTypeEnum.JENKINS) {
|
||||||
|
if (request.getJenkins() == null) {
|
||||||
|
throw new BusinessException(ResponseCode.DEPLOY_JENKINS_CONFIG_MISSING);
|
||||||
|
}
|
||||||
|
if (request.getJenkins().getServerId() == null) {
|
||||||
|
throw new BusinessException(ResponseCode.INVALID_PARAM, new Object[]{"Jenkins服务器ID不能为空"});
|
||||||
|
}
|
||||||
|
if (request.getJenkins().getJobName() == null || request.getJenkins().getJobName().isBlank()) {
|
||||||
|
throw new BusinessException(ResponseCode.INVALID_PARAM, new Object[]{"Jenkins任务名称不能为空"});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DeployApprovalTaskDTO> getMyApprovalTasks(Long teamId, Long environmentId, List<String> workflowDefinitionKeys) {
|
public List<DeployApprovalTaskDTO> getMyApprovalTasks(Long teamId, Long environmentId, List<String> workflowDefinitionKeys) {
|
||||||
// 1. 获取当前登录用户
|
// 1. 获取当前登录用户
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user