增加构建通知
This commit is contained in:
parent
fe66ee4d5f
commit
360b794bff
@ -1,5 +1,6 @@
|
||||
package com.qqchen.deploy.backend.deploy.dto;
|
||||
|
||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
@ -23,6 +24,9 @@ public class TeamApplicationDTO extends BaseDTO {
|
||||
@NotNull(message = "环境ID不能为空")
|
||||
private Long environmentId;
|
||||
|
||||
@Schema(description = "构建类型", example = "JENKINS")
|
||||
private BuildTypeEnum buildType;
|
||||
|
||||
@Schema(description = "分支名称", example = "develop")
|
||||
private String branch;
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.qqchen.deploy.backend.deploy.dto;
|
||||
|
||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@ -30,6 +31,9 @@ public class UserDeployableTeamEnvironmentApplicationDTO {
|
||||
@Schema(description = "应用描述")
|
||||
private String applicationDesc;
|
||||
|
||||
@Schema(description = "构建类型(JENKINS-Jenkins构建,NATIVE-脚本部署)")
|
||||
private BuildTypeEnum buildType;
|
||||
|
||||
@Schema(description = "分支名称")
|
||||
private String branch;
|
||||
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
package com.qqchen.deploy.backend.deploy.dto.variables.build;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.annotation.formily.*;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Jenkins构建变量
|
||||
*/
|
||||
@Data
|
||||
@FormilyForm(name = "Jenkins构建配置")
|
||||
public class JenkinsBaseBuildVariables {
|
||||
|
||||
private String externalSystemId;
|
||||
|
||||
private String viewId;
|
||||
|
||||
private String jobId;
|
||||
|
||||
private Map<String, String> envs;
|
||||
|
||||
private String script;
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.qqchen.deploy.backend.deploy.dto.variables.build;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.annotation.formily.FormilyForm;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* Jenkins构建变量
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class JenkinsJavaBuildVariables extends JenkinsBaseBuildVariables {
|
||||
|
||||
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
package com.qqchen.deploy.backend.deploy.dto.variables.build;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* Jenkins构建变量
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class JenkinsNodeJsBuildVariables extends JenkinsBaseBuildVariables {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.qqchen.deploy.backend.deploy.dto.variables.form;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BuildFormVariables {
|
||||
|
||||
@SchemaProperty(
|
||||
title = "禅道任务号",
|
||||
description = "禅道任务号",
|
||||
required = true
|
||||
)
|
||||
private String taskNo;
|
||||
|
||||
}
|
||||
@ -1,9 +1,9 @@
|
||||
package com.qqchen.deploy.backend.deploy.entity;
|
||||
|
||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||
import com.qqchen.deploy.backend.framework.annotation.LogicDelete;
|
||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@ -38,6 +38,13 @@ public class TeamApplication extends Entity<Long> {
|
||||
@Column(name = "environment_id", nullable = false)
|
||||
private Long environmentId;
|
||||
|
||||
/**
|
||||
* 构建类型(JENKINS-Jenkins构建,NATIVE-脚本部署)
|
||||
*/
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "build_type", length = 50)
|
||||
private BuildTypeEnum buildType;
|
||||
|
||||
/**
|
||||
* 分支名称
|
||||
*/
|
||||
@ -58,12 +65,14 @@ public class TeamApplication extends Entity<Long> {
|
||||
|
||||
/**
|
||||
* 部署系统ID(关联sys_external_system,type=JENKINS)
|
||||
* 仅当 buildType=JENKINS 时使用
|
||||
*/
|
||||
@Column(name = "deploy_system_id")
|
||||
private Long deploySystemId;
|
||||
|
||||
/**
|
||||
* 部署任务ID(关联deploy_jenkins_job)
|
||||
* 部署任务名称(Jenkins Job名称)
|
||||
* 仅当 buildType=JENKINS 时使用
|
||||
*/
|
||||
@Column(name = "deploy_job", length = 100)
|
||||
private String deployJob;
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
package com.qqchen.deploy.backend.deploy.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import com.qqchen.deploy.backend.deploy.dto.variables.build.JenkinsJavaBuildVariables;
|
||||
import com.qqchen.deploy.backend.deploy.dto.variables.build.JenkinsNodeJsBuildVariables;
|
||||
import com.qqchen.deploy.backend.deploy.dto.variables.form.BuildFormVariables;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
@ -21,45 +18,32 @@ public enum BuildTypeEnum {
|
||||
DevelopmentLanguageTypeEnum.GO,
|
||||
DevelopmentLanguageTypeEnum.PYTHON
|
||||
},
|
||||
BuildFormVariables.class,
|
||||
new Class[] {
|
||||
JenkinsJavaBuildVariables.class,
|
||||
JenkinsNodeJsBuildVariables.class,
|
||||
null,
|
||||
null
|
||||
},
|
||||
"Jenkins构建"
|
||||
),
|
||||
NATIVE(
|
||||
"NATIVE",
|
||||
"Native构建",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"Native构建"
|
||||
"脚本部署",
|
||||
new DevelopmentLanguageTypeEnum[] {
|
||||
DevelopmentLanguageTypeEnum.JAVA
|
||||
},
|
||||
"通过自定义脚本进行构建部署"
|
||||
),
|
||||
CODE_ARTS(
|
||||
"CODE_ARTS",
|
||||
"CodeArts构建",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"CodeArts构建"
|
||||
),
|
||||
GITLAB_RUNNER(
|
||||
"GITLAB_RUNNER",
|
||||
"GitLab Runner构建",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"GitLab Runner构建"
|
||||
),
|
||||
GITHUB_ACTION(
|
||||
"GITHUB_ACTION",
|
||||
"GitHub Action构建",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"GitHub Action构建"
|
||||
);
|
||||
|
||||
@ -70,18 +54,12 @@ public enum BuildTypeEnum {
|
||||
|
||||
private final DevelopmentLanguageTypeEnum[] supportedLanguages;
|
||||
|
||||
private final Class<?> formVariablesSchema;
|
||||
|
||||
private final Class<?>[] buildVariables;
|
||||
|
||||
private final String description;
|
||||
|
||||
BuildTypeEnum(String code, String name, DevelopmentLanguageTypeEnum[] supportedLanguages, Class<?> formVariablesSchema, Class<?>[] buildVariables, String description) {
|
||||
BuildTypeEnum(String code, String name, DevelopmentLanguageTypeEnum[] supportedLanguages, String description) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
this.supportedLanguages = supportedLanguages;
|
||||
this.formVariablesSchema = formVariablesSchema;
|
||||
this.buildVariables = buildVariables;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.qqchen.deploy.backend.deploy.query;
|
||||
|
||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||
import com.qqchen.deploy.backend.framework.annotation.QueryField;
|
||||
import com.qqchen.deploy.backend.framework.query.BaseQuery;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@ -28,5 +29,9 @@ public class TeamApplicationQuery extends BaseQuery {
|
||||
@QueryField(field = "environmentId")
|
||||
@Schema(description = "环境ID")
|
||||
private Long environmentId;
|
||||
|
||||
@QueryField(field = "buildType")
|
||||
@Schema(description = "构建类型")
|
||||
private BuildTypeEnum buildType;
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.qqchen.deploy.backend.deploy.repository;
|
||||
|
||||
import com.qqchen.deploy.backend.deploy.entity.TeamApplication;
|
||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
@ -116,5 +117,14 @@ public interface ITeamApplicationRepository extends IBaseRepository<TeamApplicat
|
||||
* @return 团队应用列表
|
||||
*/
|
||||
List<TeamApplication> findByDeploySystemId(Long deploySystemId);
|
||||
|
||||
/**
|
||||
* 根据部署系统ID和构建类型查询团队应用(用于Jenkins构建通知)
|
||||
*
|
||||
* @param deploySystemId 部署系统ID(Jenkins系统)
|
||||
* @param buildType 构建类型
|
||||
* @return 团队应用列表
|
||||
*/
|
||||
List<TeamApplication> findByDeploySystemIdAndBuildType(Long deploySystemId, BuildTypeEnum buildType);
|
||||
}
|
||||
|
||||
|
||||
@ -556,6 +556,7 @@ public class DeployServiceImpl implements IDeployService {
|
||||
dto.setApplicationCode(app.getAppCode());
|
||||
dto.setApplicationName(app.getAppName());
|
||||
dto.setApplicationDesc(app.getAppDesc());
|
||||
dto.setBuildType(teamApp.getBuildType());
|
||||
dto.setBranch(teamApp.getBranch());
|
||||
|
||||
// 设置部署系统信息
|
||||
|
||||
@ -7,6 +7,7 @@ import com.qqchen.deploy.backend.deploy.dto.JenkinsSyncHistoryDTO;
|
||||
import com.qqchen.deploy.backend.framework.utils.JsonUtils;
|
||||
import com.qqchen.deploy.backend.deploy.entity.*;
|
||||
import com.qqchen.deploy.backend.deploy.dto.JenkinsBuildDTO;
|
||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||
import com.qqchen.deploy.backend.deploy.enums.ExternalSystemSyncStatus;
|
||||
import com.qqchen.deploy.backend.deploy.enums.JenkinsSyncType;
|
||||
import com.qqchen.deploy.backend.deploy.integration.response.*;
|
||||
@ -448,9 +449,9 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl<JenkinsBuild, Jenki
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 反查团队绑定关系
|
||||
// 2. 反查团队绑定关系(只查询构建类型为JENKINS的应用)
|
||||
List<TeamApplication> teamApps = teamApplicationRepository
|
||||
.findByDeploySystemId(externalSystemId);
|
||||
.findByDeploySystemIdAndBuildType(externalSystemId, BuildTypeEnum.JENKINS);
|
||||
|
||||
if (teamApps.isEmpty()) {
|
||||
log.info("没有团队绑定该Jenkins系统: externalSystemId={}", externalSystemId);
|
||||
|
||||
@ -807,17 +807,19 @@ CREATE TABLE deploy_team_application
|
||||
team_id BIGINT NOT NULL COMMENT '团队ID',
|
||||
application_id BIGINT NOT NULL COMMENT '应用ID',
|
||||
environment_id BIGINT NOT NULL COMMENT '环境ID',
|
||||
build_type VARCHAR(50) NULL COMMENT '构建类型(JENKINS-Jenkins构建,NATIVE-脚本部署)',
|
||||
branch VARCHAR(100) NULL COMMENT '分支名称',
|
||||
code_source_system_id BIGINT NULL COMMENT '代码源系统ID(关联sys_external_system,type=GIT)',
|
||||
code_source_project_id BIGINT NULL COMMENT '代码源项目ID(Git项目ID)',
|
||||
deploy_system_id BIGINT NULL COMMENT '部署系统ID(关联sys_external_system,type=JENKINS)',
|
||||
deploy_job VARCHAR(100) NULL COMMENT '部署任务ID(关联deploy_jenkins_job)',
|
||||
deploy_system_id BIGINT NULL COMMENT '部署系统ID(关联sys_external_system,type=JENKINS),仅当build_type=JENKINS时使用',
|
||||
deploy_job VARCHAR(100) NULL COMMENT '部署任务名称(Jenkins Job名称),仅当build_type=JENKINS时使用',
|
||||
workflow_definition_id BIGINT NULL COMMENT '工作流定义ID(关联workflow_definition)',
|
||||
|
||||
UNIQUE INDEX uk_team_app_env (team_id, application_id, environment_id),
|
||||
INDEX idx_team (team_id),
|
||||
INDEX idx_application (application_id),
|
||||
INDEX idx_environment (environment_id),
|
||||
INDEX idx_build_type (build_type),
|
||||
INDEX idx_code_source_system (code_source_system_id),
|
||||
INDEX idx_deploy_system (deploy_system_id),
|
||||
INDEX idx_deploy_job (deploy_job),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user