diff --git a/.idea/CopilotChatHistory.xml b/.idea/CopilotChatHistory.xml index c815543..b357f4c 100644 --- a/.idea/CopilotChatHistory.xml +++ b/.idea/CopilotChatHistory.xml @@ -3,6 +3,265 @@ + + diff --git a/dependencies/.flattened-pom.xml b/dependencies/.flattened-pom.xml index 3356936..ff50801 100644 --- a/dependencies/.flattened-pom.xml +++ b/dependencies/.flattened-pom.xml @@ -19,6 +19,7 @@ 3.5.16 0.33.0 2.9.3 + 20250107 8.6.0 1.27.1 2.3.1 @@ -68,6 +69,7 @@ 3.11.1 1.7.8 4.0.3 + 1.5.6 1.2.23 3.0.6 8.1.3.140 @@ -194,48 +196,68 @@ ${revision} - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common ${revision} - cd.casic.ci - ci-event + cd.casic.boot + module-ci-common-pipeline ${revision} - cd.casic.ci - ci-log + cd.casic.boot + module-ci-process-api ${revision} - cd.casic.ci - ci-market + cd.casic.boot + module-ci-environment ${revision} - cd.casic.ci - ci-process + cd.casic.boot + module-ci-event ${revision} - cd.casic.ci - ci-project + cd.casic.boot + module-ci-log ${revision} - cd.casic.ci - ci-quality + cd.casic.boot + module-ci-market ${revision} - cd.casic.ci - ci-ticket + cd.casic.boot + module-ci-process-api ${revision} - cd.casic.ci - ci-scm-repository + cd.casic.boot + module-ci-project + ${revision} + + + cd.casic.boot + module-ci-quality + ${revision} + + + cd.casic.boot + module-ci-ticket + ${revision} + + + cd.casic.boot + module-ci-repository + ${revision} + + + cd.casic.boot + module-ci-worker ${revision} @@ -244,8 +266,8 @@ ${bizlog-sdk.version} - spring-boot-starter org.springframework.boot + spring-boot-starter @@ -300,12 +322,12 @@ ${easy-trans.version} - spring-context org.springframework + spring-context - spring-cloud-commons org.springframework.cloud + spring-cloud-commons @@ -325,8 +347,8 @@ ${redisson.version} - spring-boot-starter-actuator org.springframework.boot + spring-boot-starter-actuator @@ -336,8 +358,8 @@ ${lock4j.version} - redisson-spring-boot-starter org.redisson + redisson-spring-boot-starter @@ -377,8 +399,8 @@ ${spring-boot-admin.version} - spring-boot-admin-server-cloud de.codecentric + spring-boot-admin-server-cloud @@ -398,12 +420,12 @@ ${spring.boot.version} - asm org.ow2.asm + asm - mockito-core org.mockito + mockito-core @@ -477,6 +499,16 @@ fastjson ${fastjson.version} + + com.networknt + json-schema-validator + ${json.schema.validator.veresion} + + + org.json + json + ${json.version} + com.google.guava guava @@ -523,8 +555,8 @@ ${pf4j.version} - slf4j-log4j12 org.slf4j + slf4j-log4j12 @@ -578,11 +610,6 @@ winp ${winp.version} - - org.jenkins-ci - version-number - ${version-number.version}} - org.reflections reflections diff --git a/dependencies/pom.xml b/dependencies/pom.xml index 4cba9bd..d6af30f 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -59,6 +59,8 @@ 4.0.3 2.4 1.2.83 + 1.5.6 + 20250107 33.3.1-jre 2.14.5 3.11.1 @@ -79,7 +81,7 @@ 1.28 1.12 0.10.2 - + 1.4.0 1.28 2.6.10 @@ -216,58 +218,83 @@ module-system-biz ${revision} - + + - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common ${revision} - cd.casic.ci - ci-event + cd.casic.boot + module-ci-common-pipeline ${revision} - cd.casic.ci - ci-log + cd.casic.boot + module-ci-process-api ${revision} - cd.casic.ci - ci-market + cd.casic.boot + module-ci-environment ${revision} - cd.casic.ci - ci-process + cd.casic.boot + module-ci-event ${revision} - cd.casic.ci - ci-project + cd.casic.boot + module-ci-log ${revision} - cd.casic.ci - ci-quality + cd.casic.boot + module-ci-market ${revision} - cd.casic.ci - ci-ticket + cd.casic.boot + module-ci-process-api ${revision} - cd.casic.ci - ci-scm-repository + cd.casic.boot + module-ci-project + ${revision} + + + + cd.casic.boot + module-ci-quality + ${revision} + + + + cd.casic.boot + module-ci-ticket + ${revision} + + + + cd.casic.boot + module-ci-repository + ${revision} + + + + cd.casic.boot + module-ci-worker ${revision} @@ -545,6 +572,17 @@ ${fastjson.version} + + com.networknt + json-schema-validator + ${json.schema.validator.veresion} + + + org.json + json + ${json.version} + + com.google.guava guava @@ -667,12 +705,6 @@ winp ${winp.version} - - - org.jenkins-ci - version-number - ${version-number.version}} - @@ -721,8 +753,6 @@ io.github.resilience4j resilience4j-circuitbreaker ${resilience4j-circuitbreaker.version} - diff --git a/framework/commons/pom.xml b/framework/commons/pom.xml index 667d8a2..654cec1 100644 --- a/framework/commons/pom.xml +++ b/framework/commons/pom.xml @@ -110,6 +110,7 @@ jackson-databind provided + com.fasterxml.jackson.core jackson-core @@ -144,11 +145,6 @@ okhttp - - com.google.guava - guava - - com.alibaba transmittable-thread-local @@ -169,7 +165,6 @@ bcprov-jdk18on - org.springframework.boot diff --git a/framework/commons/src/main/java/cd/casic/framework/commons/util/date/DateUtils.java b/framework/commons/src/main/java/cd/casic/framework/commons/util/date/DateUtils.java index 3156416..54077f3 100644 --- a/framework/commons/src/main/java/cd/casic/framework/commons/util/date/DateUtils.java +++ b/framework/commons/src/main/java/cd/casic/framework/commons/util/date/DateUtils.java @@ -61,6 +61,10 @@ public class DateUtils { return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); } + public static long LocalDateTimeToMilli(LocalDateTime localDateTime) { + return localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + } + public static Date addTime(Duration duration) { return new Date(System.currentTimeMillis() + duration.toMillis()); } diff --git a/framework/commons/src/main/java/cd/casic/framework/commons/util/json/JsonUtils.java b/framework/commons/src/main/java/cd/casic/framework/commons/util/json/JsonUtils.java index 26e01e4..95af103 100644 --- a/framework/commons/src/main/java/cd/casic/framework/commons/util/json/JsonUtils.java +++ b/framework/commons/src/main/java/cd/casic/framework/commons/util/json/JsonUtils.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.json.JsonReadFeature; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonNode; @@ -31,8 +32,14 @@ public class JsonUtils extends JSONUtil { static { objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); // 忽略 null 值 - objectMapper.registerModules(new JavaTimeModule()); // 解决 LocalDateTime 的序列化 + objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true); + objectMapper.configure(JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature(), true); + /*遇到错误不抛出异常*/ + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, true); + // 忽略 null 值 + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + // 解决 LocalDateTime 的序列化 + objectMapper.registerModules(new JavaTimeModule()); } /** diff --git a/framework/commons/src/main/java/cd/casic/framework/commons/util/yaml/YamlUtils.java b/framework/commons/src/main/java/cd/casic/framework/commons/util/yaml/YamlUtils.java index 5a945a6..570037d 100644 --- a/framework/commons/src/main/java/cd/casic/framework/commons/util/yaml/YamlUtils.java +++ b/framework/commons/src/main/java/cd/casic/framework/commons/util/yaml/YamlUtils.java @@ -14,7 +14,7 @@ import java.util.Set; *

TODO

* * @author mian-bin - * @Description YamlUtils + * @Description YamlUtils , 这个是基础的yaml工具,非流水线的 * @date 2025/1/10 15:22 */ public class YamlUtils { diff --git a/framework/spring-boot-starter-mybatis/pom.xml b/framework/spring-boot-starter-mybatis/pom.xml index c3eb36e..38b100b 100644 --- a/framework/spring-boot-starter-mybatis/pom.xml +++ b/framework/spring-boot-starter-mybatis/pom.xml @@ -67,18 +67,6 @@ true
- - org.postgresql - postgresql - true - - - - com.oracle.database.jdbc - ojdbc8 - true - - org.xerial sqlite-jdbc diff --git a/modules/ci-commons/common-api/pom.xml b/modules/ci-commons/common-api/pom.xml deleted file mode 100644 index 172c5ff..0000000 --- a/modules/ci-commons/common-api/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - 4.0.0 - - cd.casic.ci - ci-commons - ${revision} - ../pom.xml - - - cd.casic.ci - common-api - - ${revision} - jar - - common-api - - - - cd.casic.boot - commons - - - cd.casic.boot - spring-boot-starter-mybatis - - - - diff --git a/modules/ci-commons/common-api/src/main/resources/application.properties b/modules/ci-commons/common-api/src/main/resources/application.properties deleted file mode 100644 index 30ff097..0000000 --- a/modules/ci-commons/common-api/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=common-api diff --git a/modules/ci-commons/common-api/src/test/java/cd/casic/ci/common/api/CommonApiApplicationTests.java b/modules/ci-commons/common-api/src/test/java/cd/casic/ci/common/api/CommonApiApplicationTests.java deleted file mode 100644 index 7fb4513..0000000 --- a/modules/ci-commons/common-api/src/test/java/cd/casic/ci/common/api/CommonApiApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package cd.casic.ci.common.api; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class CommonApiApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/modules/ci-commons/common-pipeline/.gitignore b/modules/ci-commons/common-pipeline/.gitignore deleted file mode 100644 index 549e00a..0000000 --- a/modules/ci-commons/common-pipeline/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ diff --git a/modules/ci-commons/common-pipeline/pom.xml b/modules/ci-commons/common-pipeline/pom.xml deleted file mode 100644 index 3cc291b..0000000 --- a/modules/ci-commons/common-pipeline/pom.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - 4.0.0 - - cd.casic.ci - ci-commons - ${revision} - ../pom.xml - - - cd.casic.ci - common-pipeline - ${revision} - common-pipeline - - jar - - - - - cd.casic.boot - commons - - - - cd.casic.ci - common-api - 2.0.0-jdk17 - - - diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/package-info.java b/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/package-info.java deleted file mode 100644 index 6681d11..0000000 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * @Author:mianbin - * @Package:cd.casic.ci.common.pipeline.type - * @Project:ops-pro - * @name:package-info - * @Date:2025/03/27 10:44 - * @Filename:package-info - * @description:Todo - */ -package cd.casic.ci.common.pipeline.type; \ No newline at end of file diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TransferUtil.java b/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TransferUtil.java deleted file mode 100644 index 7e0b855..0000000 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TransferUtil.java +++ /dev/null @@ -1,38 +0,0 @@ -package cd.casic.ci.common.pipeline.utils; - -import com.alibaba.fastjson.JSONObject; - -import java.util.HashMap; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @Author:mianbin - * @Package:cd.casic.ci.common.pipeline.utils - * @Project:ops-pro - * @name:TransferUtil - * @Date:2025/03/26 16:09 - * @Filename:TransferUtil - * @description:Todo - */ -public class TransferUtil { - public static Map simplifyParams(JSONObject defaultValue, Map input) { - return input.entrySet().stream() - .filter(entry -> { - var inputValue = entry.getValue(); - if (defaultValue.containsKey(entry.getKey())) { - return !new JSONObject(entry.getKey(), defaultValue.get(entry.getKey())).similar(new JSONObject(entry.getKey(), inputValue)); - } - return true; - }) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - } - - public static Map mixParams(JSONObject defaultValue, Map input) { - var out = input != null ? new HashMap<>(input) : new HashMap<>(); - if (defaultValue != null) { - defaultValue.toMap().forEach((k, v) -> out.putIfAbsent(k, v)); - } - return out; - } -} diff --git a/modules/ci-commons/common-pipeline/src/main/resources/application.properties b/modules/ci-commons/common-pipeline/src/main/resources/application.properties deleted file mode 100644 index 1c34b2a..0000000 --- a/modules/ci-commons/common-pipeline/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=common-pipeline diff --git a/modules/ci-commons/common-pipeline/src/test/java/cd/casic/ci/common/pipeline/CommonPipelineApplicationTests.java b/modules/ci-commons/common-pipeline/src/test/java/cd/casic/ci/common/pipeline/CommonPipelineApplicationTests.java deleted file mode 100644 index cabc758..0000000 --- a/modules/ci-commons/common-pipeline/src/test/java/cd/casic/ci/common/pipeline/CommonPipelineApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package cd.casic.ci.common.pipeline; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class CommonPipelineApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/modules/ci-commons/pom.xml b/modules/ci-commons/pom.xml deleted file mode 100644 index 216b216..0000000 --- a/modules/ci-commons/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - 4.0.0 - - cd.casic.boot - modules - ${revision} - ../pom.xml - - - cd.casic.ci - ci-commons - ${revision} - - pom - - - common-api - common-pipeline - - - - 流水线process、流水线engine、流水线work、资源管理层、环境管理、agent、构建调度、项目管理、代码库、凭证、扩展Plugin、日志、流水线外设需要的commons - - \ No newline at end of file diff --git a/modules/ci-event/src/main/java/cd/casic/ci/event/enums/ActionType.java b/modules/ci-event/src/main/java/cd/casic/ci/event/enums/ActionType.java deleted file mode 100644 index 1db57cf..0000000 --- a/modules/ci-event/src/main/java/cd/casic/ci/event/enums/ActionType.java +++ /dev/null @@ -1,23 +0,0 @@ -package cd.casic.ci.event.enums; - -import lombok.Getter; - -/** - * @Author:mianbin - * @Package:cd.casic.ci.event.enums - * @Project:ops-pro - * @name:ActionType - * @Date:2025/03/25 9:51 - * @Filename:ActionType - * @description:Todo - */ -@Getter -public enum ActionType { - RETRY, // 重试 - START, // 开始 - REFRESH, // 刷新ElementAdditionalOptions - END, // 强制结束当前节点,会导致当前构建容器结束 - SKIP, // 跳过-不执行 - TERMINATE, // 终止 - ARCHIVE; // 归档 -} diff --git a/modules/ci-process/pipeline-ci-process-api/pom.xml b/modules/ci-process/pipeline-ci-process-api/pom.xml deleted file mode 100644 index ff8363c..0000000 --- a/modules/ci-process/pipeline-ci-process-api/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - 4.0.0 - - cd.casic.ci - ci-process - ${revision} - ../pom.xml - - - cd.casic.ci - pipeline-ci-process-api - - pipeline-ci-process-api - pipeline-ci-process-api - - ${revision} - - jar - - - - cd.casic.ci - commons-api - - - cd.casic.ci - commons-pipeline - - - cd.casic.ci - ci-event - - - - diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerType.java b/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerType.java deleted file mode 100644 index cb3006f..0000000 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerType.java +++ /dev/null @@ -1,53 +0,0 @@ -package cd.casic.ci.process.api.process.pojo.trigger; - -import cd.casic.ci.log.scm.enums.ScmType; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * @Author:mianbin - * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo.trigger - * @Project:ops-pro - * @name:PipelineTriggerType - * @Date:2025/03/24 17:27 - * @Filename:PipelineTriggerType - * @description:Todo - */ -public enum PipelineTriggerType { - @Schema(title = "SVN 代码库") - CODE_SVN, - @Schema(title = "GIT 代码库") - CODE_GIT, - @Schema(title = "Gitlab 代码库") - CODE_GITLAB, - @Schema(title = "Github 代码库") - GITHUB, - @Schema(title = "TGIT 代码库") - CODE_TGIT, - @Schema(title = "P4 代码库") - CODE_P4, - @Schema(title = "手动触发") - MANUAL, - @Schema(title = "定时触发") - TIME_TRIGGER, - @Schema(title = "服务触发") - OPENAPI, - @Schema(title = "流水线触发") - PIPELINE, - @Schema(title = "远程触发") - REMOTE; - - public static List toMap(ScmType scmType, String userId) { - // 实现逻辑 - return null; - } - - public static ScmType toScmType(String triggerType) { - // 实现逻辑 - return null; - } - - public static boolean webhookTrigger(String triggerType) { - // 实现逻辑 - return false; - } -} diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/DependOnUtils.java b/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/DependOnUtils.java deleted file mode 100644 index 4ddf69a..0000000 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/DependOnUtils.java +++ /dev/null @@ -1,183 +0,0 @@ -package cd.casic.ci.process.api.process.utils; - -import cd.casic.ci.process.api.process.constant.ProcessMessageCode; -import lombok.extern.slf4j.Slf4j; - -import java.util.*; -import java.util.regex.Pattern; - -/** - * @Author:mianbin - * @Package:cd.casic.ci.process.api.process.utils - * @Project:ops-pro - * @name:DependOnUtils - * @Date:2025/03/27 14:39 - * @Filename:DependOnUtils - * @description:Todo - */ -@Slf4j -public class DependOnUtils { - - private static final Pattern REGEX = Pattern.compile("[,;]"); - - public static void checkRepeatedJobId(Stage stage) { - Set jobIdSet = new HashSet<>(); - for (Container c : stage.getContainers()) { - String jobId = c.getJobId(); - if (jobId == null || jobId.isEmpty()) { - continue; - } - if (jobIdSet.contains(jobId)) { - String jobName = getContainerName(stage, c, jobId); - throw new ErrorCodeException( - Response.Status.CONFLICT.getStatusCode(), - ProcessMessageCode.ERROR_PIPELINE_JOBID_EXIST, - new String[]{jobName, jobId}, - jobName + " 的jobId(" + jobId + ")已存在" - ); - } - jobIdSet.add(jobId); - } - removeNonexistentJob(stage, jobIdSet); - } - - private static void removeNonexistentJob(Stage stage, Set jobIdSet) { - for (Container c : stage.getContainers()) { - JobControlOption jobControlOption = null; - if (c instanceof VMBuildContainer) { - jobControlOption = ((VMBuildContainer) c).getJobControlOption(); - } else if (c instanceof NormalContainer) { - jobControlOption = ((NormalContainer) c).getJobControlOption(); - } - if (jobControlOption == null) { - continue; - } - if (jobControlOption.getDependOnType() != DependOnType.ID || jobControlOption.getDependOnId() == null || jobControlOption.getDependOnId().isEmpty()) { - continue; - } - List existJobIds = jobControlOption.getDependOnId().stream() - .filter(jobIdSet::contains) - .toList(); - jobControlOption.setDependOnId(existJobIds); - } - } - - public static void initDependOn(Stage stage, Map params) { - Map allJobId2JobMap = new HashMap<>(); - for (Container c : stage.getContainers()) { - String jobId = c.getJobId(); - if (jobId == null || jobId.isEmpty()) { - continue; - } - allJobId2JobMap.put(jobId, c); - } - if (allJobId2JobMap.isEmpty()) { - return; - } - - Map> cycleCheckJobMap = new HashMap<>(); - for (Container c : stage.getContainers()) { - JobControlOption jobControlOption = null; - if (c instanceof VMBuildContainer) { - jobControlOption = ((VMBuildContainer) c).getJobControlOption(); - } else if (c instanceof NormalContainer) { - jobControlOption = ((NormalContainer) c).getJobControlOption(); - } - if (jobControlOption == null) { - continue; - } - List dependOnJobIds = getDependOnJobIds(new DependOnConfig( - jobControlOption.getDependOnType(), - jobControlOption.getDependOnId(), - jobControlOption.getDependOnName() - ), params); - if (dependOnJobIds.isEmpty()) { - continue; - } - if (c.getJobId() != null) { - cycleCheckJobMap.put(c.getJobId(), dependOnJobIds); - } - Map containerId2JobIds = new HashMap<>(); - for (String dependOnJobId : dependOnJobIds) { - Container dependOnJob = allJobId2JobMap.get(dependOnJobId); - if (dependOnJob == null) { - continue; - } - containerId2JobIds.put(dependOnJob.getId(), dependOnJobId); - } - if (!containerId2JobIds.isEmpty()) { - jobControlOption.setDependOnContainerId2JobIds(containerId2JobIds); - } - } - - Map visited = new HashMap<>(); - for (String jobId : cycleCheckJobMap.keySet()) { - dsf(jobId, cycleCheckJobMap, visited, stage, allJobId2JobMap); - } - } - - public static boolean enableDependOn(Container container) { - JobControlOption jobControlOption = null; - if (container instanceof VMBuildContainer) { - jobControlOption = ((VMBuildContainer) container).getJobControlOption(); - } else if (container instanceof NormalContainer) { - jobControlOption = ((NormalContainer) container).getJobControlOption(); - } - if (jobControlOption == null) { - return false; - } - return switch (jobControlOption.getDependOnType()) { - case ID -> jobControlOption.getDependOnId() != null && !jobControlOption.getDependOnId().isEmpty(); - case NAME -> jobControlOption.getDependOnName() != null && !jobControlOption.getDependOnName().isEmpty(); - default -> false; - }; - } - - private static List getDependOnJobIds(DependOnConfig dependOnConfig, Map params) { - return switch (dependOnConfig.getDependOnType()) { - case ID -> dependOnConfig.getDependOnId() != null ? dependOnConfig.getDependOnId() : Collections.emptyList(); - case NAME -> { - if (dependOnConfig.getDependOnName() == null || dependOnConfig.getDependOnName().isEmpty()) { - yield Collections.emptyList(); - } else { - String[] dependONames = dependOnConfig.getDependOnName().split(REGEX); - List result = new ArrayList<>(); - for (String name : dependONames) { - result.add(EnvUtils.parseEnv(name, params)); - } - yield result; - } - } - default -> Collections.emptyList(); - }; - } - - private static void dsf(String jobId, Map> dependOnMap, Map visited, Stage stage, Map allJobId2JobMap) { - if (visited.getOrDefault(jobId, 0) == 1) { - String jobName = getContainerName(stage, allJobId2JobMap.get(jobId), jobId); - String dependJobName = getContainerName(stage, allJobId2JobMap.get(dependOnJobId), dependOnJobId); - throw new ErrorCodeException( - ProcessMessageCode.ERROR_PIPELINE_DEPENDON_CYCLE, - new String[]{jobName, dependJobName} - ); - } - if (visited.getOrDefault(jobId, 0) == 2) { - return; - } - - visited.put(jobId, 1); - List dependOnJobIds = dependOnMap.getOrDefault(jobId, Collections.emptyList()); - for (String dependOnJobId : dependOnJobIds) { - dsf(dependOnJobId, dependOnMap, visited, stage, allJobId2JobMap); - } - visited.put(jobId, 2); - } - - private static String getContainerName(Stage stage, Container container, String jobId) { - if (container == null) { - return jobId; - } - String namePrefix = stage.getName() != null ? stage.getName().replaceFirst("stage-", "") : ""; - return namePrefix + "-" + container.getId(); - } -} diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/resources/application.properties b/modules/ci-process/pipeline-ci-process-api/src/main/resources/application.properties deleted file mode 100644 index 98a782a..0000000 --- a/modules/ci-process/pipeline-ci-process-api/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=pipeline-ci-process-api diff --git a/modules/ci-process/pipeline-ci-process-api/src/test/java/cd/casic/ci/process/api/PipelineCiProcessApiApplicationTests.java b/modules/ci-process/pipeline-ci-process-api/src/test/java/cd/casic/ci/process/api/PipelineCiProcessApiApplicationTests.java deleted file mode 100644 index 7a00b4e..0000000 --- a/modules/ci-process/pipeline-ci-process-api/src/test/java/cd/casic/ci/process/api/PipelineCiProcessApiApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package cd.casic.ci.process.api; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class PipelineCiProcessApiApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/modules/ci-process/pom.xml b/modules/ci-process/pom.xml deleted file mode 100644 index 7e98dad..0000000 --- a/modules/ci-process/pom.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - 4.0.0 - - cd.casic.boot - modules - ${revision} - ../pom.xml - - - cd.casic.ci - ci-process - pom - ${revision} - - - pipeline-ci-process-api - - - - - cd.casic.ci - ci-commons - - - - cd.casic.ci - ci-event - - - - cd.casic.ci - ci-log - - - - cd.casic.ci - ci-project - - - - cd.casic.ci - ci-quality - - - - cd.casic.ci - ci-scm-repository - - - - cd.casic.ci - ci-ticket - - - - cd.casic.boot - spring-boot-starter-redis - - - - cd.casic.boot - spring-boot-starter-web - - - - cd.casic.boot - spring-boot-starter-monitor - - - - - \ No newline at end of file diff --git a/modules/module-ci-common-pipeline/pom.xml b/modules/module-ci-common-pipeline/pom.xml new file mode 100644 index 0000000..bee7d1b --- /dev/null +++ b/modules/module-ci-common-pipeline/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + cd.casic.boot + modules + ${revision} + + + module-ci-common-pipeline + + ${project.artifactId} + jar + + + + cd.casic.boot + module-ci-common + + + + \ No newline at end of file diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/CommonPipelineAutoConfiguration.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/CommonPipelineAutoConfiguration.java similarity index 90% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/CommonPipelineAutoConfiguration.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/CommonPipelineAutoConfiguration.java index 75f6e72..6f81731 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/CommonPipelineAutoConfiguration.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/CommonPipelineAutoConfiguration.java @@ -1,5 +1,7 @@ package cd.casic.ci.common.pipeline; +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureOrder; import org.springframework.context.annotation.Configuration; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoFetcher.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoFetcher.java similarity index 83% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoFetcher.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoFetcher.java index af1297a..8636ea3 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoFetcher.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoFetcher.java @@ -1,5 +1,9 @@ package cd.casic.ci.common.pipeline; +import cd.casic.ci.common.pipeline.matrix.DispatchInfo; + +import java.util.Map; + /** * @Author:mianbin * @Package:cd.casic.ci.common.pipeline diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoRegisterLoader.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoRegisterLoader.java similarity index 94% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoRegisterLoader.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoRegisterLoader.java index 951436b..ded2a32 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoRegisterLoader.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubInfoRegisterLoader.java @@ -1,9 +1,9 @@ package cd.casic.ci.common.pipeline; +import cd.casic.ci.common.pipeline.matrix.DispatchInfo; import com.fasterxml.jackson.databind.jsontype.NamedType; import com.fasterxml.jackson.databind.module.SimpleModule; import lombok.extern.slf4j.Slf4j; -import org.slf4j.LoggerFactory; import java.util.Map; import java.util.ServiceLoader; @@ -36,7 +36,5 @@ public class DispatchSubInfoRegisterLoader { log.info("[REGISTER_DISPATCH]|{} for {}", entry.getValue(), entry.getKey()); } } - - JsonUtil.registerModule(infoSubModule); } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeFetcher.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeFetcher.java similarity index 83% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeFetcher.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeFetcher.java index d652e2c..0c9e662 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeFetcher.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeFetcher.java @@ -1,5 +1,9 @@ package cd.casic.ci.common.pipeline; +import cd.casic.ci.common.pipeline.type.DispatchType; + +import java.util.Map; + /** * @Author:mianbin * @Package:cd.casic.ci.common.pipeline diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeRegisterLoader.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeRegisterLoader.java similarity index 94% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeRegisterLoader.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeRegisterLoader.java index 08ebdaa..a42ff0d 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeRegisterLoader.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/DispatchSubTypeRegisterLoader.java @@ -1,9 +1,9 @@ package cd.casic.ci.common.pipeline; +import cd.casic.ci.common.pipeline.type.DispatchType; import com.fasterxml.jackson.databind.jsontype.NamedType; import com.fasterxml.jackson.databind.module.SimpleModule; import lombok.extern.slf4j.Slf4j; -import org.slf4j.LoggerFactory; import java.util.Map; import java.util.ServiceLoader; @@ -36,7 +36,5 @@ public class DispatchSubTypeRegisterLoader { log.info("[REGISTER_DISPATCH]|{} for {}", entry.getValue(), entry.getKey()); } } - - JsonUtil.registerModule(typeSubModule); } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeFetcher.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeFetcher.java similarity index 83% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeFetcher.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeFetcher.java index b6e93d6..42f413e 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeFetcher.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeFetcher.java @@ -1,5 +1,9 @@ package cd.casic.ci.common.pipeline; +import cd.casic.ci.common.pipeline.pojo.element.Element; + +import java.util.Map; + /** * @Author:mianbin * @Package:cd.casic.ci.common.pipeline diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeRegisterLoader.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeRegisterLoader.java similarity index 89% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeRegisterLoader.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeRegisterLoader.java index c3afc08..ec920c6 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeRegisterLoader.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ElementSubTypeRegisterLoader.java @@ -1,10 +1,10 @@ package cd.casic.ci.common.pipeline; +import cd.casic.ci.common.pipeline.pojo.element.Element; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.NamedType; import com.fasterxml.jackson.databind.module.SimpleModule; import lombok.extern.slf4j.Slf4j; -import org.slf4j.LoggerFactory; import java.util.Map; import java.util.ServiceLoader; @@ -41,10 +41,6 @@ public class ElementSubTypeRegisterLoader { log.info("[REGISTER_MODEL_ELEMENT]|{} for {}", entry.getValue(), entry.getKey()); } } - JsonUtil.registerModule(elementSubModule); - if (objectMapper != null) { - objectMapper.registerModule(elementSubModule); - } } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/EnvReplacementParser.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/EnvReplacementParser.java similarity index 61% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/EnvReplacementParser.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/EnvReplacementParser.java index 1209e6c..fff9b70 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/EnvReplacementParser.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/EnvReplacementParser.java @@ -1,6 +1,14 @@ package cd.casic.ci.common.pipeline; -import org.slf4j.LoggerFactory; +import cd.casic.ci.common.functions.ExpressionOutput; +import cd.casic.ci.common.functions.IFunctionInfo; +import cd.casic.ci.common.pojo.NamedValueInfo; +import cd.casic.ci.common.pipeline.dialect.IPipelineDialect; +import cd.casic.ci.common.pipeline.utils.ObjectReplaceEnvVarUtil; +import cn.hutool.core.lang.Pair; +import cn.hutool.json.JSONUtil; +import com.networknt.schema.ExecutionContext; +import lombok.extern.slf4j.Slf4j; import java.util.List; import java.util.Map; @@ -15,8 +23,8 @@ import java.util.regex.Pattern; * @Filename:EnvReplacementParser * @description:Todo */ +@Slf4j public class EnvReplacementParser { - private static final org.slf4j.Logger logger = LoggerFactory.getLogger(EnvReplacementParser.class); private static final Pattern expressionPattern = Pattern.compile("\\$[{]{2}([^$^{}]+)[}]{2}"); public static String parse(Object value, Map contextMap, Boolean onlyExpression, @@ -36,19 +44,22 @@ public class EnvReplacementParser { public static String parse(Object value, Boolean onlyExpression, ExprReplacementOptions options) { if (value == null) return ""; if (onlyExpression == null || !onlyExpression) { - return JsonUtil.toJson(ObjectReplaceEnvVarUtil.replaceEnvVar(value, options.contextMap), false); + return JSONUtil.toJsonStr(ObjectReplaceEnvVarUtil.replaceEnvVar(value, options.getContextMap())); } else { - return JsonUtil.toJson(ExprReplacementUtil.replaceEnvVar(value, options), false); + //return JsonUtil.toJson(ExprReplacementUtil.replaceEnvVar(value, options), false); + return null; } } - public static Pair> getCustomExecutionContextByMap(Map variables, - List extendNamedValueMap) { - return ExprReplacementUtil.getCustomExecutionContextByMap(variables, extendNamedValueMap); - } +// public static Pair> getCustomExecutionContextByMap(Map variables, +// List extendNamedValueMap) { +// return ExprReplacementUtil.getCustomExecutionContextByMap(variables, extendNamedValueMap); +// } public static boolean containsExpressions(String value) { - if (value == null) return false; + if (value == null) { + return false; + } return expressionPattern.matcher(value).find(); } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ExprReplacementOptions.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ExprReplacementOptions.java similarity index 58% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ExprReplacementOptions.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ExprReplacementOptions.java index 9b9feaa..51042b3 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ExprReplacementOptions.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ExprReplacementOptions.java @@ -1,6 +1,12 @@ package cd.casic.ci.common.pipeline; +import cd.casic.ci.common.functions.ExpressionOutput; +import cd.casic.ci.common.functions.IFunctionInfo; +import cd.casic.ci.common.pojo.NamedValueInfo; +import cn.hutool.core.lang.Pair; +import com.networknt.schema.ExecutionContext; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Data; import java.util.List; @@ -16,6 +22,7 @@ import java.util.Map; * @description:Todo */ @Data +@AllArgsConstructor @Schema(title = "表达式替换参数") public class ExprReplacementOptions { @@ -31,4 +38,11 @@ public class ExprReplacementOptions { private Iterable functions; private ExpressionOutput output; + + public ExprReplacementOptions(Map contextMap, Pair> contextPair, Iterable functions, ExpressionOutput output) { + this.contextMap = contextMap; + this.contextPair = contextPair; + this.functions = functions; + this.output = output; + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/IModelTemplate.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/IModelTemplate.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/IModelTemplate.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/IModelTemplate.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/Model.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/Model.java similarity index 86% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/Model.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/Model.java index 449be08..da6d10d 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/Model.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/Model.java @@ -1,5 +1,9 @@ package cd.casic.ci.common.pipeline; +import cd.casic.ci.common.pipeline.container.Stage; +import cd.casic.ci.common.pipeline.pojo.event.PipelineCallbackEvent; +import cd.casic.ci.common.pipeline.pojo.time.BuildRecordTimeCost; +import cd.casic.ci.common.pipeline.pojo.transfer.Resources; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -28,7 +32,8 @@ public class Model implements IModelTemplate { private List stages; @Schema(title = "标签", required = false) - @Deprecated("以PipelineGroupService和流水线设置版本中为准") + @Deprecated + //"以PipelineGroupService和流水线设置版本中为准" private List labels; @Schema(title = "是否从模板中实例化出来的", required = false) diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ModelUpdate.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ModelUpdate.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ModelUpdate.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/ModelUpdate.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/NameAndValue.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/NameAndValue.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/NameAndValue.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/NameAndValue.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModel.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModel.java similarity index 96% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModel.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModel.java index 4c946d3..f700adf 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModel.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModel.java @@ -1,6 +1,7 @@ package cd.casic.ci.common.pipeline; import cd.casic.ci.common.pipeline.pojo.PipelineModelAndSetting; +import cd.casic.ci.common.pipeline.pojo.transfer.PreviewResponse; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModelRequest.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModelRequest.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModelRequest.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/PipelineVersionWithModelRequest.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/AgentReuseMutex.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/AgentReuseMutex.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/AgentReuseMutex.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/AgentReuseMutex.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Container.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Container.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Container.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Container.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/MutexGroup.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/MutexGroup.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/MutexGroup.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/MutexGroup.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/NormalContainer.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/NormalContainer.java similarity index 83% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/NormalContainer.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/NormalContainer.java index 0fcfed5..03409f0 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/NormalContainer.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/NormalContainer.java @@ -15,7 +15,7 @@ import java.util.Map; @EqualsAndHashCode(callSuper = false) @Schema(title = "流水线模型-普通任务容器") public class NormalContainer extends Container { - public static final String CLASS_TYPE = "normal"; + public static final String classType = "normal"; private Boolean enableSkip = false; @@ -34,7 +34,7 @@ public class NormalContainer extends Container { @Override public String getClassType() { - return CLASS_TYPE; + return classType; } @Override @@ -79,7 +79,7 @@ public class NormalContainer extends Container { @Override public void setContainerEnable(boolean enable) { - jobControlOption = jobControlOption != null ? jobControlOption.copy(enable) : new JobControlOption(enable); + jobControlOption = jobControlOption != null ? jobControlOption.setEnable(enable) : new JobControlOption().setEnable(enable); } @Override @@ -92,4 +92,34 @@ public class NormalContainer extends Container { } super.transformCompatibility(); } + + @Override + public String getTemplate() { + return null; + } + + @Override + public String getRef() { + return null; + } + + @Override + public Map getVariables() { + return null; + } + + @Override + public void setTemplate(String template) { + + } + + @Override + public void setRef(String ref) { + + } + + @Override + public void setVariables(Map variables) { + + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Stage.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Stage.java similarity index 93% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Stage.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Stage.java index dbaeb8b..aa32481 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Stage.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/Stage.java @@ -105,6 +105,10 @@ public class Stage implements IModelTemplate { return stageControlOption != null ? stageControlOption.getEnable() : true; } + public boolean isFinally() { + return finallyStage != null && finallyStage; + } + @Override public String getTemplate() { return null; @@ -119,4 +123,19 @@ public class Stage implements IModelTemplate { public Map getVariables() { return null; } + + @Override + public void setTemplate(String template) { + + } + + @Override + public void setRef(String ref) { + + } + + @Override + public void setVariables(Map variables) { + + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/TriggerContainer.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/TriggerContainer.java similarity index 95% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/TriggerContainer.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/TriggerContainer.java index 1381280..ae84204 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/TriggerContainer.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/TriggerContainer.java @@ -124,4 +124,19 @@ public class TriggerContainer extends Container { public Map getVariables() { return null; } + + @Override + public void setTemplate(String template) { + + } + + @Override + public void setRef(String ref) { + + } + + @Override + public void setVariables(Map variables) { + + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/VMBuildContainer.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/VMBuildContainer.java similarity index 97% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/VMBuildContainer.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/VMBuildContainer.java index 95670b6..b4ebc7f 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/VMBuildContainer.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/container/VMBuildContainer.java @@ -188,4 +188,19 @@ public class VMBuildContainer extends Container { public Map getVariables() { return null; } + + @Override + public void setTemplate(String template) { + + } + + @Override + public void setRef(String ref) { + + } + + @Override + public void setVariables(Map variables) { + + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/ClassicPipelineDialect.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/ClassicPipelineDialect.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/ClassicPipelineDialect.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/ClassicPipelineDialect.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/ConstrainedPipelineDialect.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/ConstrainedPipelineDialect.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/ConstrainedPipelineDialect.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/ConstrainedPipelineDialect.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/IPipelineDialect.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/IPipelineDialect.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/IPipelineDialect.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/IPipelineDialect.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/PipelineDialectType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/PipelineDialectType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/PipelineDialectType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/PipelineDialectType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/PipelineDialectUtil.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/PipelineDialectUtil.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/PipelineDialectUtil.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/dialect/PipelineDialectUtil.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BranchVersionAction.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BranchVersionAction.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BranchVersionAction.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BranchVersionAction.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildFormPropertyType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildFormPropertyType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildFormPropertyType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildFormPropertyType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildPropertyType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildPropertyType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildPropertyType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildPropertyType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildRecordTimeStamp.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildRecordTimeStamp.java similarity index 90% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildRecordTimeStamp.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildRecordTimeStamp.java index d7691d1..d8717eb 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildRecordTimeStamp.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildRecordTimeStamp.java @@ -1,9 +1,12 @@ package cd.casic.ci.common.pipeline.enums; +import cd.casic.ci.common.pipeline.pojo.time.BuildRecordTimeLine; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.common.pipeline.enums diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildScriptType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildScriptType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildScriptType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildScriptType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildStatus.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildStatus.java similarity index 94% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildStatus.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildStatus.java index 8f4cfe5..22a39dd 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildStatus.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildStatus.java @@ -100,11 +100,6 @@ public enum BuildStatus { return this == QUEUE_TIMEOUT || this == EXEC_TIMEOUT || this == HEARTBEAT_TIMEOUT; } - public String getI18n(String language) { - // Assuming MessageUtil is available in Java - return MessageUtil.getMessageByLocale("buildStatus." + statusName, language); - } - public static BuildStatus parse(String statusName) { try { return statusName == null ? UNKNOWN : BuildStatus.valueOf(statusName); diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildTaskStatus.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildTaskStatus.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildTaskStatus.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildTaskStatus.java diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CallBackEvent.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CallBackEvent.java new file mode 100644 index 0000000..e54bbb4 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CallBackEvent.java @@ -0,0 +1,33 @@ +package cd.casic.ci.common.pipeline.enums; + +/** + * @author by mianbin + * @Classname CallBackEvent + * @Description TODO + * @Date 2025/4/2 9:48 + */ // 定义回调事件的枚举类 +public enum CallBackEvent { + DELETE_PIPELINE, /*流水线删除*/ + CREATE_PIPELINE, /*流水线创建*/ + UPDATE_PIPELINE, /*流水线更新,包括model和setting。*/ + STREAM_ENABLED, /*stream ci 开启/关闭*/ + RESTORE_PIPELINE, /*流水线恢复*/ + + BUILD_QUEUE, /*构建排队,包含并发超限时排队、并发组排队。*/ + BUILD_START, /*构建开始,不包含并发超限时排队、并发组排队。*/ + BUILD_END, /*构建结束*/ + BUILD_STAGE_START, /*stage开始*/ + BUILD_STAGE_END, /*stage结束*/ + BUILD_JOB_QUEUE, /*job排队,包含互斥组排队、构建机复用互斥排队、最大job并发排队。*/ + BUILD_JOB_START, /*job开始,不包含BUILD_JOB_QUEUE。如果job SKIP或没有可执行的插件,就不会有该事件。*/ + BUILD_JOB_END, /*job结束,job SKIP或没有可执行的插件时会有该事件。*/ + BUILD_AGENT_START, /*构建机启动,现在仅包含第三方构建机*/ + BUILD_TASK_START, /*插件开始*/ + BUILD_TASK_END, /*插件结束*/ + BUILD_TASK_PAUSE, /*插件前置暂停*/ + + PROJECT_CREATE, /*项目创建*/ + PROJECT_UPDATE, /*项目更新*/ + PROJECT_ENABLE, /*项目启用*/ + PROJECT_DISABLE /*项目禁用*/ +} diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CertType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CertType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CertType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CertType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ChannelCode.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ChannelCode.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ChannelCode.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ChannelCode.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CharsetType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CharsetType.java similarity index 97% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CharsetType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CharsetType.java index 086b63d..77fcdb1 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CharsetType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CharsetType.java @@ -16,6 +16,7 @@ import lombok.Getter; @AllArgsConstructor public enum CharsetType { DEFAULT, + GB2312, UTF_8, GBK; } \ No newline at end of file diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CodePullStrategy.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CodePullStrategy.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CodePullStrategy.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CodePullStrategy.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CodeTargetAction.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CodeTargetAction.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CodeTargetAction.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CodeTargetAction.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ContainerMutexStatus.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ContainerMutexStatus.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ContainerMutexStatus.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ContainerMutexStatus.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DependOnType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DependOnType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DependOnType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DependOnType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DeployStatus.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DeployStatus.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DeployStatus.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DeployStatus.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DockerVersion.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DockerVersion.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DockerVersion.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DockerVersion.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnvControlTaskType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnvControlTaskType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnvControlTaskType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnvControlTaskType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/GitPullModeType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/GitPullModeType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/GitPullModeType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/GitPullModeType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/JobRunCondition.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/JobRunCondition.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/JobRunCondition.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/JobRunCondition.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ManualReviewAction.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ManualReviewAction.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ManualReviewAction.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ManualReviewAction.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/PipelineInstanceTypeEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/PipelineInstanceTypeEnum.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/PipelineInstanceTypeEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/PipelineInstanceTypeEnum.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/PipelineStorageType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/PipelineStorageType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/PipelineStorageType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/PipelineStorageType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/Platform.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/Platform.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/Platform.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/Platform.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ProjectPipelineCallbackStatus.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ProjectPipelineCallbackStatus.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ProjectPipelineCallbackStatus.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ProjectPipelineCallbackStatus.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SVNVersion.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SVNVersion.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SVNVersion.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SVNVersion.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SourceType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SourceType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SourceType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SourceType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StageRunCondition.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StageRunCondition.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StageRunCondition.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StageRunCondition.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StartType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StartType.java similarity index 89% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StartType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StartType.java index 2a8dd98..cd1ccf4 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StartType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/StartType.java @@ -2,10 +2,15 @@ package cd.casic.ci.common.pipeline.enums; import cd.casic.ci.common.pipeline.pojo.element.trigger.*; import lombok.AllArgsConstructor; +import lombok.Data; import lombok.Getter; import org.slf4j.LoggerFactory; +import java.text.MessageFormat; import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @Author:mianbin @@ -48,7 +53,8 @@ public enum StartType { case "PIPELINE" -> PIPELINE.name(); default -> ""; }; - return name.isBlank() ? name : MessageUtil.getMessageByLocale("START_TYPE_" + name, language, params); + + return name.isBlank() ? name : MessageFormat.format("START_TYPE_" + name, language, params); } public static StartType toStartType(String type) { @@ -86,4 +92,11 @@ public enum StartType { default -> RemoteTriggerElement.classType; }; } + + @Data + @AllArgsConstructor + static class IdValue { + private String id; + private String value; + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SvnDepth.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SvnDepth.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SvnDepth.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SvnDepth.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TclsType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TclsType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TclsType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TclsType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VMBaseOS.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VMBaseOS.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VMBaseOS.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VMBaseOS.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VMBuildResult.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VMBuildResult.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VMBuildResult.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VMBuildResult.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VersionStatus.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VersionStatus.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VersionStatus.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/VersionStatus.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/extend/ModelCheckPlugin.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/extend/ModelCheckPlugin.java similarity index 87% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/extend/ModelCheckPlugin.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/extend/ModelCheckPlugin.java index 80310cb..d2e879f 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/extend/ModelCheckPlugin.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/extend/ModelCheckPlugin.java @@ -6,6 +6,7 @@ import cd.casic.ci.common.pipeline.dialect.IPipelineDialect; import cd.casic.ci.common.pipeline.pojo.element.Element; import cd.casic.ci.common.pipeline.pojo.element.atom.BeforeDeleteParam; import cd.casic.ci.common.pipeline.pojo.setting.PipelineSetting; +import cd.casic.framework.commons.exception.ServerException; import java.util.Map; @@ -26,7 +27,7 @@ public interface ModelCheckPlugin { * @param userId 操作人 * @param oauthUser 当前流水线权限代持人 * @param pipelineDialect 流水线方言,只有新增/编辑流水线或模版时才需要传入 - * @throws ErrorCodeException 检查失败或异常 + * @throws ServerException 检查失败或异常 */ int checkModelIntegrity( Model model, @@ -36,14 +37,14 @@ public interface ModelCheckPlugin { String oauthUser, IPipelineDialect pipelineDialect, String pipelineId - ) throws ErrorCodeException; + ) throws ServerException; /** * 检查[setting]配置的完整性 * - * @throws ErrorCodeException 检查失败或异常 + * @throws ServerException 检查失败或异常 */ - void checkSettingIntegrity(PipelineSetting setting, String projectId) throws ErrorCodeException; + void checkSettingIntegrity(PipelineSetting setting, String projectId) throws ServerException; /** * 清理Model--不删除里面的Element内的逻辑 @@ -67,17 +68,17 @@ public interface ModelCheckPlugin { * 检查[container]下的[element]插件的超时配置是否合法。 * 如果使用了变量,则从变量表[contextMap]进行替换,如果值不符合,则抛出异常[ErrorCodeException] */ - void checkElementTimeoutVar(Container container, Element element, Map contextMap) throws ErrorCodeException; + void checkElementTimeoutVar(Container container, Element element, Map contextMap) throws ServerException; /** * 检查[container]下互斥组配置是否合法, * 如果使用了变量,则从变量表[contextMap]进行替换,如果值不符合,则抛出异常[ErrorCodeException] */ - void checkMutexGroup(Container container, Map contextMap) throws ErrorCodeException; + void checkMutexGroup(Container container, Map contextMap) throws ServerException; /** * 检查是否是[finallyStage]Stage的Job[container]下[JobControlOption]配置是否合法。 * 如果使用了变量,则从变量表[contextMap]进行替换,如果值不符合,则抛出异常[ErrorCodeException] */ - void checkJobCondition(Container container, boolean finallyStage, Map contextMap) throws ErrorCodeException; + void checkJobCondition(Container container, boolean finallyStage, Map contextMap) throws ServerException; } diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/DispatchInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/DispatchInfo.java new file mode 100644 index 0000000..0c11be9 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/DispatchInfo.java @@ -0,0 +1,28 @@ +package cd.casic.ci.common.pipeline.matrix; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; + + +/** + * @author by mianbin + * @Classname DispatchInfo + * @Description TODO + * @Date 2025/3/29 15:35 + */ +@Data +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.PROPERTY, + property = "dispatchInfo", + visible = false +) +@JsonSubTypes.Type(value = SampleDispatchInfo.class, name = "SAMPLE") +public abstract class DispatchInfo { + protected String name; + + public DispatchInfo(String name) { + this.name = name; + } +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/MatrixConfig.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/MatrixConfig.java new file mode 100644 index 0000000..0cf3a26 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/MatrixConfig.java @@ -0,0 +1,155 @@ +package cd.casic.ci.common.pipeline.matrix; +import cd.casic.ci.common.utils.YamlUtil; +import cd.casic.ci.common.pipeline.utils.MatrixContextUtils; +import cn.hutool.core.lang.Pair; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.*; + + +/** + * @author by mianbin + * @Classname MatrixConfig + * @Description TODO + * @Date 2025/3/29 15:46 + */ + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "矩阵的分裂计算配置") +public class MatrixConfig { + @Schema(title = "分裂策略", required = true) + private Map> strategy; + @Schema(title = "额外的参数组合", required = true) + private List> include; + @Schema(title = "排除的参数组合", required = false) + private List> exclude; + + public static final String MATRIX_CONTEXT_KEY_PREFIX = "matrix."; + + /** + * 根据[strategy], [include], [exclude]矩阵参数计算最终参数组合列表 + */ + public List> getAllCombinations() { + List> combinations = new ArrayList<>(); + Pair, List>> result = calculateContextMatrix(strategy); + List keyList = result.getKey(); + List> strategyCase = result.getValue(); + combinations.addAll(strategyCase); + + // 将额外添加的参数在匹配的组合内进行追加 + List> caseToAdd = new ArrayList<>(); + if (include != null) { + for (Map includeCase : include) { + // 如果strategy为空,直接添加include + if (strategyCase.isEmpty()) { + caseToAdd.add(new HashMap<>(includeCase)); + } + // 筛选出所有与矩阵匹配的key + List matchKey = new ArrayList<>(); + for (String key : includeCase.keySet()) { + if (keyList.contains(key)) { + matchKey.add(key); + } + } + // 如果没有匹配的key则直接丢弃 + if (matchKey.isEmpty()) { + continue; + } + boolean expanded = false; + List> caseToAddTmp = new ArrayList<>(); + for (Map var : combinations) { + if (keyValueMatch(var, includeCase, matchKey)) { + // 将全匹配的额外参数直接追加到匹配的组合 + var.putAll(includeCase); + expanded = true; + } else { + // 不能全匹配的额外参数作为一个新组合加入 + caseToAddTmp.add(new HashMap<>(includeCase)); + } + } + if (!expanded) { + caseToAdd.addAll(caseToAddTmp); + } + } + } + combinations.addAll(caseToAdd); + // 计算strategy和include后,再进行组合排除 + if (exclude != null) { + combinations.removeAll(exclude); + } + + List> finalResult = new ArrayList<>(); + for (Map contextCase : combinations) { + // 临时方案:支持解析value中的一级对象访问 + Map resultCase = new HashMap<>(); + for (Map.Entry entry : contextCase.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + resultCase.put(MATRIX_CONTEXT_KEY_PREFIX + key, value); + try { + Map map = YamlUtil.to(value, new com.fasterxml.jackson.core.type.TypeReference>() { + }); + if (map != null) { + for (Map.Entry pairEntry : map.entrySet()) { + String pair = pairEntry.getKey(); + String[] split = pair.split("="); + if (split.length == 2) { + resultCase.put(MATRIX_CONTEXT_KEY_PREFIX + key + "." + split[0], split[1]); + } + } + } + } catch (Exception e) { + // 忽略解析异常 + } + } + finalResult.add(resultCase); + } + // 去重 + List> distinctResult = new ArrayList<>(); + for (Map map : finalResult) { + if (!distinctResult.contains(map)) { + distinctResult.add(map); + } + } + return distinctResult; + } + + /** + * 根据[strategyMap]矩阵生成所有参数组合列表 + */ + private Pair, List>> calculateContextMatrix(Map> strategyMap) { + if (strategyMap == null || strategyMap.isEmpty()) { + return new Pair<>(Collections.emptyList(), Collections.emptyList()); + } + List> caseList = new ArrayList<>(); + List keyList = new ArrayList<>(strategyMap.keySet()); + ArrayList> valueLists = new ArrayList<>(strategyMap.values()); + MatrixContextUtils.loopCartesianProduct(valueLists).forEach(valueList -> { + Map var = new HashMap<>(); + for (int i = 0; i < keyList.size(); i++) { + var.put(keyList.get(i), valueList.get(i).toString()); + } + caseList.add(var); + }); + return new Pair<>(keyList, caseList); + } + + /** + * 对比[case]和[includeCase]中所有匹配key[matchKey]的值是否相同 + * 出现任意不同的情况则不是全匹配 + */ + private boolean keyValueMatch(Map var, Map includeCase, List matchKey) { + for (String key : matchKey) { + if (!Objects.equals(var.get(key), includeCase.get(key))) { + return false; + } + } + return true; + } +} \ No newline at end of file diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/SampleDispatchInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/SampleDispatchInfo.java new file mode 100644 index 0000000..9f6cb37 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/matrix/SampleDispatchInfo.java @@ -0,0 +1,30 @@ +package cd.casic.ci.common.pipeline.matrix; + +import cd.casic.ci.common.pipeline.enums.VMBaseOS; +import cd.casic.ci.common.pipeline.type.DispatchType; +import lombok.EqualsAndHashCode; +import lombok.Getter; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname SampleDispatchInfo + * @Description TODO + * @Date 2025/3/29 15:44 + */ + +@Getter +@EqualsAndHashCode(callSuper = true) +public class SampleDispatchInfo extends DispatchInfo { + private final DispatchType dispatchType; + private final VMBaseOS baseOS; + private final Map buildEnv; + + public SampleDispatchInfo(String name, DispatchType dispatchType, VMBaseOS baseOS, java.util.Map buildEnv) { + super(name); + this.dispatchType = dispatchType; + this.baseOS = baseOS; + this.buildEnv = buildEnv; + } +} \ No newline at end of file diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/JobControlOption.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/JobControlOption.java similarity index 66% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/JobControlOption.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/JobControlOption.java index bc8fcd0..2967c5b 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/JobControlOption.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/JobControlOption.java @@ -4,7 +4,10 @@ import cd.casic.ci.common.pipeline.NameAndValue; import cd.casic.ci.common.pipeline.enums.DependOnType; import cd.casic.ci.common.pipeline.enums.JobRunCondition; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import java.util.List; import java.util.Map; @@ -19,47 +22,45 @@ import java.util.Map; * @description:Todo */ @Data +@Accessors(chain = true) @Schema(title = "job流程控制模型") +@NoArgsConstructor +@AllArgsConstructor public class JobControlOption { @Schema(title = "是否启用Job", required = false) - private Boolean enable = true; // 是否启用Job - + private Boolean enable = true; @Schema(title = "Job准备环境的超时时间 分钟Minutes", required = false) - private Integer prepareTimeout; // Job准备环境的超时时间 分钟Minutes - + private Integer prepareTimeout; @Schema(title = "Job执行的超时时间 分钟Minutes", required = false) - private Integer timeout = 900; // Job执行的超时时间 分钟Minutes - + private Integer timeout = 900; @Schema(title = "新的Job执行的超时时间,支持变量 分钟Minutes,出错则取timeout的值", required = false) - private String timeoutVar; // Job执行的超时时间 分钟Minutes - + private String timeoutVar; @Schema(title = "运行条件", required = false) - private JobRunCondition runCondition = JobRunCondition.STAGE_RUNNING; // 运行条件 - + private JobRunCondition runCondition = JobRunCondition.STAGE_RUNNING; @Schema(title = "自定义变量", required = false) - private List customVariables = List.of(); // 自定义变量 - + private List customVariables = List.of(); @Schema(title = "自定义条件", required = false) - private String customCondition; // 自定义条件 - + private String customCondition; @Schema(title = "job依赖", required = false) - private DependOnType dependOnType; // job依赖 - + private DependOnType dependOnType; @Schema(title = "需要过滤不存在的job,定义为var类型", required = false) - private List dependOnId; // 需要过滤不存在的job,定义为var类型 - + private List dependOnId; @Schema(title = "job依赖名称", required = false) private String dependOnName; - @Schema(title = "containerId与jobId映射,depend on运行时使用的是containerId", required = false) - private Map dependOnContainerId2JobIds; // containerId与jobId映射,depend on运行时使用的是containerId - + private Map dependOnContainerId2JobIds; @Schema(title = "是否失败继续", required = false) - private Boolean continueWhenFailed = false; // 失败继续 - + private Boolean continueWhenFailed = false; @Schema(title = "第三方构建机集群-单节点并发限制") private Integer singleNodeConcurrency; - @Schema(title = "第三方构建机集群-所有节点并发限制") private Integer allNodeConcurrency; + + public JobControlOption(boolean enable, Integer maxRunningMinutes, String s, JobRunCondition jobRunCondition, List conditions) { + this.enable = enable; + this.prepareTimeout = maxRunningMinutes; + this.runCondition = jobRunCondition; + this.customVariables = conditions; + + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/MatrixControlOption.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/MatrixControlOption.java similarity index 93% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/MatrixControlOption.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/MatrixControlOption.java index 68ba10a..1f37f5e 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/MatrixControlOption.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/MatrixControlOption.java @@ -1,14 +1,12 @@ package cd.casic.ci.common.pipeline.option; +import cd.casic.ci.common.pipeline.matrix.DispatchInfo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; -import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Collectors; /** * @Author:mianbin @@ -24,7 +22,7 @@ import java.util.stream.Collectors; public class MatrixControlOption { private static final long serialVersionUID = 1L; - private static final Pattern MATRIX_JSON_KEY_PATTERN = Pattern.compile("^(fromJSON\\()([^(^)]+)[\\)]\$"); + private static final Pattern MATRIX_JSON_KEY_PATTERN = Pattern.compile("^(fromJSON\\()([^)]+)\\)$"); private static final Logger logger = LoggerFactory.getLogger(MatrixControlOption.class); private static final int MATRIX_CASE_MAX_COUNT = 256; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/StageControlOption.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/StageControlOption.java similarity index 80% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/StageControlOption.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/StageControlOption.java index 1d12ea9..966ced9 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/StageControlOption.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/option/StageControlOption.java @@ -2,6 +2,7 @@ package cd.casic.ci.common.pipeline.option; import cd.casic.ci.common.pipeline.NameAndValue; import cd.casic.ci.common.pipeline.enums.StageRunCondition; +import cd.casic.ci.common.pipeline.pojo.element.atom.ManualReviewParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -32,26 +33,32 @@ public class StageControlOption { private String customCondition; // 自定义条件 @Schema(title = "是否人工触发", required = false) - @Deprecated("被StagePauseCheck.manualTrigger代替") + @Deprecated + //"被StagePauseCheck.manualTrigger代替" private Boolean manualTrigger = false; @Schema(title = "可触发用户,支持引用变量", required = false) - @Deprecated("被StagePauseCheck.reviewGroups代替") + @Deprecated + //"被StagePauseCheck.reviewGroups代替" private List triggerUsers; // 可触发用户,支持引用变量 @Schema(title = "已通过审核", required = false) - @Deprecated("被StagePauseCheck.status代替") + @Deprecated + //"被StagePauseCheck.status代替" private Boolean triggered; // 已通过审核 @Schema(title = "等待审核的超时时间", required = false) - @Deprecated("被StagePauseCheck.timeout代替") + @Deprecated + //"被StagePauseCheck.timeout代替" private Integer timeout; // 等待审核的超时时间 @Schema(title = "审核变量", required = false) - @Deprecated("被StagePauseCheck.reviewParams代替") + @Deprecated + //"被StagePauseCheck.reviewParams代替" private List reviewParams; // 审核变量 @Schema(title = "审核说明", required = false) - @Deprecated("被StagePauseCheck.reviewDesc代替") + @Deprecated + //"被StagePauseCheck.reviewDesc代替" private String reviewDesc; // 审核说明 } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/AtomBaseInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/AtomBaseInfo.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/AtomBaseInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/AtomBaseInfo.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildContainerType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildContainerType.java similarity index 88% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildContainerType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildContainerType.java index 51d540f..df63e36 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildContainerType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildContainerType.java @@ -1,5 +1,6 @@ package cd.casic.ci.common.pipeline.pojo; +import cd.casic.ci.common.pipeline.type.BuildType; import cn.hutool.http.useragent.OS; import lombok.Data; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildEnvParameters.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildEnvParameters.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildEnvParameters.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildEnvParameters.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormProperty.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormProperty.java similarity index 94% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormProperty.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormProperty.java index b3790bc..6a4393d 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormProperty.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormProperty.java @@ -1,5 +1,8 @@ package cd.casic.ci.common.pipeline.pojo; +import cd.casic.ci.common.enums.ScmType; +import cd.casic.ci.common.pipeline.enums.BuildFormPropertyType; +import cd.casic.ci.common.pipeline.pojo.cascade.BuildCascadeProps; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormValue.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormValue.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormValue.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildFormValue.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildNo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildNo.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildNo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildNo.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildNoUpdateReq.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildNoUpdateReq.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildNoUpdateReq.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildNoUpdateReq.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameterGroup.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameterGroup.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameterGroup.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameterGroup.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameters.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameters.java similarity index 69% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameters.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameters.java index 9bc254c..d71480d 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameters.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildParameters.java @@ -1,6 +1,8 @@ package cd.casic.ci.common.pipeline.pojo; +import cd.casic.ci.common.pipeline.enums.BuildFormPropertyType; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Data; /** @@ -13,6 +15,7 @@ import lombok.Data; * @description:Todo */ @Data +@AllArgsConstructor @Schema(title = "构建模型-构建参数") public class BuildParameters { @Schema(title = "元素值ID-标识符", required = true) @@ -27,4 +30,12 @@ public class BuildParameters { private String desc; @Schema(title = "默认值", required = false) private Object defaultValue; + + public BuildParameters(String key, Object value, BuildFormPropertyType valueType, String desc, Object defaultValue) { + this.key = key; + this.value = value; + this.valueType = valueType; + this.desc = desc; + this.defaultValue = defaultValue; + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/DependOnConfig.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/DependOnConfig.java similarity index 80% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/DependOnConfig.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/DependOnConfig.java index 6e930ed..28d9dd7 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/DependOnConfig.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/DependOnConfig.java @@ -1,5 +1,7 @@ package cd.casic.ci.common.pipeline.pojo; +import cd.casic.ci.common.pipeline.enums.DependOnType; +import lombok.AllArgsConstructor; import lombok.Data; import java.util.List; @@ -15,6 +17,7 @@ import java.util.List; */ @Data +@AllArgsConstructor public class DependOnConfig { private DependOnType dependOnType; private List dependOnId; diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/IdValue.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/IdValue.java new file mode 100644 index 0000000..f8ec7ee --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/IdValue.java @@ -0,0 +1,17 @@ +package cd.casic.ci.common.pipeline.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname IdValue + * @Description TODO + * @Date 2025/4/1 20:39 + */ +@Data +@AllArgsConstructor +public class IdValue { + private String id; + private String value; +} diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/JobHeartbeatRequest.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/JobHeartbeatRequest.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/JobHeartbeatRequest.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/JobHeartbeatRequest.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/MatrixPipelineInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/MatrixPipelineInfo.java similarity index 54% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/MatrixPipelineInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/MatrixPipelineInfo.java index 3f3fbb3..0392c83 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/MatrixPipelineInfo.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/MatrixPipelineInfo.java @@ -3,9 +3,6 @@ package cd.casic.ci.common.pipeline.pojo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.util.Map; -import java.util.regex.Pattern; - /** * @Author:mianbin * @Package:cd.casic.ci.common.pipeline.pojo @@ -24,19 +21,19 @@ public class MatrixPipelineInfo { @Schema(title = "作为输入值时:分裂策略(String)/作为输出值时:校验结果", required = false) private String strategy; - public Map toMatrixConvert() { - return Map.of( - "include", !this.include.isNullOrBlank() ? parseYaml(this.include) : null, - "exclude", !this.exclude.isNullOrBlank() ? parseYaml(this.exclude) : null, - "strategy", !this.strategy.isNullOrBlank() ? parseYaml(this.strategy) : null - ); - } - - private Object parseYaml(String input) { - Pattern pattern = Pattern.compile("^(\\\$\\{\\{[ ]*fromJSON\\()([^(^)]+)(\\)[ ]*\\}\\})$"); - if (pattern.matcher(input).find()) { - return null; - } - return YamlUtil.to(input); - } +// public Map toMatrixConvert() { +// return Map.of( +// "include", !this.include.isNullOrBlank() ? parseYaml(this.include) : null, +// "exclude", !this.exclude.isNullOrBlank() ? parseYaml(this.exclude) : null, +// "strategy", !this.strategy.isNullOrBlank() ? parseYaml(this.strategy) : null +// ); +// } +// +// private Object parseYaml(String input) { +// Pattern pattern = Pattern.compile("^(\\\$\\{\\{[ ]*fromJSON\\()([^(^)]+)(\\)[ ]*\\}\\})$"); +// if (pattern.matcher(input).find()) { +// return null; +// } +// return YamlUtil.to(input); +// } } \ No newline at end of file diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineModelAndSetting.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineModelAndSetting.java similarity index 90% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineModelAndSetting.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineModelAndSetting.java index a0d5d67..c0b963a 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineModelAndSetting.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineModelAndSetting.java @@ -1,5 +1,6 @@ package cd.casic.ci.common.pipeline.pojo; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineSetting; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import lombok.Data; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StagePauseCheck.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StagePauseCheck.java similarity index 79% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StagePauseCheck.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StagePauseCheck.java index 2c43dd8..b38ba4e 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StagePauseCheck.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StagePauseCheck.java @@ -1,17 +1,17 @@ package cd.casic.ci.common.pipeline.pojo; -import cd.casic.ci.common.pipeline.EnvReplacementParser; import cd.casic.ci.common.pipeline.dialect.IPipelineDialect; import cd.casic.ci.common.pipeline.enums.BuildStatus; import cd.casic.ci.common.pipeline.enums.ManualReviewAction; import cd.casic.ci.common.pipeline.option.StageControlOption; import cd.casic.ci.common.pipeline.pojo.element.atom.ManualReviewParam; -import cn.hutool.captcha.generator.RandomGenerator; -import cn.hutool.core.lang.UUID; +import cd.casic.framework.commons.util.date.DateUtils; import cn.hutool.core.util.IdUtil; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.time.LocalDateTime; @@ -32,6 +32,8 @@ import java.util.stream.Collectors; @Data @Builder @Accessors(chain = true) +@AllArgsConstructor +@NoArgsConstructor @Schema(title = "stage准入准出配置模型") public class StagePauseCheck { @Schema(title = "是否人工触发", required = false) @@ -83,7 +85,7 @@ public class StagePauseCheck { if (group != null && group.getStatus() == null) { group.setStatus(action.name()); group.setOperator(userId); - group.setReviewTime(LocalDateTime.now().timestampmilli()); + group.setReviewTime(DateUtils.LocalDateTimeToMilli(LocalDateTime.now())); group.setSuggest(suggest); group.setParams(parseReviewParams(params)); if (groupToReview() == null) { @@ -114,7 +116,7 @@ public class StagePauseCheck { public void fixReviewGroups(boolean init) { reviewGroups.forEach(group -> { if (group.getId() == null || group.getId().isBlank()) { - group.setId(UUIDUtil.generate()); + group.setId(IdUtil.fastSimpleUUID()); } if (init) { group.setStatus(null); @@ -161,31 +163,31 @@ public class StagePauseCheck { * 进入审核流程前完成所有审核人变量替换 */ public void parseReviewVariables(Map variables, IPipelineDialect dialect) { - Map contextPair = EnvReplacementParser.getCustomExecutionContextByMap(variables); - reviewGroups.forEach(group -> { - if (group.getStatus() != null) { - return; - } - if (!group.getReviewers().isEmpty()) { - String reviewers = String.join(",", group.getReviewers()); - List realReviewers = EnvReplacementParser.parse(reviewers, variables, dialect.supportUseExpression(), contextPair) - .split(",") - .toList(); - group.setReviewers(realReviewers); - } - if (!group.getGroups().isEmpty()) { - String groups = String.join(",", group.getGroups()); - List realGroups = EnvReplacementParser.parse(groups, variables, dialect.supportUseExpression(), contextPair) - .split(",") - .toList(); - group.setGroups(realGroups); - } - }); - reviewDesc = EnvReplacementParser.parse(reviewDesc, variables, dialect.supportUseExpression(), contextPair); - notifyGroup = notifyGroup.stream() - .map(group -> EnvReplacementParser.parse(group, variables, dialect.supportUseExpression(), contextPair)) - .collect(Collectors.toList()); - reviewParams.forEach(param -> param.parseValueWithType(variables)); +// Map contextPair = EnvReplacementParser.getCustomExecutionContextByMap(variables); +// reviewGroups.forEach(group -> { +// if (group.getStatus() != null) { +// return; +// } +// if (!group.getReviewers().isEmpty()) { +// String reviewers = String.join(",", group.getReviewers()); +// List realReviewers = EnvReplacementParser.parse(reviewers, variables, dialect.supportUseExpression(), contextPair) +// .split(",") +// .toList(); +// group.setReviewers(realReviewers); +// } +// if (!group.getGroups().isEmpty()) { +// String groups = String.join(",", group.getGroups()); +// List realGroups = EnvReplacementParser.parse(groups, variables, dialect.supportUseExpression(), contextPair) +// .split(",") +// .toList(); +// group.setGroups(realGroups); +// } +// }); +// reviewDesc = EnvReplacementParser.parse(reviewDesc, variables, dialect.supportUseExpression(), contextPair); +// notifyGroup = notifyGroup.stream() +// .map(group -> EnvReplacementParser.parse(group, variables, dialect.supportUseExpression(), contextPair)) +// .collect(Collectors.toList()); +// reviewParams.forEach(param -> param.parseValueWithType(variables)); } /** @@ -203,7 +205,6 @@ public class StagePauseCheck { } public static StagePauseCheck convertControlOption(StageControlOption stageControlOption) { - return new StagePauseCheck() .setManualTrigger(stageControlOption.getManualTrigger()) .setStatus(stageControlOption.getTriggered() ? BuildStatus.REVIEW_PROCESSED.name() : null) diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewGroup.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewGroup.java similarity index 90% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewGroup.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewGroup.java index ca20915..9ed9abd 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewGroup.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewGroup.java @@ -1,7 +1,9 @@ package cd.casic.ci.common.pipeline.pojo; +import cd.casic.ci.common.pipeline.pojo.element.atom.ManualReviewParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import lombok.experimental.Accessors; import java.util.ArrayList; import java.util.List; @@ -16,6 +18,7 @@ import java.util.List; * @description:Todo */ @Data +@Accessors(chain = true) @Schema(title = "Stage审核组信息") public class StageReviewGroup { @Schema(title = "审核组ID(后台生成)", required = false) diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewRequest.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewRequest.java similarity index 87% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewRequest.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewRequest.java index 3042fc6..4d29e69 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewRequest.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StageReviewRequest.java @@ -1,8 +1,11 @@ package cd.casic.ci.common.pipeline.pojo; +import cd.casic.ci.common.pipeline.pojo.element.atom.ManualReviewParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.common.pipeline.pojo diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StoreInitPipelineReq.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StoreInitPipelineReq.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StoreInitPipelineReq.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StoreInitPipelineReq.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StoreInitPipelineResp.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StoreInitPipelineResp.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StoreInitPipelineResp.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/StoreInitPipelineResp.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/TemplateInstanceCreateRequest.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/TemplateInstanceCreateRequest.java similarity index 95% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/TemplateInstanceCreateRequest.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/TemplateInstanceCreateRequest.java index 2614c27..cad6236 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/TemplateInstanceCreateRequest.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/TemplateInstanceCreateRequest.java @@ -1,5 +1,6 @@ package cd.casic.ci.common.pipeline.pojo; +import cd.casic.ci.common.pipeline.enums.PipelineInstanceTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -30,7 +31,7 @@ public class TemplateInstanceCreateRequest { @Schema(title = "是否使用并发组配置", required = false) private Boolean useConcurrencyGroup; @Schema(title = "创建实例的模式", required = false) - private String instanceType = PipelineInstanceTypeEnum.FREEDOM.type; + private String instanceType = PipelineInstanceTypeEnum.FREEDOM.getType(); @Schema(title = "是否为空模板", required = false) private Boolean emptyTemplate; @Schema(title = "静态流水线组", required = false) diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/BuildCascadeProps.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/BuildCascadeProps.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/BuildCascadeProps.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/BuildCascadeProps.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/CascadeParam.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/CascadeParam.java similarity index 97% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/CascadeParam.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/CascadeParam.java index afc5585..c0a2e12 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/CascadeParam.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/CascadeParam.java @@ -2,10 +2,9 @@ package cd.casic.ci.common.pipeline.pojo.cascade; import cd.casic.ci.common.pipeline.enums.BuildFormPropertyType; import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; +import cd.casic.ci.common.pipeline.utils.CascadePropertyUtils; import lombok.AllArgsConstructor; import lombok.Data; -import lombok.Getter; -import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/RepoRefCascadeParam.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/RepoRefCascadeParam.java similarity index 96% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/RepoRefCascadeParam.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/RepoRefCascadeParam.java index d323d17..2670c00 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/RepoRefCascadeParam.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/cascade/RepoRefCascadeParam.java @@ -1,11 +1,9 @@ package cd.casic.ci.common.pipeline.pojo.cascade; -import cd.casic.ci.common.api.enums.ScmType; +import cd.casic.ci.common.enums.ScmType; import cd.casic.ci.common.pipeline.enums.BuildFormPropertyType; import cd.casic.ci.common.pipeline.pojo.BuildFormValue; import lombok.Data; -import lombok.Getter; -import lombok.Setter; import java.util.Arrays; import java.util.Collections; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/Element.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/Element.java similarity index 99% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/Element.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/Element.java index 6c28594..54d6fd0 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/Element.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/Element.java @@ -142,7 +142,7 @@ public abstract class Element implements IModelTemplate { } public boolean elementEnabled() { - return additionalOptions == null || additionalOptions.getEnable(); + return additionalOptions == null || additionalOptions.isEnable(); } public void transformCompatibility() { diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementAdditionalOptions.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementAdditionalOptions.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementAdditionalOptions.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementAdditionalOptions.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementBaseInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementBaseInfo.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementBaseInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementBaseInfo.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementPostInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementPostInfo.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementPostInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementPostInfo.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementProp.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementProp.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementProp.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/ElementProp.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/EmptyElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/EmptyElement.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/EmptyElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/EmptyElement.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/SubPipelineCallElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/SubPipelineCallElement.java similarity index 98% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/SubPipelineCallElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/SubPipelineCallElement.java index 066e842..aac7b4b 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/SubPipelineCallElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/SubPipelineCallElement.java @@ -2,7 +2,6 @@ package cd.casic.ci.common.pipeline.pojo.element; import cd.casic.ci.common.pipeline.pojo.element.atom.SubPipelineType; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import java.util.Map; @@ -15,7 +14,6 @@ import java.util.Map; * @Filename:SubPipelineCallElement * @description:Todo */ -@Data @Schema(title = "子流水线调用", description = SubPipelineCallElement.classType) public class SubPipelineCallElement extends Element { public static final String classType = "subPipelineCall"; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitElement.java similarity index 90% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitElement.java index dbd530e..6011f13 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitElement.java @@ -1,10 +1,11 @@ package cd.casic.ci.common.pipeline.pojo.element.agent; -import cd.casic.ci.common.api.enums.RepositoryType; +import cd.casic.ci.common.enums.RepositoryType; import cd.casic.ci.common.pipeline.enums.CodePullStrategy; import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.git.GitPullMode; +import cn.hutool.json.JSONUtil; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.NoArgsConstructor; import java.util.Map; @@ -18,7 +19,6 @@ import java.util.Map; * @Filename:CodeGitElement * @description:Todo */ -@Data @NoArgsConstructor @Schema(title = "拉取Git仓库代码", description = CodeGitElement.classType) public class CodeGitElement extends Element { @@ -53,7 +53,7 @@ public class CodeGitElement extends Element { @Override public Map genTaskParams() { - Map paramMap = JsonUtil.toMutableMap(this); + Map paramMap = JSONUtil.toBean(JSONUtil.toJsonStr(this), Map.class); if (gitPullMode != null) { paramMap.put(modeType, gitPullMode.getType().name()); paramMap.put(modeValue, gitPullMode.getValue()); diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitlabElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitlabElement.java similarity index 90% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitlabElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitlabElement.java index 01fc67f..f0b9335 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitlabElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeGitlabElement.java @@ -1,9 +1,11 @@ package cd.casic.ci.common.pipeline.pojo.element.agent; +import cd.casic.ci.common.enums.RepositoryType; import cd.casic.ci.common.pipeline.enums.CodePullStrategy; import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.git.GitPullMode; +import cn.hutool.json.JSONUtil; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.NoArgsConstructor; import java.util.Map; @@ -17,7 +19,6 @@ import java.util.Map; * @Filename:CodeGitlabElement * @description:Todo */ -@Data @NoArgsConstructor @Schema(title = "拉取Gitlab仓库代码", description = CodeGitlabElement.classType) public class CodeGitlabElement extends Element { @@ -52,7 +53,7 @@ public class CodeGitlabElement extends Element { @Override public Map genTaskParams() { - Map paramMap = JsonUtil.toMutableMap(this); + Map paramMap = JSONUtil.toBean(JSONUtil.toJsonStr(this), Map.class); if (gitPullMode != null) { paramMap.put(modeType, gitPullMode.getType().name()); paramMap.put(modeValue, gitPullMode.getValue()); diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeSvnElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeSvnElement.java similarity index 65% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeSvnElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeSvnElement.java index 0423e6e..b38ed23 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeSvnElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/CodeSvnElement.java @@ -1,5 +1,6 @@ package cd.casic.ci.common.pipeline.pojo.element.agent; +import cd.casic.ci.common.enums.RepositoryType; import cd.casic.ci.common.pipeline.enums.CodePullStrategy; import cd.casic.ci.common.pipeline.enums.SVNVersion; import cd.casic.ci.common.pipeline.enums.SvnDepth; @@ -22,22 +23,9 @@ import lombok.NoArgsConstructor; @Schema(title = "拉取SVN仓库代码", description = CodeSvnElement.classType) public class CodeSvnElement extends Element { public static final String classType = "CODE_SVN"; - public static final String REPO_HASH_ID = "repositoryHashId"; - public static final String REPO_NAME = "repositoryName"; - public static final String REPO_TYPE = "repositoryType"; - public static final String BRANCH_NAME = "branchName"; - public static final String REVISION = "revision"; - public static final String STRATEGY = "strategy"; - public static final String PATH = "path"; - public static final String enableSubmodule = "enableSubmodule"; - public static final String enableVirtualMergeBranch = "enableVirtualMergeBranch"; - public static final String specifyRevision = "specifyRevision"; - public static final String svnDepth = "svnDepth"; - public static final String svnPath = "svnPath"; - public static final String svnVersion = "svnVersion"; @Schema(title = "任务名称", required = true) - private String name = ""; + private String name; @Schema(title = "id", required = false) private String id; @Schema(title = "状态", required = false) @@ -47,15 +35,15 @@ public class CodeSvnElement extends Element { @Schema(title = "revision 用于强制指定commitId", required = false) private String revision; @Schema(title = "checkout 策略", required = false) - private CodePullStrategy strategy = CodePullStrategy.INCREMENT_UPDATE; + private CodePullStrategy strategy; @Schema(title = "代码存放路径", required = false) private String path; @Schema(title = "启动Submodule", required = false) - private Boolean enableSubmodule = true; + private Boolean enableSubmodule; @Schema(title = "指定版本号", required = false) - private Boolean specifyRevision = false; + private Boolean specifyRevision; @Schema(title = "拉取仓库深度", required = false) - private SvnDepth svnDepth = SvnDepth.infinity; + private SvnDepth svnDepth; @Schema(title = "SVN相对路径", required = false) private String svnPath; @Schema(title = "SVN的版本", required = false) diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/GithubElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/GithubElement.java similarity index 91% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/GithubElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/GithubElement.java index f2d5e26..8084f94 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/GithubElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/GithubElement.java @@ -1,8 +1,10 @@ package cd.casic.ci.common.pipeline.pojo.element.agent; -import cd.casic.ci.common.api.enums.RepositoryType; +import cd.casic.ci.common.enums.RepositoryType; import cd.casic.ci.common.pipeline.enums.CodePullStrategy; import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.git.GitPullMode; +import cn.hutool.json.JSONUtil; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; @@ -53,7 +55,7 @@ public class GithubElement extends Element { @Override public Map genTaskParams() { - Map paramMap = JsonUtil.toMutableMap(this); + Map paramMap = JSONUtil.toBean(JSONUtil.toJsonStr(this), Map.class); if (gitPullMode != null) { paramMap.put(modeType, gitPullMode.getType().name()); paramMap.put(modeValue, gitPullMode.getValue()); diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/LinuxScriptElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/LinuxScriptElement.java similarity index 99% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/LinuxScriptElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/LinuxScriptElement.java index 9c05eea..72c4710 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/LinuxScriptElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/LinuxScriptElement.java @@ -66,7 +66,6 @@ public class LinuxScriptElement extends Element { return mutableMap; } - @Override public PreStep transferYaml(JSONObject defaultValue) { Map res = new HashMap<>(); res.put("script", script); diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/ManualReviewUserTaskElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/ManualReviewUserTaskElement.java similarity index 96% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/ManualReviewUserTaskElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/ManualReviewUserTaskElement.java index 73334ed..6be988e 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/ManualReviewUserTaskElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/ManualReviewUserTaskElement.java @@ -1,11 +1,13 @@ package cd.casic.ci.common.pipeline.pojo.element.agent; import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.element.atom.ManualReviewParam; import cd.casic.ci.common.pipeline.pojo.transfer.PreStep; import cd.casic.ci.common.pipeline.utils.TransferUtil; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; +import org.json.JSONObject; import java.util.HashMap; import java.util.List; @@ -58,7 +60,6 @@ public class ManualReviewUserTaskElement extends Element { return "manualReviewTaskAtom"; } - @Override public PreStep transferYaml(JSONObject defaultValue) { Map input = new HashMap<>(); if (reviewUsers != null && !reviewUsers.isEmpty()) { @@ -93,7 +94,7 @@ public class ManualReviewUserTaskElement extends Element { } return new PreStep( name, - stepId, + id, getAtomCode() + "@" + getVersion(), TransferUtil.simplifyParams(defaultValue, input) ); diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/WindowsScriptElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/WindowsScriptElement.java similarity index 98% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/WindowsScriptElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/WindowsScriptElement.java index ef3ab9d..6372125 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/WindowsScriptElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/agent/WindowsScriptElement.java @@ -7,7 +7,6 @@ import cd.casic.ci.common.pipeline.pojo.element.Element; import cd.casic.ci.common.pipeline.pojo.transfer.PreStep; import com.alibaba.fastjson.JSONObject; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.NoArgsConstructor; import java.net.URLEncoder; @@ -24,7 +23,6 @@ import java.util.Map; * @Filename:WindowsScriptElement * @description:Todo */ -@Data @NoArgsConstructor @Schema(title = "脚本任务(windows环境)", description = WindowsScriptElement.classType) public class WindowsScriptElement extends Element { @@ -60,7 +58,6 @@ public class WindowsScriptElement extends Element { return mutableMap; } - @Override public PreStep transferYaml(JSONObject defaultValue) { Map res = new HashMap<>(); res.put("script", script); diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/BeforeDeleteParam.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/BeforeDeleteParam.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/BeforeDeleteParam.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/BeforeDeleteParam.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementBatchCheckParam.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementBatchCheckParam.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementBatchCheckParam.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementBatchCheckParam.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementCheckResult.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementCheckResult.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementCheckResult.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementCheckResult.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementHolder.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementHolder.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementHolder.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ElementHolder.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParam.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParam.java similarity index 99% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParam.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParam.java index 0db50db..f8d49b2 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParam.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParam.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; import java.util.Map; /** diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParamPair.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParamPair.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParamPair.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParamPair.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParamType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParamType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParamType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/ManualReviewParamType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/PipelineCheckFailedReason.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/PipelineCheckFailedReason.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/PipelineCheckFailedReason.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/PipelineCheckFailedReason.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/SubPipelineType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/SubPipelineType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/SubPipelineType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/atom/SubPipelineType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/AtomBuildArchiveElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/AtomBuildArchiveElement.java similarity index 98% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/AtomBuildArchiveElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/AtomBuildArchiveElement.java index 1d6405d..e91f32e 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/AtomBuildArchiveElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/AtomBuildArchiveElement.java @@ -2,7 +2,6 @@ package cd.casic.ci.common.pipeline.pojo.element.market; import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.EqualsAndHashCode; /** @@ -14,7 +13,6 @@ import lombok.EqualsAndHashCode; * @Filename:AtomBuildArchiveElement * @description:Todo */ -@Data @EqualsAndHashCode(callSuper = true) @Schema(title = "插件发布归档", description = AtomBuildArchiveElement.CLASS_TYPE) public class AtomBuildArchiveElement extends Element { diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildAtomElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildAtomElement.java similarity index 93% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildAtomElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildAtomElement.java index 7735f1b..05e8c73 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildAtomElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildAtomElement.java @@ -8,6 +8,7 @@ import cd.casic.ci.common.pipeline.utils.TransferUtil; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import org.json.JSONObject; import java.util.HashMap; import java.util.List; @@ -24,9 +25,9 @@ import java.util.Map; */ @Data @EqualsAndHashCode(callSuper = true) -@Schema(title = "流水线模型-插件市场第三方构建环境类插件", description = MarketBuildAtomElement.CLASS_TYPE) +@Schema(title = "流水线模型-插件市场第三方构建环境类插件", description = MarketBuildAtomElement.classType) public class MarketBuildAtomElement extends Element { - public static final String CLASS_TYPE = "marketBuild"; + public static final String classType = "marketBuild"; @Schema(title = "任务名称", required = true) private String name = "任务名称由用户自己填写"; @@ -60,7 +61,6 @@ public class MarketBuildAtomElement extends Element { return atomCode; } - @Override public PreStep transferYaml(JSONObject defaultValue) { Map input = (Map) data.getOrDefault("input", new HashMap<>()); return new PreStep( @@ -73,6 +73,6 @@ public class MarketBuildAtomElement extends Element { @Override public String getClassType() { - return CLASS_TYPE; + return classType; } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildLessAtomElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildLessAtomElement.java similarity index 91% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildLessAtomElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildLessAtomElement.java index 32504c1..ce1d5e5 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildLessAtomElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketBuildLessAtomElement.java @@ -4,10 +4,10 @@ import cd.casic.ci.common.pipeline.NameAndValue; import cd.casic.ci.common.pipeline.pojo.element.Element; import cd.casic.ci.common.pipeline.pojo.transfer.PreStep; import cd.casic.ci.common.pipeline.utils.TransferUtil; -import com.alibaba.fastjson.JSONObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import org.json.JSONObject; import java.util.HashMap; import java.util.List; @@ -24,9 +24,9 @@ import java.util.Map; */ @Data @EqualsAndHashCode(callSuper = true) -@Schema(title = "流水线模型-插件市场第三方无构建环境类插件", description = MarketBuildLessAtomElement.CLASS_TYPE) +@Schema(title = "流水线模型-插件市场第三方无构建环境类插件", description = MarketBuildLessAtomElement.classType) public class MarketBuildLessAtomElement extends Element { - public static final String CLASS_TYPE = "marketBuildLess"; + public static final String classType = "marketBuildLess"; @Schema(title = "任务名称", required = true) private String name = "任务名称由用户自己填写"; @@ -57,7 +57,6 @@ public class MarketBuildLessAtomElement extends Element { return atomCode; } - @Override public PreStep transferYaml(JSONObject defaultValue) { Map input = (Map) data.getOrDefault("input", new HashMap<>()); return new PreStep( @@ -70,6 +69,6 @@ public class MarketBuildLessAtomElement extends Element { @Override public String getClassType() { - return CLASS_TYPE; + return classType; } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketCheckImageElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketCheckImageElement.java similarity index 90% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketCheckImageElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketCheckImageElement.java index 7f9d870..d482ea3 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketCheckImageElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/market/MarketCheckImageElement.java @@ -16,9 +16,9 @@ import lombok.EqualsAndHashCode; */ @Data @EqualsAndHashCode(callSuper = true) -@Schema(title = "验证镜像合法性", description = MarketCheckImageElement.CLASS_TYPE) +@Schema(title = "验证镜像合法性", description = MarketCheckImageElement.classType) public class MarketCheckImageElement extends Element { - public static final String CLASS_TYPE = "marketCheckImage"; + public static final String classType = "marketCheckImage"; @Schema(title = "任务名称", required = true) private String name = "验证镜像合法性"; @@ -37,6 +37,6 @@ public class MarketCheckImageElement extends Element { @Override public String getClassType() { - return CLASS_TYPE; + return classType; } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/matrix/MatrixStatusElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/matrix/MatrixStatusElement.java similarity index 94% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/matrix/MatrixStatusElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/matrix/MatrixStatusElement.java index cddfda7..5261b15 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/matrix/MatrixStatusElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/matrix/MatrixStatusElement.java @@ -20,9 +20,9 @@ import java.util.List; */ @Data @EqualsAndHashCode(callSuper = true) -@Schema(title = "流水线模型-矩阵纯运行状态插件", description = MatrixStatusElement.CLASS_TYPE) +@Schema(title = "流水线模型-矩阵纯运行状态插件", description = MatrixStatusElement.classType) public class MatrixStatusElement extends Element { - public static final String CLASS_TYPE = "matrixStatus"; + public static final String classType = "matrixStatus"; @Schema(title = "任务名称", required = true) private String name = "状态插件"; @@ -68,7 +68,7 @@ public class MatrixStatusElement extends Element { @Override public String getClassType() { - return CLASS_TYPE; + return classType; } @Override diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateInElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateInElement.java similarity index 92% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateInElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateInElement.java index c9d866c..65c5a82 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateInElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateInElement.java @@ -9,6 +9,8 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import static cd.casic.ci.common.constant.CommonConstants.*; + /** * @Author:mianbin * @Package:cd.casic.ci.common.pipeline.pojo.quality @@ -20,9 +22,9 @@ import java.util.Set; */ @Data @EqualsAndHashCode(callSuper = true) -@Schema(title = "质量红线(准入)", description = QualityGateInElement.CLASS_TYPE) +@Schema(title = "质量红线(准入)", description = QualityGateInElement.classType) public class QualityGateInElement extends Element { - public static final String CLASS_TYPE = "qualityGateInTask"; + public static final String classType = "qualityGateInTask"; @Schema(title = "任务名称", required = true) private String name = "质量红线(准入)"; @@ -49,7 +51,7 @@ public class QualityGateInElement extends Element { @Override public String getClassType() { - return CLASS_TYPE; + return classType; } @Override diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateOutElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateOutElement.java similarity index 88% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateOutElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateOutElement.java index d5898a5..9ac3e7d 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateOutElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/quality/QualityGateOutElement.java @@ -2,14 +2,14 @@ package cd.casic.ci.common.pipeline.pojo.element.quality; import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.EqualsAndHashCode; import java.util.HashSet; import java.util.Map; import java.util.Set; -import static cd.casic.ci.common.api.constant.CommonConstants.*; +import static cd.casic.ci.common.constant.CommonConstants.KEY_ELEMENT_ENABLE; +import static cd.casic.ci.common.constant.CommonConstants.KEY_TASK_ATOM; /** * @Author:mianbin @@ -20,11 +20,10 @@ import static cd.casic.ci.common.api.constant.CommonConstants.*; * @Filename:QualityGateOutElement * @description:Todo */ -@Data @EqualsAndHashCode(callSuper = true) -@Schema(title = "质量红线(准出)", description = QualityGateOutElement.CLASS_TYPE) +@Schema(title = "质量红线(准出)", description = QualityGateOutElement.classType) public class QualityGateOutElement extends Element { - public static final String CLASS_TYPE = "qualityGateOutTask"; + public static final String classType = "qualityGateOutTask"; @Schema(title = "任务名称", required = true) private String name = "质量红线(准出)"; @@ -51,7 +50,7 @@ public class QualityGateOutElement extends Element { @Override public String getClassType() { - return CLASS_TYPE; + return classType; } @Override diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitWebHookTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitWebHookTriggerElement.java similarity index 98% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitWebHookTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitWebHookTriggerElement.java index 60a248e..1ab5c8e 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitWebHookTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitWebHookTriggerElement.java @@ -1,16 +1,12 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.api.enums.TriggerRepositoryType; +import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; import cd.casic.ci.common.pipeline.pojo.element.ElementProp; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeEventType; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.PathFilterType; import cd.casic.ci.common.pipeline.utils.TriggerElementPropUtils; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.util.List; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGithubWebHookTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGithubWebHookTriggerElement.java similarity index 95% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGithubWebHookTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGithubWebHookTriggerElement.java index 37cad72..52e14f3 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGithubWebHookTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGithubWebHookTriggerElement.java @@ -1,13 +1,10 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.api.enums.TriggerRepositoryType; +import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; -import cd.casic.ci.common.pipeline.pojo.element.ElementProp; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeEventType; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.PathFilterType; -import cd.casic.ci.common.pipeline.utils.TriggerElementPropUtils; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.experimental.Accessors; import java.util.List; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitlabWebHookTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitlabWebHookTriggerElement.java similarity index 98% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitlabWebHookTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitlabWebHookTriggerElement.java index 8f15b68..59ba779 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitlabWebHookTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeGitlabWebHookTriggerElement.java @@ -1,13 +1,12 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.api.enums.TriggerRepositoryType; +import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; import cd.casic.ci.common.pipeline.pojo.element.ElementProp; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeEventType; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.PathFilterType; import cd.casic.ci.common.pipeline.utils.TriggerElementPropUtils; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.experimental.Accessors; import java.util.List; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeP4WebHookTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeP4WebHookTriggerElement.java similarity index 94% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeP4WebHookTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeP4WebHookTriggerElement.java index 2699df7..608eb3a 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeP4WebHookTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeP4WebHookTriggerElement.java @@ -1,6 +1,6 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.api.enums.TriggerRepositoryType; +import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; import cd.casic.ci.common.pipeline.pojo.element.ElementProp; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeEventType; @@ -20,7 +20,6 @@ import java.util.List; * @Filename:CodeP4WebHookTriggerElement * @description:Todo */ -@Data @Accessors(chain = true) @Schema(title = "p4事件触发", description = CodeP4WebHookTriggerElement.classType) public class CodeP4WebHookTriggerElement extends WebHookTriggerElement { @@ -38,6 +37,10 @@ public class CodeP4WebHookTriggerElement extends WebHookTriggerElement { @Schema(title = "数据", required = true) private CodeP4WebHookTriggerData data; + public CodeP4WebHookTriggerElement(String name, String id, String status) { + super(name, id, status); + } + @Override public String getClassType() { return classType; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeSVNWebHookTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeSVNWebHookTriggerElement.java similarity index 93% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeSVNWebHookTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeSVNWebHookTriggerElement.java index c2c9be0..0664a3b 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeSVNWebHookTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeSVNWebHookTriggerElement.java @@ -1,12 +1,11 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.api.enums.TriggerRepositoryType; +import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; import cd.casic.ci.common.pipeline.pojo.element.ElementProp; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.PathFilterType; import cd.casic.ci.common.pipeline.utils.TriggerElementPropUtils; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.experimental.Accessors; import java.util.List; @@ -20,7 +19,6 @@ import java.util.List; * @Filename:CodeSVNWebHookTriggerElement * @description:Todo */ -@Data @Accessors(chain = true) @Schema(title = "SVN仓库代码提交触发", description = CodeSVNWebHookTriggerElement.classType) public class CodeSVNWebHookTriggerElement extends WebHookTriggerElement { @@ -59,6 +57,10 @@ public class CodeSVNWebHookTriggerElement extends WebHookTriggerElement { @Schema(title = "新版的svn代码库名") private String repositoryName; + public CodeSVNWebHookTriggerElement(String name, String id, String status) { + super(name, id, status); + } + @Override public String getClassType() { return classType; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeTGitWebHookTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeTGitWebHookTriggerElement.java similarity index 99% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeTGitWebHookTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeTGitWebHookTriggerElement.java index 74094ac..5e2b876 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeTGitWebHookTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/CodeTGitWebHookTriggerElement.java @@ -1,6 +1,6 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.api.enums.TriggerRepositoryType; +import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; import cd.casic.ci.common.pipeline.pojo.element.ElementProp; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeEventType; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/ManualTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/ManualTriggerElement.java similarity index 98% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/ManualTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/ManualTriggerElement.java index 0953c1a..15cb714 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/ManualTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/ManualTriggerElement.java @@ -3,7 +3,6 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; import cd.casic.ci.common.pipeline.enums.StartType; import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.experimental.Accessors; import java.util.Set; @@ -17,7 +16,6 @@ import java.util.Set; * @Filename:ManualTriggerElement * @description:Todo */ -@Data @Accessors(chain = true) @Schema(title = "手动触发") public class ManualTriggerElement extends Element { diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/RemoteTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/RemoteTriggerElement.java similarity index 97% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/RemoteTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/RemoteTriggerElement.java index dfe3207..8f1d3f6 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/RemoteTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/RemoteTriggerElement.java @@ -2,7 +2,6 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.experimental.Accessors; /** @@ -14,7 +13,6 @@ import lombok.experimental.Accessors; * @Filename:RemoteTriggerElement * @description:Todo */ -@Data @Accessors(chain = true) @Schema(title = "远程触发触发") public class RemoteTriggerElement extends Element { diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/TimerTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/TimerTriggerElement.java similarity index 96% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/TimerTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/TimerTriggerElement.java index 560f21f..965a6c4 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/TimerTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/TimerTriggerElement.java @@ -1,13 +1,13 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.api.enums.TriggerRepositoryType; +import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.experimental.Accessors; -import java.util.*; +import java.util.Arrays; +import java.util.List; /** * @Author:mianbin @@ -18,7 +18,6 @@ import java.util.*; * @Filename:TimerTriggerElement * @description:Todo */ -@Data @Accessors(chain = true) @Schema(title = "定时触发") public class TimerTriggerElement extends Element { diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/WebHookTriggerElement.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/WebHookTriggerElement.java similarity index 94% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/WebHookTriggerElement.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/WebHookTriggerElement.java index a627f4d..bfc4a33 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/WebHookTriggerElement.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/WebHookTriggerElement.java @@ -3,7 +3,6 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; import cd.casic.ci.common.pipeline.pojo.element.Element; import cd.casic.ci.common.pipeline.pojo.element.ElementProp; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; import lombok.experimental.Accessors; import java.util.List; @@ -17,12 +16,11 @@ import java.util.List; * @Filename:WebHookTriggerElement * @description:Todo */ -@Data @Accessors(chain = true) @Schema(title = "Webhook基础类") public abstract class WebHookTriggerElement extends Element { public WebHookTriggerElement(String name, String id, String status) { - super(name, id, status); + //super(name, id, status); } public List triggerCondition() { diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeEventType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeEventType.java similarity index 98% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeEventType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeEventType.java index 0d4b47c..c8b443b 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeEventType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeEventType.java @@ -1,6 +1,6 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger.enums; -import cd.casic.ci.common.api.enums.ScmType; +import cd.casic.ci.common.enums.ScmType; import java.util.ArrayList; import java.util.List; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/CodeType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/PathFilterType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/PathFilterType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/PathFilterType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/element/trigger/enums/PathFilterType.java diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/CallBackData.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/CallBackData.java new file mode 100644 index 0000000..9eb238c --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/CallBackData.java @@ -0,0 +1,129 @@ +package cd.casic.ci.common.pipeline.pojo.event; + +import cd.casic.ci.common.pipeline.enums.CallBackEvent; +import lombok.Data; + +import java.util.List; + +/** + * @author by mianbin + * @Classname CallBackData + * @Description TODO + * @Date 2025/4/2 9:46 + */ +@Data +class CallBackData { + private final CallBackEvent event; + private final T data; + + // 构造函数 + public CallBackData(CallBackEvent event, T data) { + this.event = event; + this.data = data; + } +} + +@Data +class PipelineEvent { + private final String pipelineId; + private final String pipelineName; + private final String userId; + private final long updateTime; + private final String projectId; +} + +@Data +class StreamEnabledEvent { + private final String userId; + private final long gitProjectId; + private final String gitProjectUrl; + private final boolean enable; +} + +@Data +class BuildEvent { + private final String buildId; + private final String pipelineId; + private final String pipelineName; + private final String userId; + private final String triggerUser; + private final String cancelUserId; + private final String status; + private final long startTime; + private final long endTime; + private final SimpleModel model; + private final String projectId; + private final String trigger; + private final String stageId; + private final String taskId; + private final int buildNo; + private final Boolean debug; + + // 构造函数,使用了默认值的设置 + public BuildEvent(String buildId, String pipelineId, String pipelineName, String userId, String triggerUser, String cancelUserId, String status, long startTime, long endTime, SimpleModel model, String projectId, String trigger, String stageId, String taskId, int buildNo, Boolean debug) { + this.buildId = buildId; + this.pipelineId = pipelineId; + this.pipelineName = pipelineName; + this.userId = userId; + this.triggerUser = triggerUser; + this.cancelUserId = cancelUserId; + this.status = status; + this.startTime = startTime; + this.endTime = endTime; + this.model = model; + this.projectId = projectId; + this.trigger = trigger; + this.stageId = stageId; + this.taskId = taskId; + this.buildNo = buildNo; + this.debug = debug; + } +} + +@Data +class SimpleModel { + private final List stages; +} + +@Data +class SimpleStage { + private final String stageName; + private final String name; + private String status; + private long startTime; + private long endTime; + private final List jobs; +} + +@Data +class SimpleJob { + private final String jobName; + private final String status; + private final long startTime; + private final long endTime; + private final List tasks; +} + +@Data +class SimpleTask { + private final String taskId; + private final String taskName; + private final String atomCode; + private final String status; + private final long startTime; + private final long endTime; +} + +@Data +class ProjectCallbackEvent { + private final String projectId; + private final String projectName; + private final boolean enable; + private final String userId; +} + +// 定义回调常量的类 +class CallbackConstants { + // 项目级回调标志位 + static final String DEVOPS_ALL_PROJECT = "DEVOPS_ALL_PROJECT"; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/CallBackNetWorkRegionType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/CallBackNetWorkRegionType.java new file mode 100644 index 0000000..4bf9af9 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/CallBackNetWorkRegionType.java @@ -0,0 +1,20 @@ +package cd.casic.ci.common.pipeline.pojo.event; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author by mianbin + * @Classname CallBackNetWorkRegionType + * @Description TODO + * @Date 2025/4/2 9:42 + */ +@AllArgsConstructor +@Getter +public enum CallBackNetWorkRegionType { + DEVNET("DEVNET"), + OSS("OSS"), + IDC("IDC"); + + private final String value; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/PipelineCallbackEvent.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/PipelineCallbackEvent.java new file mode 100644 index 0000000..e508036 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/PipelineCallbackEvent.java @@ -0,0 +1,19 @@ +package cd.casic.ci.common.pipeline.pojo.event; + +import cd.casic.ci.common.pipeline.enums.CallBackEvent; +import lombok.Data; + +/** + * @author by mianbin + * @Classname PipelineCallbackEvent + * @Description TODO + * @Date 2025/4/2 9:43 + */ +@Data +public class PipelineCallbackEvent { + private final CallBackEvent callbackEvent; + private String callbackUrl; + private final String secretToken; + private final String callbackName; + private final CallBackNetWorkRegionType region; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/ProjectPipelineCallBack.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/ProjectPipelineCallBack.java new file mode 100644 index 0000000..d3ff3e3 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/event/ProjectPipelineCallBack.java @@ -0,0 +1,40 @@ +package cd.casic.ci.common.pipeline.pojo.event; + +import cd.casic.ci.common.pipeline.pojo.secret.ISecretParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +/** + * @author by mianbin + * @Classname ProjectPipelineCallBack + * @Description TODO + * @Date 2025/4/2 9:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "项目的流水线回调配置") +public class ProjectPipelineCallBack { + @Schema(title = "流水线id", required = false) + private Long id; + @Schema(title = "项目id", required = false) + private String projectId; + @Schema(title = "回调url地址", required = false) + private String callBackUrl; + @Schema(title = "事件", required = false) + private String events; + @Schema(title = "密钥", required = false) + private String secretToken; + @Schema(title = "回调是否启用", required = false) + private Boolean enable = true; + @Schema(title = "回调是否启用", required = false) + private LocalDateTime failureTime; + @Schema(title = "凭证参数", required = false) + private ISecretParam secretParam; + @Schema(title = "回调名称", required = false) + private String name; +} diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/git/GitPullMode.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/git/GitPullMode.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/git/GitPullMode.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/git/GitPullMode.java diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/secret/HeaderSecretParam.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/secret/HeaderSecretParam.java new file mode 100644 index 0000000..98a4e04 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/secret/HeaderSecretParam.java @@ -0,0 +1,26 @@ +package cd.casic.ci.common.pipeline.pojo.secret; + +import lombok.Data; +import okhttp3.Request; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname HeaderSecretParam + * @Description TODO + * @Date 2025/4/2 9:45 + */ +@Data +class HeaderSecretParam implements ISecretParam { + private Map headers; + + @Override + public void secret(Request.Builder builder) { + for (Map.Entry header : headers.entrySet()) { + builder.header(header.getKey(), header.getValue()); + } + } + + public static final String classType = "header"; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/secret/ISecretParam.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/secret/ISecretParam.java new file mode 100644 index 0000000..5c35e20 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/secret/ISecretParam.java @@ -0,0 +1,19 @@ +package cd.casic.ci.common.pipeline.pojo.secret; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import okhttp3.Request; + +/** + * @author by mianbin + * @Classname ISecretParam + * @Description TODO + * @Date 2025/4/2 9:44 + */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@type") +@JsonSubTypes({ + @JsonSubTypes.Type(value = HeaderSecretParam.class, name = HeaderSecretParam.classType) +}) +public interface ISecretParam { + void secret(Request.Builder builder); +} diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineRunLockType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineRunLockType.java similarity index 99% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineRunLockType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineRunLockType.java index 1aae487..eb63f4e 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineRunLockType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineRunLockType.java @@ -25,6 +25,7 @@ public enum PipelineRunLockType { LOCK, @Schema(title = "并发组锁定,项目级别,同一组的构建为SINGLE模式") GROUP_LOCK; + /** * 注意,数字与枚举的ordinal不一样,ordinal是下标为0开始 ,而这以1为开始 */ @@ -49,4 +50,4 @@ public enum PipelineRunLockType { }; } } -} + diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSetting.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSetting.java similarity index 95% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSetting.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSetting.java index 0b5b759..3f26235 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSetting.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSetting.java @@ -1,6 +1,6 @@ package cd.casic.ci.common.pipeline.pojo.setting; -import cd.casic.ci.common.api.enums.BkStyleEnum; +import cd.casic.ci.common.pojo.PipelineAsCodeSettings; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.experimental.Accessors; @@ -64,9 +64,9 @@ public class PipelineSetting { private Integer maxConRunningQueueSize = null; // MULTIPLE类型时,并发构建数量限制 // 平台系统控制相关配置 —— 不作为生成版本的配置 @Schema(title = "保存流水线编排的最大个数", required = false) - private final int maxPipelineResNum = PIPELINE_RES_NUM_MIN; // 保存流水线编排的最大个数 + private int maxPipelineResNum = PIPELINE_RES_NUM_MIN; // 保存流水线编排的最大个数 @Schema(title = "重试时清理引擎变量表", required = false) - private final Boolean cleanVariablesWhenRetry = false; + private Boolean cleanVariablesWhenRetry = false; @Schema(title = "YAML流水线特殊配置", required = false) private PipelineAsCodeSettings pipelineAsCodeSettings; @@ -79,6 +79,7 @@ public class PipelineSetting { Boolean inheritedDialectSetting, String pipelineDialectSetting ) { + return new PipelineSetting() .setProjectId(projectId) .setPipelineId(pipelineId) @@ -145,7 +146,8 @@ public class PipelineSetting { public void copyConcurrencyGroup(PipelineSetting other) { this.concurrencyGroup = other.getConcurrencyGroup(); - this.concurrencyCancelInProgress = other.getConcurrencyCancelInProgress(); + this.concurrencyCancelInProgress = other.concurrencyCancelInProgress; this.maxConRunningQueueSize = PIPELINE_SETTING_MAX_CON_QUEUE_SIZE_MAX; } + } \ No newline at end of file diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSubscriptionType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSubscriptionType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSubscriptionType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/PipelineSubscriptionType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/Subscription.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/Subscription.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/Subscription.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/Subscription.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/SubscriptionGroup.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/SubscriptionGroup.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/SubscriptionGroup.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/setting/SubscriptionGroup.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeCost.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeCost.java similarity index 77% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeCost.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeCost.java index 4d2f124..9966930 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeCost.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeCost.java @@ -1,7 +1,9 @@ package cd.casic.ci.common.pipeline.pojo.time; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author:mianbin @@ -13,6 +15,8 @@ import lombok.Data; * @description:Todo */ @Data +@AllArgsConstructor +@NoArgsConstructor @Schema(title = "各项执行耗时(单位毫秒)") public class BuildRecordTimeCost { @Schema(title = "系统耗时(由总耗时减去其他得出)", required = true) @@ -25,4 +29,11 @@ public class BuildRecordTimeCost { private long queueCost = 0; @Schema(title = "总耗时(结束时间-开始时间)", required = true) private long totalCost = 0; + + + public BuildRecordTimeCost(long totalCost, long waitCost, long executeCost) { + this.totalCost = totalCost; + this.waitCost = waitCost; + this.executeCost = executeCost; + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeLine.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeLine.java similarity index 74% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeLine.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeLine.java index 3fd7329..609211d 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeLine.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildRecordTimeLine.java @@ -1,8 +1,11 @@ package cd.casic.ci.common.pipeline.pojo.time; +import cd.casic.framework.commons.util.date.DateUtils; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Data; +import java.time.LocalDateTime; import java.util.List; /** @@ -23,7 +26,9 @@ public class BuildRecordTimeLine { private List waitCostMoments; @Schema(title = "排队耗时(流水线并发和Job互斥)时刻,计算结果需成对", required = false) private List queueCostMoments; + @Data + @AllArgsConstructor @Schema(title = "时间戳对") public static class Moment { @Schema(title = "开始时间") @@ -31,5 +36,10 @@ public class BuildRecordTimeLine { @Schema(title = "结束时间") private long endTime; + + public Moment(LocalDateTime startTime, LocalDateTime endTime) { + this.startTime = DateUtils.LocalDateTimeToMilli(startTime); + this.endTime = DateUtils.LocalDateTimeToMilli(endTime); + } } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildTimestampType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildTimestampType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildTimestampType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/time/BuildTimestampType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertBody.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertBody.java similarity index 92% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertBody.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertBody.java index 52d4b5a..ea9ff64 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertBody.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertBody.java @@ -1,5 +1,6 @@ package cd.casic.ci.common.pipeline.pojo.transfer; +import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertResponse.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertResponse.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertResponse.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/ElementInsertResponse.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/IfType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/IfType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/IfType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/IfType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/MetaData.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/MetaData.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/MetaData.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/MetaData.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionBody.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionBody.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionBody.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionBody.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionResponse.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionResponse.java similarity index 95% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionResponse.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionResponse.java index b6acf7a..3b893cc 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionResponse.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PositionResponse.java @@ -1,5 +1,6 @@ package cd.casic.ci.common.pipeline.pojo.transfer; +import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreStep.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreStep.java similarity index 88% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreStep.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreStep.java index 09e0f6d..f69c804 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreStep.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreStep.java @@ -3,7 +3,6 @@ package cd.casic.ci.common.pipeline.pojo.transfer; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; import lombok.Data; import java.util.HashMap; @@ -22,7 +21,6 @@ import java.util.Map; @Data @JsonFilter("yamlMetaDataJsonFilter") @Schema(title = "PreStep") -@AllArgsConstructor public class PreStep implements YamlMetaData { private Boolean enable; private Object checkout; @@ -61,10 +59,19 @@ public class PreStep implements YamlMetaData { @JsonProperty("can-manually-retry") private Boolean manualRetry; + public PreStep(String name, String stepId, String s, Map stringObjectMap) { + this.name = name; + this.id = stepId; + this.uses = s; + this.with = stringObjectMap; + } + @Override public MetaData getYamlMetaData() { return yamlMetaData; } private MetaData yamlMetaData; + + } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreviewResponse.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreviewResponse.java similarity index 97% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreviewResponse.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreviewResponse.java index 1dccc15..85a4552 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreviewResponse.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/PreviewResponse.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.ArrayList; +import java.util.List; /** * @Author:mianbin diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/Resources.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/Resources.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/Resources.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/Resources.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/RunAtomParam.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/RunAtomParam.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/RunAtomParam.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/RunAtomParam.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TemplateInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TemplateInfo.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TemplateInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TemplateInfo.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferActionType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferActionType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferActionType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferActionType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferBody.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferBody.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferBody.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferBody.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferMark.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferMark.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferMark.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferMark.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferResponse.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferResponse.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferResponse.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferResponse.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferVMBaseOS.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferVMBaseOS.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferVMBaseOS.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/TransferVMBaseOS.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlMetaData.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlMetaData.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlMetaData.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlMetaData.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlMetaDataJsonFilter.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlMetaDataJsonFilter.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlMetaDataJsonFilter.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlMetaDataJsonFilter.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlWithVersion.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlWithVersion.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlWithVersion.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/transfer/YamlWithVersion.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/BuildType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/BuildType.java similarity index 86% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/BuildType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/BuildType.java index 33b57cf..40692b0 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/BuildType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/BuildType.java @@ -1,6 +1,7 @@ package cd.casic.ci.common.pipeline.type; -import cn.hutool.http.useragent.OS; + +import cd.casic.ci.common.pojo.OS; import lombok.AllArgsConstructor; import lombok.Getter; @@ -18,7 +19,7 @@ import java.util.List; @Getter @AllArgsConstructor public enum BuildType { - ESXI("蓝盾公共构建资源", List.of(OS.MACOS), false, false, false), + ESXI("公共构建资源", List.of(OS.MACOS), false, false, false), MACOS("云托管: MacOS on DevCloud", List.of(OS.MACOS), false, false, false), WINDOWS("云托管:Windows on DevCloud", List.of(OS.WINDOWS), false, false, false), KUBERNETES("Kubernetes构建资源", List.of(OS.LINUX), false, false, false), @@ -38,8 +39,4 @@ public enum BuildType { private final boolean enableApp; private final boolean clickable; private final boolean visible; - - public String getI18n(String language) { - return MessageUtil.getMessageByLocale("buildType." + this.name(), language); - } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchRouteKeySuffix.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchRouteKeySuffix.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchRouteKeySuffix.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchRouteKeySuffix.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchType.java similarity index 82% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchType.java index 8e5a810..74d043a 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/DispatchType.java @@ -2,11 +2,14 @@ package cd.casic.ci.common.pipeline.type; import cd.casic.ci.common.pipeline.type.agent.ThirdPartyAgentEnvDispatchType; import cd.casic.ci.common.pipeline.type.agent.ThirdPartyAgentIDDispatchType; +import cd.casic.ci.common.pipeline.type.docker.DockerDispatchType; +import cd.casic.ci.common.pipeline.type.kubernetes.KubernetesDispatchType; import cd.casic.ci.common.pipeline.utils.EnvUtils; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import lombok.Getter; -import lombok.Setter; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; import java.util.Map; @@ -25,11 +28,11 @@ import java.util.Map; @JsonSubTypes.Type(value = DockerDispatchType.class, name = "DOCKER"), @JsonSubTypes.Type(value = KubernetesDispatchType.class, name = "KUBERNETES"), @JsonSubTypes.Type(value = ThirdPartyAgentIDDispatchType.class, name = "THIRD_PARTY_AGENT_ID"), - @JsonSubTypes.Type(value = ThirdPartyAgentEnvDispatchType.class, name = "THIRD_PARTY_AGENT_ENV"), - @JsonSubTypes.Type(value = ThirdPartyDevCloudDispatchType.class, name = "THIRD_PARTY_DEVCLOUD") + @JsonSubTypes.Type(value = ThirdPartyAgentEnvDispatchType.class, name = "THIRD_PARTY_AGENT_ENV") }) -@Getter -@Setter +@Data +@AllArgsConstructor +@NoArgsConstructor public abstract class DispatchType { private String value; private DispatchRouteKeySuffix routeKeySuffix; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/StoreDispatchType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/StoreDispatchType.java similarity index 73% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/StoreDispatchType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/StoreDispatchType.java index dcf7f8b..5fe1734 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/StoreDispatchType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/StoreDispatchType.java @@ -1,8 +1,8 @@ package cd.casic.ci.common.pipeline.type; +import cd.casic.ci.common.pipeline.type.docker.ImageType; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Getter; -import lombok.Setter; +import lombok.AllArgsConstructor; import java.util.Optional; @@ -15,8 +15,7 @@ import java.util.Optional; * @Filename:StoreDispatchType * @description:Todo */ -@Getter -@Setter +@AllArgsConstructor public abstract class StoreDispatchType extends DispatchType { @Schema(title = "docker构建版本", required = false) private String dockerBuildVersion; @@ -52,4 +51,14 @@ public abstract class StoreDispatchType extends DispatchType { super(Optional.ofNullable(dockerBuildVersion).orElse("StoreDispatchType empty image"), routeKeySuffix); this.dockerBuildVersion = dockerBuildVersion; } + + public StoreDispatchType(String s, DispatchRouteKeySuffix dispatchRouteKeySuffix, ImageType imageType, String credentialId, String credentialProject, String imageCode, String imageVersion, String imageName) { + super(s, dispatchRouteKeySuffix); + this.imageType = imageType; + this.credentialId = credentialId; + this.credentialProject = credentialProject; + this.imageCode = imageCode; + this.imageVersion = imageVersion; + this.imageName = imageName; + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/AgentType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/AgentType.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/AgentType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/AgentType.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDispatch.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDispatch.java similarity index 80% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDispatch.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDispatch.java index 5d9a816..c798d8d 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDispatch.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDispatch.java @@ -2,6 +2,8 @@ package cd.casic.ci.common.pipeline.type.agent; import cd.casic.ci.common.pipeline.type.DispatchType; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.Getter; import lombok.Setter; @@ -18,6 +20,7 @@ import java.util.Map; */ @Getter @Setter +@AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) public abstract class ThirdPartyAgentDispatch extends DispatchType { private String value; @@ -26,14 +29,6 @@ public abstract class ThirdPartyAgentDispatch extends DispatchType { private ThirdPartyAgentDockerInfo dockerInfo; private ReusedInfo reusedInfo; - public ThirdPartyAgentDispatch(String value, AgentType agentType, String workspace, ThirdPartyAgentDockerInfo dockerInfo, ReusedInfo reusedInfo) { - super(value); - this.value = value; - this.agentType = agentType; - this.workspace = workspace; - this.dockerInfo = dockerInfo; - this.reusedInfo = reusedInfo; - } public boolean idType() { return (agentType == AgentType.ID) || (reusedInfo != null && reusedInfo.getAgentType() == AgentType.ID) || @@ -57,4 +52,13 @@ public abstract class ThirdPartyAgentDispatch extends DispatchType { @Override public abstract void cleanDataBeforeSave(); + + @Data + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + class ReusedInfo { + private final String value; + private final AgentType agentType; + private final String jobId; + } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDockerInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDockerInfo.java similarity index 98% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDockerInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDockerInfo.java index e5d549c..4ee15c5 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDockerInfo.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentDockerInfo.java @@ -1,5 +1,6 @@ package cd.casic.ci.common.pipeline.type.agent; +import cd.casic.ci.common.pipeline.type.docker.ImageType; import cd.casic.ci.common.pipeline.utils.EnvUtils; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; @@ -16,7 +17,6 @@ import java.util.Map; * @name:ThirdPartyAgentDockerInfo * @Date:2025/03/27 10:47 * @Filename:ThirdPartyAgentDockerInfo - * @description:Todo */ @Getter @Setter diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentEnvDispatchType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentEnvDispatchType.java similarity index 96% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentEnvDispatchType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentEnvDispatchType.java index 9d906c3..5b9abb0 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentEnvDispatchType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentEnvDispatchType.java @@ -29,7 +29,7 @@ public class ThirdPartyAgentEnvDispatchType extends ThirdPartyAgentDispatch { private ReusedInfo reusedInfo; public ThirdPartyAgentEnvDispatchType(String envName, String workspace, String envProjectId, ThirdPartyAgentDockerInfo dockerInfo, ReusedInfo reusedInfo) { - super(envName, agentType, workspace, dockerInfo, reusedInfo); + super(envName, AgentType.NAME, workspace, dockerInfo, reusedInfo); this.envName = envName; this.workspace = workspace; this.envProjectId = envProjectId; diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentIDDispatchType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentIDDispatchType.java similarity index 95% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentIDDispatchType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentIDDispatchType.java index d342c17..091ca8b 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentIDDispatchType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/agent/ThirdPartyAgentIDDispatchType.java @@ -28,7 +28,7 @@ public class ThirdPartyAgentIDDispatchType extends ThirdPartyAgentDispatch { private ReusedInfo reusedInfo; public ThirdPartyAgentIDDispatchType(String displayName, String workspace, ThirdPartyAgentDockerInfo dockerInfo, ReusedInfo reusedInfo) { - super(displayName, agentType, workspace, dockerInfo, reusedInfo); + super(displayName, AgentType.NAME, workspace, dockerInfo, reusedInfo); this.displayName = displayName; this.workspace = workspace; this.dockerInfo = dockerInfo; diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/docker/DockerDispatchType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/docker/DockerDispatchType.java new file mode 100644 index 0000000..eef35ce --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/docker/DockerDispatchType.java @@ -0,0 +1,99 @@ +package cd.casic.ci.common.pipeline.type.docker; + +import cd.casic.ci.common.pipeline.type.BuildType; +import cd.casic.ci.common.pipeline.type.DispatchRouteKeySuffix; +import cd.casic.ci.common.pipeline.type.StoreDispatchType; +import cd.casic.ci.common.pipeline.utils.EnvUtils; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname DockerDispatchType + * @Description TODO + * @Date 2025/3/31 9:44 + */ +@Getter +@Setter +@EqualsAndHashCode(callSuper = true) +public class DockerDispatchType extends StoreDispatchType { + @JsonProperty("value") + @Schema(title = "docker构建版本", required = false) + private String dockerBuildVersion; + + @Schema(title = "镜像类型", required = false) + private ImageType imageType = ImageType.BKDEVOPS; + + @Schema(title = "凭证id", required = false) + private String credentialId = ""; + + @Schema(title = "凭证项目id", required = false) + private String credentialProject = ""; + + @Schema(title = "商店镜像代码", required = false) + private String imageCode = ""; + + @Schema(title = "商店镜像版本", required = false) + private String imageVersion = ""; + + @Schema(title = "商店镜像名称", required = false) + private String imageName = ""; + + @Schema(title = "docker资源配置ID", required = false) + private int performanceConfigId = 0; + + @Schema(title = "镜像仓库用户名", required = false) + private String imageRepositoryUserName = ""; + + @Schema(title = "镜像仓库密码", required = false) + private String imageRepositoryPassword = ""; + + public DockerDispatchType(String dockerBuildVersion, ImageType imageType, String credentialId, String credentialProject, String imageCode, String imageVersion, String imageName, int performanceConfigId, String imageRepositoryUserName, String imageRepositoryPassword) { + super( + dockerBuildVersion == null || dockerBuildVersion.isBlank() ? imageCode : dockerBuildVersion, + DispatchRouteKeySuffix.DOCKER_VM, + imageType, + credentialId, + credentialProject, + imageCode, + imageVersion, + imageName + ); + this.dockerBuildVersion = dockerBuildVersion; + this.imageType = imageType; + this.credentialId = credentialId; + this.credentialProject = credentialProject; + this.imageCode = imageCode; + this.imageVersion = imageVersion; + this.imageName = imageName; + this.performanceConfigId = performanceConfigId; + this.imageRepositoryUserName = imageRepositoryUserName; + this.imageRepositoryPassword = imageRepositoryPassword; + } + + @Override + public void cleanDataBeforeSave() { + this.dockerBuildVersion = this.dockerBuildVersion != null ? this.dockerBuildVersion.trim() : null; + this.credentialId = this.credentialId != null ? this.credentialId.trim() : null; + this.credentialProject = this.credentialProject != null ? this.credentialProject.trim() : null; + this.imageCode = this.imageCode != null ? this.imageCode.trim() : null; + this.imageVersion = this.imageVersion != null ? this.imageVersion.trim() : null; + this.imageName = this.imageName != null ? this.imageName.trim() : null; + } + + @Override + public BuildType buildType() { + return BuildType.valueOf(BuildType.DOCKER.name()); + } + + @Override + public void replaceField(Map variables) { + this.dockerBuildVersion = EnvUtils.parseEnv(this.dockerBuildVersion, variables); + this.credentialId = EnvUtils.parseEnv(this.credentialId, variables); + } +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/docker/ImageType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/docker/ImageType.java new file mode 100644 index 0000000..dd33962 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/docker/ImageType.java @@ -0,0 +1,35 @@ +package cd.casic.ci.common.pipeline.type.docker; + +/** + * @author by mianbin + * @Classname ImageType + * @Description TODO + * @Date 2025/3/31 9:42 + */ +public enum ImageType { + BKDEVOPS("devops"), // ops镜像 + BKSTORE("ops_store"), // ops镜像市场镜像,存储于artifactory的项目{projectCode}路径下 + THIRD("third"); // 第三方镜像 + + private final String type; + + ImageType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + + public static ImageType getType(String type) { + if (type == null) { + return BKDEVOPS; + } + for (ImageType imageType : ImageType.values()) { + if (imageType.type.equalsIgnoreCase(type)) { + return imageType; + } + } + return BKDEVOPS; + } +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/kubernetes/KubernetesDispatchType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/kubernetes/KubernetesDispatchType.java new file mode 100644 index 0000000..302e326 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/type/kubernetes/KubernetesDispatchType.java @@ -0,0 +1,130 @@ +package cd.casic.ci.common.pipeline.type.kubernetes; + +/** + * @author by mianbin + * @Classname KubernetesDispatchType + * @Description TODO + * @Date 2025/3/31 9:41 + */ + +import cd.casic.ci.common.pipeline.type.BuildType; +import cd.casic.ci.common.pipeline.type.DispatchRouteKeySuffix; +import cd.casic.ci.common.pipeline.type.StoreDispatchType; +import cd.casic.ci.common.pipeline.type.docker.ImageType; +import cd.casic.ci.common.pipeline.utils.EnvUtils; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.EqualsAndHashCode; + +import java.util.Map; + + +@EqualsAndHashCode(callSuper = true) +public class KubernetesDispatchType extends StoreDispatchType { + + /** + * Kubernetes构建版本 + */ + @JsonProperty("value") + private String kubernetesBuildVersion; + + /** + * 镜像类型,默认为BKDEVOPS + */ + private ImageType imageType = ImageType.BKDEVOPS; + + /** + * 凭证ID + */ + private String credentialId = ""; + + /** + * 凭证所属项目 + */ + private String credentialProject = ""; + + /** + * 商店镜像代码 + */ + private String imageCode = ""; + + /** + * 商店镜像版本 + */ + private String imageVersion = ""; + + /** + * 商店镜像名称 + */ + private String imageName = ""; + + /** + * Docker资源配置ID,默认为0 + */ + private int performanceConfigId = 0; + + /** + * 构造函数,初始化Kubernetes调度类型的相关参数 + * @param kubernetesBuildVersion Kubernetes构建版本 + * @param imageType 镜像类型 + * @param credentialId 凭证ID + * @param credentialProject 凭证所属项目 + * @param imageCode 商店镜像代码 + * @param imageVersion 商店镜像版本 + * @param imageName 商店镜像名称 + * @param performanceConfigId Docker资源配置ID + */ + public KubernetesDispatchType(String kubernetesBuildVersion, ImageType imageType, String credentialId, + String credentialProject, String imageCode, String imageVersion, String imageName, + int performanceConfigId) { + super( + kubernetesBuildVersion == null || kubernetesBuildVersion.isEmpty() ? imageCode : kubernetesBuildVersion, + DispatchRouteKeySuffix.KUBERNETES, + imageType, + credentialId, + credentialProject, + imageCode, + imageVersion, + imageName + ); + this.kubernetesBuildVersion = kubernetesBuildVersion; + this.imageType = imageType; + this.credentialId = credentialId; + this.credentialProject = credentialProject; + this.imageCode = imageCode; + this.imageVersion = imageVersion; + this.imageName = imageName; + this.performanceConfigId = performanceConfigId; + } + + /** + * 在保存数据之前清理数据,去除字符串字段的首尾空格 + */ + @Override + public void cleanDataBeforeSave() { + this.kubernetesBuildVersion = this.kubernetesBuildVersion != null ? this.kubernetesBuildVersion.trim() : null; + this.credentialId = this.credentialId != null ? this.credentialId.trim() : null; + this.credentialProject = this.credentialProject != null ? this.credentialProject.trim() : null; + this.imageCode = this.imageCode != null ? this.imageCode.trim() : null; + this.imageVersion = this.imageVersion != null ? this.imageVersion.trim() : null; + this.imageName = this.imageName != null ? this.imageName.trim() : null; + } + + /** + * 获取构建类型,返回Kubernetes类型 + * @return 构建类型 + */ + @Override + public BuildType buildType() { + return BuildType.valueOf(BuildType.KUBERNETES.name()); + } + + /** + * 根据变量映射替换字段值 + * @param variables 变量映射 + */ + @Override + public void replaceField(Map variables) { + this.kubernetesBuildVersion = EnvUtils.parseEnv(this.kubernetesBuildVersion, variables); + this.credentialId = EnvUtils.parseEnv(this.credentialId, variables); + } +} diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/BuildStatusSwitcher.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/BuildStatusSwitcher.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/BuildStatusSwitcher.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/BuildStatusSwitcher.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/CascadePropertyUtils.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/CascadePropertyUtils.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/CascadePropertyUtils.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/CascadePropertyUtils.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/Constants.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/Constants.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/Constants.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/Constants.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ElementUtils.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ElementUtils.java similarity index 83% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ElementUtils.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ElementUtils.java index ff7fe16..ad4a20c 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ElementUtils.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ElementUtils.java @@ -1,5 +1,9 @@ package cd.casic.ci.common.pipeline.utils; +import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.element.quality.QualityGateInElement; +import cd.casic.ci.common.pipeline.pojo.element.quality.QualityGateOutElement; + /** * @Author:mianbin * @Package:cd.casic.ci.common.pipeline.utils diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/EnvUtils.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/EnvUtils.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/EnvUtils.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/EnvUtils.java diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/HeartBeatUtils.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/HeartBeatUtils.java similarity index 100% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/HeartBeatUtils.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/HeartBeatUtils.java diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/MatrixContextUtils.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/MatrixContextUtils.java new file mode 100644 index 0000000..ca3d6cd --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/MatrixContextUtils.java @@ -0,0 +1,196 @@ +package cd.casic.ci.common.pipeline.utils; + +import cd.casic.ci.common.utils.YamlUtil; +import cd.casic.framework.commons.exception.ServerException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.networknt.schema.JsonSchema; +import com.networknt.schema.JsonSchemaFactory; +import com.networknt.schema.SpecVersion; +import com.networknt.schema.ValidationMessage; +import org.yaml.snakeyaml.Yaml; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +public class MatrixContextUtils { + + private static final String strategyJsonPattern = "^(\\$\\{\\{[ ]*fromJSON\\()([^()]+)(\\)[ ]*}})$"; + + private static final String schemaJson = "{\n" + + " \"type\": \"object\",\n" + + " \"required\": [],\n" + + " \"properties\": {\n" + + " \"include\": {\n" + + " \"description\": \"值格式为:List,用于给 matrix 的指定组合增加额外的属性,或者新增1个或多个组合,每个元素为一个 Object,或是一个'$'{{fromJSON(xxx)}}上下文\",\n" + + " \"oneOf\": [\n" + + " {\n" + + " \"type\": \"array\",\n" + + " \"items\": {\n" + + " \"type\": \"object\",\n" + + " \"required\": [],\n" + + " \"additionalProperties\": {\n" + + " \"anyOf\": [\n" + + " {\n" + + " \"type\": \"string\"\n" + + " },\n" + + " {\n" + + " \"type\": \"integer\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": \"string\",\n" + + " \"pattern\": \"" + strategyJsonPattern + "\"\n" + + " }\n" + + " ]\n" + + " },\n" + + " \"exclude\": {\n" + + " \"description\": \"值格式为:List,用于排除 matrix 中的一些组合,每个元素为一个 Object,或是一个'$'{{fromJSON(xxx)}}上下文\",\n" + + " \"oneOf\": [\n" + + " {\n" + + " \"type\": \"array\",\n" + + " \"items\": {\n" + + " \"type\": \"object\",\n" + + " \"required\": [],\n" + + " \"additionalProperties\": {\n" + + " \"anyOf\": [\n" + + " {\n" + + " \"type\": \"string\"\n" + + " },\n" + + " {\n" + + " \"type\": \"integer\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": \"string\",\n" + + " \"pattern\": \"" + strategyJsonPattern + "\"\n" + + " }\n" + + " ]\n" + + " },\n" + + " \"strategy\": {\n" + + " \"description\": \"值格式为:Object,,或是一个'$'{{fromJSON(xxx)}}上下文,定义的每个选项都有键和值,键将作为 matrix 上下文中的属性\",\n" + + " \"oneOf\": [\n" + + " {\n" + + " \"type\": \"object\",\n" + + " \"additionalProperties\": {\n" + + " \"anyOf\": [\n" + + " {\n" + + " \"type\": \"array\"\n" + + " },\n" + + " {\n" + + " \"type\": \"string\",\n" + + " \"pattern\": \"" + strategyJsonPattern + "\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": \"string\",\n" + + " \"pattern\": \"" + strategyJsonPattern + "\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " }\n" + + "}"; + + private static final ThreadLocal yaml = ThreadLocal.withInitial(Yaml::new); + + private static final JsonSchemaFactory schemaFactory = JsonSchemaFactory + .builder(JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7)) + .yamlMapper(YamlUtil.objectMapper) + .build(); + + /** + * 使用循环遍历笛卡尔乘积算法 + */ + public static List> loopCartesianProduct(List> input) { + List> acc = new ArrayList<>(); + acc.add(new ArrayList<>()); + for (List nextList : input) { + List> newAcc = new ArrayList<>(); + for (List list : acc) { + for (Object element : nextList) { + List newList = new ArrayList<>(list); + newList.add(element); + newAcc.add(newList); + } + } + acc = newAcc; + } + return acc; + } + + /** + * 使用递归遍历实现的笛卡尔乘积算法,因为容易导致堆栈溢出,仅用于单测校验 + */ + public static List> recursiveCartesianProduct(List> input) { + List> output = new ArrayList<>(); + product(input, output, 0, new ArrayList<>()); + return output; + } + + public static void schemaCheck(String originYaml) { + if (originYaml.isBlank()) { + return; + } + JsonNode yamlJson = YamlUtil.objectMapper.convertValue(yaml.get().load(originYaml), JsonNode.class); + yamlJson = replaceOn(yamlJson); + JsonSchema schema = schemaFactory.getSchema(schemaJson); + check(schema, yamlJson); + } + + private static void check(JsonSchema schema, JsonNode yaml) { + Set errors = schema.validate(yaml); + if (!errors.isEmpty()) { + throw new ServerException(-1000, errors.toString()); + } + } + + // Yaml规则下会将on当成true在消除锚点时会将On替换为true + private static JsonNode replaceOn(JsonNode node) { + JsonNode realOn = node.get("true"); + if (realOn == null) { + return node; + } + ObjectNode objectNode = (ObjectNode) node; + objectNode.set("on", realOn); + objectNode.remove("true"); + return objectNode; + } + + /** + * 笛卡尔乘积递归遍历操作: + * 原二维数组[input], 通过乘积转化后的数组[output], + * 层级参数[layer], 当前操作数组[currentList] + */ + private static void product(List> input, List> output, int layer, List currentList) { + if (layer < input.size() - 1) { + if (input.get(layer).isEmpty()) { + product(input, output, layer + 1, currentList); + } else { + for (Object element : input.get(layer)) { + List newList = new ArrayList<>(currentList); + newList.add(element); + product(input, output, layer + 1, newList); + } + } + } else if (layer == input.size() - 1) { + if (input.get(layer).isEmpty()) { + output.add(currentList); + } else { + for (Object element : input.get(layer)) { + List newList = new ArrayList<>(currentList); + newList.add(element); + output.add(newList); + } + } + } + } +} diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ModelUtils.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ModelUtils.java similarity index 78% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ModelUtils.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ModelUtils.java index 1aa0837..2557aaa 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ModelUtils.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ModelUtils.java @@ -1,10 +1,7 @@ package cd.casic.ci.common.pipeline.utils; import cd.casic.ci.common.pipeline.Model; -import cd.casic.ci.common.pipeline.container.Container; -import cd.casic.ci.common.pipeline.container.NormalContainer; -import cd.casic.ci.common.pipeline.container.TriggerContainer; -import cd.casic.ci.common.pipeline.container.VMBuildContainer; +import cd.casic.ci.common.pipeline.container.*; import cd.casic.ci.common.pipeline.enums.BuildStatus; import cd.casic.ci.common.pipeline.enums.JobRunCondition; import cd.casic.ci.common.pipeline.option.JobControlOption; @@ -13,6 +10,8 @@ import cd.casic.ci.common.pipeline.pojo.element.ElementAdditionalOptions; import cd.casic.ci.common.pipeline.pojo.element.trigger.ManualTriggerElement; import cd.casic.ci.common.pipeline.pojo.element.trigger.RemoteTriggerElement; import cd.casic.framework.commons.util.reflect.ReflectUtil; +import cn.hutool.json.JSON; +import cn.hutool.json.JSONUtil; import java.util.*; @@ -30,22 +29,26 @@ import static cd.casic.ci.common.pipeline.pojo.element.ElementAdditionalOptions. public class ModelUtils { public static void initContainerOldData(Container c) { if (c instanceof NormalContainer) { - if (c.getJobControlOption() == null) { - c.setJobControlOption(new JobControlOption( + NormalContainer var = (NormalContainer) c; + if (var.getJobControlOption() == null) { + + var.setJobControlOption(new JobControlOption( true, - c.getMaxRunningMinutes(), - String.valueOf(c.getMaxRunningMinutes()), - c.isEnableSkip() ? (c.getConditions() != null && !c.getConditions().isEmpty() ? JobRunCondition.CUSTOM_VARIABLE_MATCH_NOT_RUN : JobRunCondition.STAGE_RUNNING) : JobRunCondition.STAGE_RUNNING, - c.getConditions() + var.getMaxRunningMinutes(), + String.valueOf(var.getMaxRunningMinutes()), + var.getEnableSkip() ? (var.getConditions() != null && !var.getConditions().isEmpty() ? JobRunCondition.CUSTOM_VARIABLE_MATCH_NOT_RUN : JobRunCondition.STAGE_RUNNING) : JobRunCondition.STAGE_RUNNING, + var.getConditions() )); } } else if (c instanceof VMBuildContainer) { - if (c.getJobControlOption() == null) { - c.setJobControlOption(new JobControlOption( + VMBuildContainer var = (VMBuildContainer) c; + if (var.getJobControlOption() == null) { + var.setJobControlOption(new JobControlOption( true, - c.getMaxRunningMinutes(), - String.valueOf(c.getMaxRunningMinutes()), - JobRunCondition.STAGE_RUNNING + var.getMaxRunningMinutes(), + String.valueOf(var.getMaxRunningMinutes()), + JobRunCondition.STAGE_RUNNING, + null )); } } @@ -64,18 +67,22 @@ public class ModelUtils { } public static void refreshCanRetry(Model model) { - var lastStage = model.getStages().get(model.getStages().size() - 1); - if (lastStage.isFinally() && BuildStatus.parse(lastStage.getStatus()).isRunning()) { + List stages = model.getStages(); + if (stages.isEmpty()) { return; } - for (var s : model.getStages()) { - var stageStatus = BuildStatus.parse(s.getStatus()); + Stage lastStage = stages.get(stages.size() - 1); + if (lastStage.getFinallyStage() && BuildStatus.parse(lastStage.getStatus()).isRunning()) { + return; + } + for (Stage s : stages) { + BuildStatus stageStatus = BuildStatus.parse(s.getStatus()); s.setCanRetry(stageStatus.isFailure() || stageStatus.isCancel()); - for (var c : s.getContainers()) { + for (Container c : s.getContainers()) { initContainerOldData(c); - var jobStatus = BuildStatus.parse(c.getStatus()); + BuildStatus jobStatus = BuildStatus.parse(c.getStatus()); c.setCanRetry(jobStatus.isFailure() || jobStatus.isCancel()); - if (c.isCanRetry()) { + if (c.getCanRetry() != null && c.getCanRetry()) { refreshContainer(c); } } @@ -88,7 +95,7 @@ public class ModelUtils { } private static void refreshElement(Element element, List failElements) { - var additionalOptions = element.getAdditionalOptions(); + ElementAdditionalOptions additionalOptions = element.getAdditionalOptions(); if (additionalOptions == null || !additionalOptions.isEnable()) { return; } @@ -100,7 +107,7 @@ public class ModelUtils { } element.setCanRetry(additionalOptions.isManualRetry()); if (additionalOptions.isContinueWhenFailed()) { - if (additionalOptions.isManualSkip()) { + if (additionalOptions.getManualSkip()) { element.setCanSkip(true); } else { element.setCanRetry(null); @@ -115,14 +122,14 @@ public class ModelUtils { e.setCanRetry(null); }); } - if (element.isCanRetry()) { + if (element.getCanRetry()) { failElements.add(element); } } public static Model generatePipelineBuildModel(Map baseModelMap, Map modelFieldRecordMap) { - var modelStr = JsonUtil.toJson(generateBuildModelDetail(baseModelMap, modelFieldRecordMap), false); - return JsonUtil.to(modelStr, Model.class); + JSON parse = JSONUtil.parse(generateBuildModelDetail(baseModelMap, modelFieldRecordMap)); + return JSONUtil.toBean(JSONUtil.toJsonStr(parse), Model.class); } public static Map generateBuildModelDetail(Map baseModelMap, Map modelFieldRecordMap) { diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ObjectReplaceEnvVarUtil.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ObjectReplaceEnvVarUtil.java similarity index 97% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ObjectReplaceEnvVarUtil.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ObjectReplaceEnvVarUtil.java index 681d090..37dad70 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ObjectReplaceEnvVarUtil.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ObjectReplaceEnvVarUtil.java @@ -27,6 +27,7 @@ package cd.casic.ci.common.pipeline.utils; +import cd.casic.framework.commons.util.reflect.ReflectUtil; import cn.hutool.json.JSONUtil; import java.util.*; @@ -134,6 +135,6 @@ public class ObjectReplaceEnvVarUtil { * @return 是否是普通替换对象 */ private static Boolean isNormalReplaceEnvVar(Object obj) { - return obj == null || ReflectUtil.INSTANCE.isNativeType(obj) || obj instanceof String; + return obj == null || ReflectUtil.isNativeType(obj) || obj instanceof String; } } diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ParameterUtils.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ParameterUtils.java similarity index 89% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ParameterUtils.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ParameterUtils.java index fc40b81..56e5f1a 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ParameterUtils.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/ParameterUtils.java @@ -3,6 +3,7 @@ package cd.casic.ci.common.pipeline.utils; import cd.casic.ci.common.pipeline.pojo.BuildParameters; import cd.casic.ci.common.pipeline.pojo.element.Element; import cd.casic.framework.commons.util.json.JsonUtils; +import cn.hutool.json.JSONUtil; import java.util.List; import java.util.Map; @@ -17,7 +18,6 @@ import java.util.stream.Collectors; * @Filename:ParameterUtils * @description:Todo */ - public class ParameterUtils { public static String getListValueByKey(List list, String key) { var valueMap = list.stream().filter(params -> params.getKey().equals(key)).map(BuildParameters::getValue).collect(Collectors.toList()); @@ -38,10 +38,11 @@ public class ParameterUtils { if (json == null) { return null; } - var inputData = JsonUtil.toMap(json).get("input"); + Map var = JSONUtil.toBean(JSONUtil.toJsonStr(json), Map.class); + var inputData = var.get("input"); if (inputData == null) { return null; } - return JsonUtil.toMap(inputData); + return var; } } diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TransferUtil.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TransferUtil.java new file mode 100644 index 0000000..e54a431 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TransferUtil.java @@ -0,0 +1,72 @@ +package cd.casic.ci.common.pipeline.utils; + + +import org.json.JSONObject; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author:mianbin + * @Package:cd.casic.ci.common.pipeline.utils + * @Project:ops-pro + * @name:TransferUtil + * @Date:2025/03/26 16:09 + * @Filename:TransferUtil + * @description:Todo + */ +public class TransferUtil { + + /** + * 简化input, 如果是默认值则去掉 + * + * @param defaultValue 默认值的 JSONObject + * @param input 输入的参数 Map + * @return 简化后的可变 Map + */ + public static Map simplifyParams(JSONObject defaultValue, Map input) { + Map out = new HashMap<>(input); + if (defaultValue != null) { + java.util.Iterator keys = defaultValue.keys(); + while (keys.hasNext()) { + String key = keys.next(); + Object inputValue = out.get(key); + if (inputValue == null) { + continue; + } + JSONObject defaultObj = new JSONObject(); + defaultObj.put(key, defaultValue.get(key)); + JSONObject inputObj = new JSONObject(); + inputObj.put(key, inputValue); + if (defaultObj.similar(inputObj)) { + out.remove(key); + } + } + } + return out; + } + + /** + * 填充input,如果input没有,defaultValueMap有,则填充进去。 + * + * @param defaultValue 默认值的 JSONObject + * @param input 输入的参数 Map + * @return 合并后的可变 Map + */ + public static Map mixParams(JSONObject defaultValue, Map input) { + Map out = new HashMap<>(input != null ? input : new HashMap<>()); + if (defaultValue != null) { + java.util.Iterator keys = defaultValue.keys(); + while (keys.hasNext()) { + String key = keys.next(); + Object value = out.get(key); + if (value == null) { + out.put(key, defaultValue.get(key)); + } + } + } + return out; + } + + +} diff --git a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TriggerElementPropUtils.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TriggerElementPropUtils.java similarity index 99% rename from modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TriggerElementPropUtils.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TriggerElementPropUtils.java index 7a1c11d..48b1f82 100644 --- a/modules/ci-commons/common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TriggerElementPropUtils.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/TriggerElementPropUtils.java @@ -13,7 +13,6 @@ import java.util.List; * @Filename:TriggerElementPropUtils * @description:Todo */ - public class TriggerElementPropUtils { public static ElementProp vuexInput(String name, String value) { if (value == null || value.isBlank()) { diff --git a/modules/module-ci-common/pom.xml b/modules/module-ci-common/pom.xml new file mode 100644 index 0000000..509c139 --- /dev/null +++ b/modules/module-ci-common/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + cd.casic.boot + modules + ${revision} + + + module-ci-common + + ${project.artifactId} + + jar + + + + cd.casic.boot + commons + + + cd.casic.boot + spring-boot-starter-mybatis + + + com.networknt + json-schema-validator + + + org.json + json + + + cd.casic.boot + spring-boot-starter-test + + + + \ No newline at end of file diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/BaseConstant.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/BaseConstant.java similarity index 87% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/BaseConstant.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/BaseConstant.java index 0cb1968..6ce5159 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/BaseConstant.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/BaseConstant.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.constant; +package cd.casic.ci.common.constant; /** * @Classname BaseConstant diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/CommonConstants.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonConstants.java similarity index 99% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/CommonConstants.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonConstants.java index 6c56deb..f7b5fd8 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/CommonConstants.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonConstants.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.constant; +package cd.casic.ci.common.constant; /** * @Author:mianbin diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/CommonMessageCode.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonMessageCode.java similarity index 99% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/CommonMessageCode.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonMessageCode.java index 4c59937..a8e9994 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/CommonMessageCode.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonMessageCode.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.constant; +package cd.casic.ci.common.constant; /** * @Author:mianbin diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/HttpStatus.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/HttpStatus.java similarity index 99% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/HttpStatus.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/HttpStatus.java index 3fe23e9..a22fcd6 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/HttpStatus.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/HttpStatus.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.constant; +package cd.casic.ci.common.constant; /** * @Author:mianbin diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/LeafAllocConstant.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/LeafAllocConstant.java similarity index 98% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/LeafAllocConstant.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/LeafAllocConstant.java index fc1db6f..f8253fe 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/LeafAllocConstant.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/LeafAllocConstant.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.constant; +package cd.casic.ci.common.constant; /** * @Classname LeafAllocConstant diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/OpsHeader.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/OpsHeader.java similarity index 99% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/OpsHeader.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/OpsHeader.java index ce775ad..6560129 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/OpsHeader.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/OpsHeader.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.constant; +package cd.casic.ci.common.constant; /** diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/PipelineConstants.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/PipelineConstants.java similarity index 98% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/PipelineConstants.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/PipelineConstants.java index 8a514c3..c18634e 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/PipelineConstants.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/PipelineConstants.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.constant; +package cd.casic.ci.common.constant; /** * @Author:mianbin diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/StringConstant.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/StringConstant.java similarity index 95% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/StringConstant.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/StringConstant.java index 888c28f..dd31230 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/constant/StringConstant.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/StringConstant.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.constant; +package cd.casic.ci.common.constant; /** * @Author:mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/WebhookConstant.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/WebhookConstant.java new file mode 100644 index 0000000..5995532 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/WebhookConstant.java @@ -0,0 +1,178 @@ +package cd.casic.ci.common.constant; + +/** + * @author by mianbin + * @Classname WebhookConstant + * @Description TODO + * @Date 2025/4/1 16:55 + */ +public class WebhookConstant { + public static final String CI_RUN = "CI_RUN"; + public static final String CI_REF = "CI_REF"; + public static final String CI_REPO_OWNER = "CI_REPO_OWNER"; + public static final String CI_REPOSITORY = "CI_REPOSITORY"; + public static final String CI_BRANCH = "ci.branch"; + public static final String DELETE_EVENT = "delete"; + + public static final String REPO_WEBHOOK_REPO_TYPE = "CI_REPO_WEBHOOK_REPO_TYPE"; + public static final String REPO_WEBHOOK_REPO_URL = "CI_REPO_WEBHOOK_REPO_URL"; + public static final String REPO_WEBHOOK_REPO_NAME = "CI_REPO_WEBHOOK_NAME"; + public static final String REPO_WEBHOOK_REPO_ALIAS_NAME = "CI_REPO_WEBHOOK_ALIAS_NAME"; + public static final String REPO_WEBHOOK_HASH_ID = "CI_REPO_WEB_HOOK_HASHID"; + public static final String REPO_WEBHOOK_REPO_AUTH_USER = "CI_REPO_WEBHOOK_AUTH_USER"; + + public static final String REPO_GIT_WEBHOOK_COMMIT_MESSAGE = "CI_REPO_GIT_WEBHOOK_COMMIT_MESSAGE"; + public static final String REPO_GIT_WEBHOOK_COMMIT_ID = "CI_REPO_GIT_WEBHOOK_COMMITID"; + public static final String REPO_GIT_WEBHOOK_COMMIT_ID_SHORT = "CI_REPO_GIT_WEBHOOK_COMMITID_SHORT"; + public static final String REPO_GIT_WEBHOOK_EVENT_TYPE = "CI_REPO_GIT_WEBHOOK_EVENT_TYPE"; + public static final String REPO_GIT_WEBHOOK_INCLUDE_BRANCHS = "CI_REPO_GIT_WEBHOOK_INCLUDE_BRANCH"; + public static final String REPO_GIT_WEBHOOK_EXCLUDE_BRANCHS = "CI_REPO_GIT_WEBHOOK_EXCLUDE_BRANCH"; + public static final String REPO_GIT_WEBHOOK_INCLUDE_PATHS = "CI_REPO_GIT_WEBHOOK_INCLUDE_PATHS"; + public static final String REPO_GIT_WEBHOOK_EXCLUDE_PATHS = "CI_REPO_GIT_WEBHOOK_EXCLUDE_PATHS"; + public static final String REPO_GIT_WEBHOOK_EXCLUDE_USERS = "CI_REPO_GIT_WEBHOOK_EXCLUDE_USERS"; + public static final String REPO_GIT_WEBHOOK_INCLUDE_USERS = "CI_REPO_GIT_WEBHOOK_INCLUDE_USERS"; + public static final String REPO_GIT_WEBHOOK_BRANCH = "CI_REPO_GIT_WEBHOOK_BRANCH"; + public static final String REPO_GIT_MANUAL_UNLOCK = "CI_REPO_GIT_MANUAL_UNLOCK"; + public static final String REPO_GIT_WEBHOOK_ENABLE_CHECK = "REPO_GIT_WEBHOOK_ENABLE_CHECK"; + + public static final String REPO_GIT_WEBHOOK_PUSH_USERNAME = "CI_REPO_GIT_WEBHOOK_PUSH_USERNAME"; + public static final String REPO_GIT_WEBHOOK_PUSH_BEFORE_COMMIT = "REPO_GIT_WEBHOOK_PUSH_BEFORE_COMMIT"; + public static final String REPO_GIT_WEBHOOK_PUSH_AFTER_COMMIT = "REPO_GIT_WEBHOOK_PUSH_AFTER_COMMIT"; + public static final String REPO_GIT_WEBHOOK_PUSH_TOTAL_COMMIT = "REPO_GIT_WEBHOOK_PUSH_TOTAL_COMMIT"; + public static final String REPO_GIT_WEBHOOK_PUSH_COMMIT_PREFIX = "REPO_GIT_WEBHOOK_PUSH_COMMIT_"; + public static final String REPO_GIT_WEBHOOK_PUSH_COMMIT_MSG_PREFIX = "REPO_GIT_WEBHOOK_PUSH_COMMIT_MSG_"; + public static final String REPO_GIT_WEBHOOK_PUSH_COMMIT_TIMESTAMP_PREFIX = "REPO_GIT_WEBHOOK_PUSH_COMMIT_TIMESTAMP_"; + public static final String REPO_GIT_WEBHOOK_PUSH_COMMIT_AUTHOR_PREFIX = "REPO_GIT_WEBHOOK_PUSH_COMMIT_AUTHOR_"; + public static final String REPO_GIT_WEBHOOK_PUSH_ADD_FILE_PREFIX = "REPO_GIT_WEBHOOK_PUSH_ADD_FILE_"; + public static final String REPO_GIT_WEBHOOK_PUSH_MODIFY_FILE_PREFIX = "REPO_GIT_WEBHOOK_PUSH_MODIFY_FILE_"; + public static final String REPO_GIT_WEBHOOK_PUSH_DELETE_FILE_PREFIX = "REPO_GIT_WEBHOOK_PUSH_DELETE_FILE_"; + public static final String REPO_GIT_WEBHOOK_PUSH_ADD_FILE_COUNT = "REPO_GIT_WEBHOOK_PUSH_ADD_FILE_COUNT"; + public static final String REPO_GIT_WEBHOOK_PUSH_MODIFY_FILE_COUNT = "REPO_GIT_WEBHOOK_PUSH_MODIFY_FILE_COUNT"; + public static final String REPO_GIT_WEBHOOK_PUSH_DELETE_FILE_COUNT = "REPO_GIT_WEBHOOK_PUSH_DELETE_FILE_COUNT"; + public static final String REPO_GIT_WEBHOOK_PUSH_OPERATION_KIND = "REPO_GIT_WEBHOOK_PUSH_OPERATION_KIND"; + public static final String REPO_GIT_WEBHOOK_PUSH_ACTION_KIND = "REPO_GIT_WEBHOOK_PUSH_ACTION_KIND"; + public static final String REPO_GIT_WEBHOOK_PUSH_PROJECT_ID = "REPO_GIT_WEBHOOK_PUSH_PROJECT_ID"; + + public static final String REPO_GIT_WEBHOOK_FINAL_INCLUDE_BRANCH = "CI_GIT_WEBHOOK_FINAL_INCLUDE_BRANCH"; + public static final String REPO_GIT_WEBHOOK_FINAL_INCLUDE_PATH = "CI_GIT_WEBHOOK_FINAL_INCLUDE_PATH"; + + public static final String REPO_GIT_WEBHOOK_MR_AUTHOR = "CI_REPO_GIT_WEBHOOK_MR_AUTHOR"; + public static final String REPO_GIT_WEBHOOK_MR_ACTION = "CI_REPO_GIT_WEBHOOK_MR_ACTION"; + public static final String REPO_GIT_WEBHOOK_MR_TARGET_URL = "CI_REPO_GIT_WEBHOOK_TARGET_URL"; + public static final String REPO_GIT_WEBHOOK_MR_SOURCE_URL = "CI_REPO_GIT_WEBHOOK_SOURCE_URL"; + public static final String REPO_GIT_WEBHOOK_MR_TARGET_BRANCH = "CI_REPO_GIT_WEBHOOK_TARGET_BRANCH"; + public static final String REPO_GIT_WEBHOOK_MR_SOURCE_BRANCH = "CI_REPO_GIT_WEBHOOK_SOURCE_BRANCH"; + public static final String REPO_GIT_WEBHOOK_MR_CREATE_TIME = "CI_REPO_GIT_WEBHOOK_MR_CREATE_TIME"; + public static final String REPO_GIT_WEBHOOK_MR_UPDATE_TIME = "CI_REPO_GIT_WEBHOOK_MR_UPDATE_TIME"; + public static final String REPO_GIT_WEBHOOK_MR_CREATE_TIMESTAMP = "CI_REPO_GIT_WEBHOOK_MR_CREATE_TIMESTAMP"; + public static final String REPO_GIT_WEBHOOK_MR_UPDATE_TIMESTAMP = "CI_REPO_GIT_WEBHOOK_MR_UPDATE_TIMESTAMP"; + public static final String REPO_GIT_WEBHOOK_MR_ID = "CI_REPO_GIT_WEBHOOK_MR_ID"; + public static final String REPO_GIT_WEBHOOK_MR_NUMBER = "CI_REPO_GIT_WEBHOOK_MR_NUMBER"; + public static final String REPO_GIT_WEBHOOK_MR_DESCRIPTION = "CI_REPO_GIT_WEBHOOK_MR_DESC"; + public static final String REPO_GIT_WEBHOOK_MR_TITLE = "CI_REPO_GIT_WEBHOOK_MR_TITLE"; + public static final String REPO_GIT_WEBHOOK_MR_ASSIGNEE = "CI_REPO_GIT_WEBHOOK_MR_ASSIGNEE"; + public static final String REPO_GIT_WEBHOOK_MR_URL = "CI_REPO_GIT_WEBHOOK_MR_URL"; + public static final String REPO_GIT_WEBHOOK_MR_REVIEWERS = "CI_REPO_GIT_WEBHOOK_MR_REVIEWERS"; + public static final String REPO_GIT_WEBHOOK_MR_MILESTONE = "CI_REPO_GIT_WEBHOOK_MR_MILESTONE"; + public static final String REPO_GIT_WEBHOOK_MR_MILESTONE_ID = "CI_REPO_GIT_WEBHOOK_MR_MILESTONE_ID"; + public static final String REPO_GIT_WEBHOOK_MR_MILESTONE_DUE_DATE = "CI_REPO_GIT_WEBHOOK_MR_MILESTONE_DUE_DATE"; + public static final String REPO_GIT_WEBHOOK_MR_LABELS = "CI_REPO_GIT_WEBHOOK_MR_LABELS"; + public static final String REPO_GIT_WEBHOOK_MR_LAST_COMMIT = "REPO_GIT_WEBHOOK_MR_LAST_COMMIT"; + public static final String REPO_GIT_WEBHOOK_MR_LAST_COMMIT_MSG = "REPO_GIT_WEBHOOK_MR_LAST_COMMIT_MSG"; + public static final String REPO_GIT_WEBHOOK_MR_MERGE_TYPE = "REPO_GIT_WEBHOOK_MR_MERGE_TYPE"; + public static final String REPO_GIT_WEBHOOK_MR_MERGE_COMMIT_SHA = "REPO_GIT_WEBHOOK_MR_MERGE_COMMIT_SHA"; + public static final String REPO_GIT_WEBHOOK_MR_BASE_COMMIT = "REPO_GIT_WEBHOOK_MR_BASE_COMMIT"; + public static final String REPO_GIT_WEBHOOK_MR_TARGET_COMMIT = "REPO_GIT_WEBHOOK_MR_TARGET_COMMIT"; + public static final String REPO_GIT_WEBHOOK_MR_SOURCE_COMMIT = "REPO_GIT_WEBHOOK_MR_SOURCE_COMMIT"; + + public static final String REPO_GIT_WEBHOOK_REVIEW_REVIEWABLE_ID = "CI_REPO_GIT_WEBHOOK_REVIEW_REVIEWABLE_ID"; + public static final String REPO_GIT_WEBHOOK_REVIEW_REVIEWABLE_TYPE = "CI_REPO_GIT_WEBHOOK_REVIEW_REVIEWABLE_TYPE"; + public static final String REPO_GIT_WEBHOOK_REVIEW_RESTRICT_TYPE = "CI_REPO_GIT_WEBHOOK_REVIEW_RESTRICT_TYPE"; + public static final String REPO_GIT_WEBHOOK_REVIEW_APPROVING_REVIEWERS = "CI_REPO_GIT_WEBHOOK_REVIEW_APPROVING_REVIEWERS"; + public static final String REPO_GIT_WEBHOOK_REVIEW_APPROVED_REVIEWERS = "CI_REPO_GIT_WEBHOOK_REVIEW_APPROVED_REVIEWERS"; + public static final String REPO_GIT_WEBHOOK_REVIEW_REVIEWERS = "CI_REPO_GIT_WEBHOOK_REVIEW_REVIEWERS"; + public static final String REPO_GIT_WEBHOOK_REVIEW_STATE = "CI_REPO_GIT_WEBHOOK_REVIEW_STATE"; + public static final String REPO_GIT_WEBHOOK_REVIEW_OWNER = "CI_REPO_GIT_WEBHOOK_REVIEW_OWNER"; + public static final String REPO_GIT_WEBHOOK_REVIEW_ID = "CI_REPO_GIT_WEBHOOK_REVIEW_ID"; + public static final String REPO_GIT_WEBHOOK_REVIEW_IID = "CI_REPO_GIT_WEBHOOK_REVIEW_IID"; + public static final String REPO_GIT_WEBHOOK_REVIEW_SOURCE_BRANCH = "CI_REPO_GIT_WEBHOOK_REVIEW_SOURCE_BRANCH"; + public static final String REPO_GIT_WEBHOOK_REVIEW_SOURCE_PROJECT_ID = "CI_REPO_GIT_WEBHOOK_REVIEW_SOURCE_PROJECT_ID"; + public static final String REPO_GIT_WEBHOOK_REVIEW_SOURCE_COMMIT = "CI_REPO_GIT_WEBHOOK_REVIEW_SOURCE_COMMIT"; + public static final String REPO_GIT_WEBHOOK_REVIEW_TARGET_COMMIT = "CI_REPO_GIT_WEBHOOK_REVIEW_TARGET_COMMIT"; + public static final String REPO_GIT_WEBHOOK_REVIEW_TARGET_BRANCH = "CI_REPO_GIT_WEBHOOK_REVIEW_TARGET_BRANCH"; + public static final String REPO_GIT_WEBHOOK_REVIEW_TARGET_PROJECT_ID = "CI_REPO_GIT_WEBHOOK_REVIEW_TARGET_PROJECT_ID"; + + public static final String REPO_GIT_WEBHOOK_TAG_NAME = "CI_REPO_GIT_WEBHOOK_TAG_NAME"; + public static final String REPO_GIT_WEBHOOK_TAG_OPERATION = "CI_REPO_GIT_WEBHOOK_TAG_OPERATION"; + public static final String REPO_GIT_WEBHOOK_TAG_USERNAME = "CI_REPO_GIT_WEBHOOK_TAG_USERNAME"; + public static final String REPO_GIT_WEBHOOK_TAG_CREATE_FROM = "CI_REPO_GIT_WEBHOOK_TAG_CREATE_FROM"; + + public static final String REPO_GITHUB_WEBHOOK_CREATE_REF_NAME = "CI_REPO_GITHUB_WEBHOOK_CREATE_REF_NAME"; + public static final String REPO_GITHUB_WEBHOOK_CREATE_REF_TYPE = "CI_REPO_GITHUB_WEBHOOK_CREATE_REF_TYPE"; + public static final String REPO_GITHUB_WEBHOOK_CREATE_USERNAME = "CI_REPO_GITHUB_WEBHOOK_CREATE_USERNAME"; + + public static final String REPO_SVN_WEBHOOK_REVERSION = "CI_REPO_SVN_WEBHOOK_REVERSION"; + public static final String REPO_SVN_WEBHOOK_USERNAME = "CI_REPO_SVN_WEBHOOK_USERNAME"; + public static final String REPO_SVN_WEBHOOK_COMMIT_TIME = "CI_REPO_SVN_WEBHOOK_COMMIT_TIME"; + public static final String REPO_SVN_WEBHOOK_RELATIVE_PATH = "CI_REPO_SVN_WEBHOOK_INCLUDE_PATHS"; + public static final String REPO_SVN_WEBHOOK_EXCLUDE_PATHS = "CI_REPO_SVN_WEBHOOK_EXCLUDE_PATHS"; + public static final String REPO_SVN_WEBHOOK_INCLUDE_USERS = "CI_REPO_SVN_WEBHOOK_INCLUDE_USERS"; + public static final String REPO_SVN_WEBHOOK_EXCLUDE_USERS = "CI_REPO_SVN_WEBHOOK_EXCLUDE_USERS"; + public static final String REPO_SVN_WEBHOOK_FINAL_INCLUDE_PATH = "CI_REPO_SVN_WEBHOOK_FINAL_INCLUDE_PATH"; + + public static final String PIPELINE_WEBHOOK_MR_ID = "CI_HOOK_MR_ID"; // hookMergeRequestId + public static final String PIPELINE_WEBHOOK_MR_COMMITTER = "CI_HOOK_MR_COMMITTER"; // "hookMergeRequest_committer" + public static final String PIPELINE_WEBHOOK_SOURCE_BRANCH = "CI_HOOK_SOURCE_BRANCH"; // hookSourceBranch + public static final String PIPELINE_WEBHOOK_TARGET_BRANCH = "CI_HOOK_TARGET_BRANCH"; // hookTargetBranch + public static final String PIPELINE_WEBHOOK_SOURCE_PROJECT_ID = "CI_HOOK_SOURCE_PROJECT_ID"; + public static final String PIPELINE_WEBHOOK_TARGET_PROJECT_ID = "CI_HOOK_TARGET_PROJECT_ID"; + public static final String PIPELINE_WEBHOOK_SOURCE_REPO_NAME = "CI_HOOK_SOURCE_REPO_NAME"; + public static final String PIPELINE_WEBHOOK_TARGET_REPO_NAME = "CI_HOOK_TARGET_REPO_NAME"; + public static final String MATCH_BRANCH = "matchBranch"; + public static final String MATCH_PATHS = "matchPaths"; + public static final String GIT_MR_NUMBER = "CI_GIT_MR_NUMBER"; // git_mr_number + public static final String GITHUB_PR_NUMBER = "CI_GITHUB_PR_NUMBER"; // github_pr_number + + public static final String REPO_P4_WEBHOOK_P4PORT = "CI_REPO_P4_WEBHOOK_P4PORT"; + public static final String REPO_P4_WEBHOOK_EVENT_TYPE = "CI_REPO_P4_WEBHOOK_EVENT_TYPE"; + public static final String REPO_P4_WEBHOOK_INCLUDE_PATHS = "CI_REPO_P4_WEBHOOK_INCLUDE_PATHS"; + public static final String REPO_P4_WEBHOOK_EXCLUDE_PATHS = "CI_REPO_P4_WEBHOOK_EXCLUDE_PATHS"; + public static final String REPO_P4_WEBHOOK_CHANGE = "CI_REPO_P4_WEBHOOK_CHANGE"; + + public static final String PIPELINE_WEBHOOK_REVISION = "CI_HOOK_REVISION"; // hookRevision + public static final String PIPELINE_WEBHOOK_BRANCH = "CI_HOOK_BRANCH"; // hookBranch + public static final String PIPELINE_WEBHOOK_SOURCE_URL = "CI_HOOK_SOURCE_URL"; // hookSourceUrl + public static final String PIPELINE_WEBHOOK_TARGET_URL = "CI_HOOK_TARGET_URL"; // hookTargetUrl + public static final String PIPELINE_WEBHOOK_REPO = "CI_HOOK_REPO"; // hookRepo + public static final String PIPELINE_WEBHOOK_REPO_TYPE = "CI_HOOK_REPO_TYPE"; // hookRepoType + public static final String PIPELINE_WEBHOOK_BLOCK = "CI_HOOK_BLOCK"; // hookBlock + public static final String PIPELINE_WEBHOOK_TYPE = "CI_HOOK_TYPE"; // hookType + public static final String PIPELINE_WEBHOOK_EVENT_TYPE = "CI_HOOK_EVENT_TYPE"; // hookEventType + public static final String PIPELINE_REPO_NAME = "CI_REPO_NAME"; // "repoName" + public static final String PIPELINE_WEBHOOK_COMMIT_MESSAGE = "CI_HOOK_MESSAGE"; // hook message + public static final String PIPELINE_START_WEBHOOK_USER_ID = "CI_START_WEBHOOK_USER_ID"; // "pipeline.start.webhook.user.id" + public static final String PIPELINE_WEBHOOK_QUEUE = "CI_HOOK_QUEUE"; + + // issue事件 + public static final String REPO_GIT_WEBHOOK_ISSUE_TITLE = "CI_REPO_GIT_WEBHOOK_ISSUE_TITLE"; + public static final String REPO_GIT_WEBHOOK_ISSUE_ID = "CI_REPO_GIT_WEBHOOK_ISSUE_ID"; + public static final String REPO_GIT_WEBHOOK_ISSUE_IID = "CI_REPO_GIT_WEBHOOK_ISSUE_IID"; + public static final String REPO_GIT_WEBHOOK_ISSUE_DESCRIPTION = "CI_REPO_GIT_WEBHOOK_ISSUE_DESCRIPTION"; + public static final String REPO_GIT_WEBHOOK_ISSUE_STATE = "CI_REPO_GIT_WEBHOOK_ISSUE_STATE"; + public static final String REPO_GIT_WEBHOOK_ISSUE_OWNER = "CI_REPO_GIT_WEBHOOK_ISSUE_OWNER"; // issue 的负责人 + public static final String REPO_GIT_WEBHOOK_ISSUE_URL = "CI_REPO_GIT_WEBHOOK_ISSUE_URL"; + public static final String REPO_GIT_WEBHOOK_ISSUE_MILESTONE_ID = "CI_REPO_GIT_WEBHOOK_ISSUE_MILESTONE_ID"; + public static final String REPO_GIT_WEBHOOK_ISSUE_ACTION = "CI_REPO_GIT_WEBHOOK_ISSUE_ACTION"; + + // note事件 + public static final String PIPELINE_WEBHOOK_NOTE_COMMENT = "PIPELINE_WEBHOOK_NOTE_COMMENT"; + public static final String PIPELINE_WEBHOOK_NOTE_ID = "PIPELINE_WEBHOOK_NOTE_ID"; + public static final String REPO_GIT_WEBHOOK_NOTE_COMMENT = "CI_REPO_GIT_WEBHOOK_NOTE_COMMENT"; + public static final String REPO_GIT_WEBHOOK_NOTE_ID = "CI_REPO_GIT_WEBHOOK_NOTE_ID"; + public static final String REPO_GIT_WEBHOOK_NOTE_PROJECT_ID = "CI_REPO_GIT_WEBHOOK_NOTE_PROJECT_ID"; + public static final String REPO_GIT_WEBHOOK_NOTE_NOTEABLE_TYPE = "CI_REPO_GIT_WEBHOOK_NOTE_NOTEABLE_TYPE"; + public static final String REPO_GIT_WEBHOOK_NOTE_AUTHOR_ID = "CI_REPO_GIT_WEBHOOK_NOTE_AUTHOR_ID"; + public static final String REPO_GIT_WEBHOOK_NOTE_CREATED_AT = "CI_REPO_GIT_WEBHOOK_NOTE_CREATED_AT"; + public static final String REPO_GIT_WEBHOOK_NOTE_UPDATED_AT = "CI_REPO_GIT_WEBHOOK_NOTE_UPDATED_AT"; + public static final String REPO_GIT_WEBHOOK_NOTE_URL = "CI_REPO_GIT_WEBHOOK_NOTE_URL"; +} diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/AgentAction.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentAction.java similarity index 89% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/AgentAction.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentAction.java index 3cfcf5c..cf4766c 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/AgentAction.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentAction.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/AgentStatus.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentStatus.java similarity index 97% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/AgentStatus.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentStatus.java index 8463eaf..6b9b09b 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/AgentStatus.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentStatus.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BkStyleEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BkStyleEnum.java similarity index 97% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BkStyleEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BkStyleEnum.java index 601e4f5..7ab1d04 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BkStyleEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BkStyleEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; /** * @Classname StyleEnum diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BuildReviewType.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BuildReviewType.java similarity index 92% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BuildReviewType.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BuildReviewType.java index df8c2aa..943aec0 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BuildReviewType.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BuildReviewType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BusTypeEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BusTypeEnum.java similarity index 89% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BusTypeEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BusTypeEnum.java index 8d267bb..29086e1 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/BusTypeEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BusTypeEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CheckoutRepositoryType.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CheckoutRepositoryType.java similarity index 94% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CheckoutRepositoryType.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CheckoutRepositoryType.java index 0299181..0db1964 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CheckoutRepositoryType.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CheckoutRepositoryType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CommonStatusEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CommonStatusEnum.java similarity index 95% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CommonStatusEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CommonStatusEnum.java index 004188e..8ec9aed 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CommonStatusEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CommonStatusEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.commons.enums; +package cd.casic.ci.common.enums; import cd.casic.framework.commons.core.IntArrayValuable; import lombok.AllArgsConstructor; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CrudEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CrudEnum.java similarity index 91% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CrudEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CrudEnum.java index cc352ea..540e7cc 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/CrudEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CrudEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/DateIntervalEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/DateIntervalEnum.java similarity index 96% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/DateIntervalEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/DateIntervalEnum.java index 5677d57..fd3a14b 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/DateIntervalEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/DateIntervalEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.commons.enums; +package cd.casic.ci.common.enums; import cd.casic.framework.commons.core.IntArrayValuable; import cn.hutool.core.util.ArrayUtil; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/EnumLoader.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumLoader.java similarity index 96% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/EnumLoader.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumLoader.java index 98dba8b..609cf11 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/EnumLoader.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumLoader.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.extern.slf4j.Slf4j; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/EnumModifier.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumModifier.java similarity index 86% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/EnumModifier.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumModifier.java index 312b76e..ab27ba7 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/EnumModifier.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumModifier.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; /** * @Author:mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ErrorCode.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ErrorCode.java new file mode 100644 index 0000000..905b22f --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ErrorCode.java @@ -0,0 +1,36 @@ +package cd.casic.ci.common.enums; + +/** + * @author by mianbin + * @Classname ErrorCode + * @Description TODO + * @Date 2025/4/1 15:00 + */ +public class ErrorCode { + // 蓝盾系统错误 + public static final int SYSTEM_DAEMON_INTERRUPTED = 2189500; // 守护进程中断 + public static final int SYSTEM_SERVICE_ERROR = 2189501; // 系统内部服务调用出错 + public static final int SYSTEM_OUTTIME_ERROR = 2189502; // 执行请求超时 + public static final int SYSTEM_WORKER_LOADING_ERROR = 2189503; // worker插件加载出错 + public static final int SYSTEM_WORKER_INITIALIZATION_ERROR = 2189504; // 构建机拉起出错 + public static final int SYSTEM_INNER_TASK_ERROR = 2189505; // 系统任务执行出错 + // 第三方接入平台错误 + public static final int THIRD_PARTY_INTERFACE_ERROR = 2199501; // 第三方接口调用错误 + public static final int THIRD_PARTY_BUILD_ENV_ERROR = 2199502; // 第三方构建环境错误 + // 插件执行错误 + public static final int PLUGIN_DEFAULT_ERROR = 2199001; // 插件异常默认 + // 用户使用错误 + public static final int USER_INPUT_INVAILD = 2199002; // 用户输入数据有误 + public static final int USER_RESOURCE_NOT_FOUND = 2199003; // 找不到对应系统资源 + public static final int USER_TASK_OPERATE_FAIL = 2199004; // 插件执行过程出错 + public static final int USER_JOB_OUTTIME_LIMIT = 2199005; // 用户Job排队超时(自行限制) + public static final int USER_TASK_OUTTIME_LIMIT = 2199006; // 用户插件执行超时(自行限制) + public static final int USER_QUALITY_CHECK_FAIL = 2199007; // 质量红线检查失败 + public static final int USER_SCRIPT_COMMAND_INVAILD = 2199009; // 脚本命令无法正常执行 + public static final int USER_STAGE_FASTKILL_TERMINATE = 2199010; // 因用户配置了FastKill导致的终止执行 + public static final int USER_SCRIPT_TASK_FAIL = 2199011; // bash脚本发生用户错误 + + private ErrorCode() { + // 私有构造函数,防止实例化 + } +} diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/FrontendTypeEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/FrontendTypeEnum.java similarity index 95% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/FrontendTypeEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/FrontendTypeEnum.java index 7a51f43..4a71a37 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/FrontendTypeEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/FrontendTypeEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/OSType.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/OSType.java similarity index 89% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/OSType.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/OSType.java index ab70c4d..0c9b1a7 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/OSType.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/OSType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepoYamlSyncStatusEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepoYamlSyncStatusEnum.java new file mode 100644 index 0000000..131d5d4 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepoYamlSyncStatusEnum.java @@ -0,0 +1,23 @@ +package cd.casic.ci.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author by mianbin + * @Classname RepoYamlSyncStatusEnum + * @Description TODO + * @Date 2025/4/1 20:13 + */ +@AllArgsConstructor +@Getter +public enum RepoYamlSyncStatusEnum { + // 同步中 + SYNC("SYNC"), + // 同步成功 + SUCCEED("SUCCEED"), + // 同步失败 + FAILED("FAILED"); + + private final String value; +} diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RepositoryConfig.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryConfig.java similarity index 83% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RepositoryConfig.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryConfig.java index 38a96ab..c0d6ef5 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RepositoryConfig.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryConfig.java @@ -1,5 +1,6 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; +import cd.casic.framework.commons.exception.ServerException; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -38,16 +39,16 @@ public class RepositoryConfig { switch (repositoryType) { case ID: if (repositoryHashId == null || repositoryHashId.isBlank()) { - throw new ParamBlankException("代码库HashId为空"); + throw new ServerException(-1000, "代码库HashId为空"); } return repositoryHashId; case NAME: if (repositoryName == null || repositoryName.isBlank()) { - throw new ParamBlankException("代码库名为空"); + throw new ServerException(-1000, "代码库名为空"); } return repositoryName; default: - throw new ParamBlankException("未知的代码库类型"); + throw new ServerException(-1000, "未知的代码库类型"); } } @@ -56,7 +57,7 @@ public class RepositoryConfig { try { return URLEncoder.encode(getRepositoryId(), "UTF-8"); } catch (Exception e) { - throw new ParamBlankException("编码失败: " + e.getMessage()); + throw new ServerException(-1000, "编码失败: " + e.getMessage()); } } diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RepositoryType.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryType.java similarity index 92% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RepositoryType.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryType.java index 3ebe480..9fad104 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RepositoryType.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RequestChannelTypeEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RequestChannelTypeEnum.java similarity index 91% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RequestChannelTypeEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RequestChannelTypeEnum.java index 69da699..8feac49 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/RequestChannelTypeEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RequestChannelTypeEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/ScmCode.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmCode.java similarity index 95% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/ScmCode.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmCode.java index 94e918c..e1598bb 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/ScmCode.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmCode.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/ScmType.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmType.java similarity index 96% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/ScmType.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmType.java index 0e7cb08..9b33db1 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/ScmType.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/SubjectScopeType.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SubjectScopeType.java similarity index 93% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/SubjectScopeType.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SubjectScopeType.java index b539cad..70cd3f9 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/SubjectScopeType.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SubjectScopeType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; /** diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/SystemModuleEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SystemModuleEnum.java similarity index 97% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/SystemModuleEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SystemModuleEnum.java index 369c412..4f309c7 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/SystemModuleEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SystemModuleEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; /** * @author mianbin diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/TaskStatusEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TaskStatusEnum.java similarity index 92% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/TaskStatusEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TaskStatusEnum.java index be1c345..3c6bfff 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/TaskStatusEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TaskStatusEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/TriggerRepositoryType.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TriggerRepositoryType.java similarity index 94% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/TriggerRepositoryType.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TriggerRepositoryType.java index 3715ace..3cfcf4b 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/TriggerRepositoryType.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TriggerRepositoryType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.enums; +package cd.casic.ci.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/UserTypeEnum.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/UserTypeEnum.java similarity index 96% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/UserTypeEnum.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/UserTypeEnum.java index 2cb048c..76ca06c 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/enums/UserTypeEnum.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/UserTypeEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.commons.enums; +package cd.casic.ci.common.enums; import cd.casic.framework.commons.core.IntArrayValuable; import cn.hutool.core.util.ArrayUtil; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/ExpressionOutput.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/ExpressionOutput.java new file mode 100644 index 0000000..7d0adc8 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/ExpressionOutput.java @@ -0,0 +1,11 @@ +package cd.casic.ci.common.functions; + +/** + * @author by mianbin + * @Classname ExpressionOutput + * @Description TODO + * @Date 2025/3/31 11:30 + */ +public interface ExpressionOutput { + void writeDebugLog(String content); +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/IFunctionInfo.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/IFunctionInfo.java new file mode 100644 index 0000000..c21b703 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/IFunctionInfo.java @@ -0,0 +1,23 @@ +package cd.casic.ci.common.functions; + +import java.util.function.Function; + +/** + * @author by mianbin + * @Classname IFunctionInfo + * @Description TODO + * @Date 2025/3/31 11:12 + */ +public interface IFunctionInfo { + // Obtain the function name + String getName(); + + // Obtain the minimum number of parameters + int getMinParameters(); + + // Obtain the maximum number of parameters + int getMaxParameters(); + + // Create a Function node + Function createNode(); +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/INamedValueInfo.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/INamedValueInfo.java new file mode 100644 index 0000000..a27687f --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/INamedValueInfo.java @@ -0,0 +1,23 @@ +package cd.casic.ci.common.functions; + +/** + * @author by mianbin + * @Classname INamedValueInfo + * @Description TODO + * @Date 2025/3/31 11:25 + */ +public interface INamedValueInfo { + /** + * Get the name of the named value. + * + * @return The name of the named value. + */ + String getName(); + + /** + * Create a NamedValue node. + * + * @return A new NamedValue node. + */ +// NamedValue createNode(); +} diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/functions/Preconditions.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/Preconditions.java similarity index 77% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/functions/Preconditions.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/Preconditions.java index 0cfadca..9d6ef7b 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/functions/Preconditions.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/Preconditions.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.functions; +package cd.casic.ci.common.functions; import lombok.SneakyThrows; @@ -7,16 +7,15 @@ import lombok.SneakyThrows; */ public class Preconditions { - public static void checkNotNull(Object obj, Exception exception) throws Exception { - if (obj == null){ + if (obj == null) { throw exception; } } @SneakyThrows - public static void checkTrue(Boolean condition, Exception exception){ - if (!condition){ + public static void checkTrue(Boolean condition, Exception exception) { + if (!condition) { throw exception; } } diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocMapper.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocMapper.java similarity index 74% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocMapper.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocMapper.java index e821b98..a1c896f 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocMapper.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocMapper.java @@ -1,6 +1,6 @@ -package cd.casic.ci.common.api.operationid; +package cd.casic.ci.common.operationid; -import cd.casic.ci.commons.operationid.entity.LeafAlloc; +import cd.casic.ci.common.operationid.entity.LeafAlloc; import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import org.apache.ibatis.annotations.Mapper; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocService.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocService.java similarity index 83% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocService.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocService.java index 3756aa5..03894c3 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocService.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocService.java @@ -1,7 +1,7 @@ -package cd.casic.ci.common.api.operationid; +package cd.casic.ci.common.operationid; -import cd.casic.ci.commons.operationid.entity.LeafAlloc; +import cd.casic.ci.common.operationid.entity.LeafAlloc; import java.util.List; /** diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocServiceImpl.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocServiceImpl.java similarity index 92% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocServiceImpl.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocServiceImpl.java index e3d2e57..395360a 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/LeafAllocServiceImpl.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocServiceImpl.java @@ -1,9 +1,7 @@ -package cd.casic.ci.commons.operationid; +package cd.casic.ci.common.operationid; -import cd.casic.ci.common.api.operationid.LeafAllocMapper; -import cd.casic.ci.common.api.operationid.LeafAllocService; -import cd.casic.ci.commons.operationid.entity.LeafAlloc; +import cd.casic.ci.common.operationid.entity.LeafAlloc; import cd.casic.framework.commons.exception.ServiceException; import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants; import cn.hutool.core.collection.CollUtil; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/SegmentIdGeneratorImpl.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/SegmentIdGeneratorImpl.java similarity index 97% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/SegmentIdGeneratorImpl.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/SegmentIdGeneratorImpl.java index f20a61e..8823947 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/SegmentIdGeneratorImpl.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/SegmentIdGeneratorImpl.java @@ -1,10 +1,10 @@ -package cd.casic.ci.common.api.operationid; +package cd.casic.ci.common.operationid; -import cd.casic.ci.common.api.constant.LeafAllocConstant; -import cd.casic.ci.common.api.operationid.entity.Segment; -import cd.casic.ci.common.api.operationid.entity.SegmentBuffer; -import cd.casic.ci.commons.operationid.entity.LeafAlloc; +import cd.casic.ci.common.constant.LeafAllocConstant; +import cd.casic.ci.common.operationid.entity.Segment; +import cd.casic.ci.common.operationid.entity.SegmentBuffer; +import cd.casic.ci.common.operationid.entity.LeafAlloc; import cd.casic.framework.commons.exception.ErrorCode; import cd.casic.framework.commons.exception.ServiceException; import cd.casic.framework.commons.util.generator.IdGenerator; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/LeafAlloc.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/LeafAlloc.java similarity index 94% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/LeafAlloc.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/LeafAlloc.java index e8aeb48..f06f4c9 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/LeafAlloc.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/LeafAlloc.java @@ -1,4 +1,4 @@ -package cd.casic.ci.commons.operationid.entity; +package cd.casic.ci.common.operationid.entity; import cd.casic.framework.commons.util.validation.ValidGroup; import cd.casic.framework.mybatis.core.dataobject.BaseDO; @@ -8,6 +8,7 @@ import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Null; import jakarta.validation.constraints.Size; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** @@ -19,6 +20,7 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) @Schema(description = "生成唯一id的实体") +@EqualsAndHashCode(callSuper=false) public class LeafAlloc extends BaseDO { private static final long serialVersionUID = 1L; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/Segment.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Segment.java similarity index 90% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/Segment.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Segment.java index 8b49271..9aeab47 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/Segment.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Segment.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.operationid.entity; +package cd.casic.ci.common.operationid.entity; import lombok.Data; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/SegmentBuffer.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/SegmentBuffer.java similarity index 93% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/SegmentBuffer.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/SegmentBuffer.java index 10ec0c5..c73292e 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/SegmentBuffer.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/SegmentBuffer.java @@ -1,6 +1,5 @@ -package cd.casic.ci.common.api.operationid.entity; +package cd.casic.ci.common.operationid.entity; -import cd.casic.ci.common.api.operationid.entity.Segment; import lombok.Data; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/Status.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Status.java similarity index 76% rename from modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/Status.java rename to modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Status.java index 171d1c6..42eb119 100644 --- a/modules/ci-commons/common-api/src/main/java/cd/casic/ci/common/api/operationid/entity/Status.java +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Status.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.api.operationid.entity; +package cd.casic.ci.common.operationid.entity; /** * @author mianbin * @Classname Segment diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/BuildEnv.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/BuildEnv.java new file mode 100644 index 0000000..6f087dc --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/BuildEnv.java @@ -0,0 +1,25 @@ +package cd.casic.ci.common.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname BuildEnv + * @Description TODO + * @Date 2025/4/1 20:50 + */ +@Data +@Schema(title = "流水线模型-构建机环境变量") +public class BuildEnv { + @Schema(title = "名称") + private final String name; + @Schema(title = "版本") + private final String version; + @Schema(title = "路径") + private final String binPath; + @Schema(title = "Home 变量") + private final Map env; +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorInfo.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorInfo.java new file mode 100644 index 0000000..2a44eee --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorInfo.java @@ -0,0 +1,46 @@ +package cd.casic.ci.common.pojo; + +/** + * @author by mianbin + * @Classname ErrorInfo + * @Description TODO + * @Date 2025/3/31 15:57 + */ + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "插件错误信息") +public class ErrorInfo { + @Schema(title = "阶段ID", required = false) + private String stageId = ""; + + @Schema(title = "作业ID", required = false) + private String containerId = ""; + + @Schema(title = "构建矩阵标识", required = false) + private Boolean matrixFlag = false; + + @Schema(title = "插件ID", required = false) + private String taskId; + + @Schema(title = "插件名称", required = false) + private String taskName; + + @Schema(title = "插件编号", required = false) + private String atomCode; + + @Schema(title = "错误类型", required = false) + private Integer errorType; + + @Schema(title = "错误码", required = true) + private Integer errorCode; + + @Schema(title = "错误信息", required = false) + private String errorMsg; +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorType.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorType.java new file mode 100644 index 0000000..a6275f3 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorType.java @@ -0,0 +1,57 @@ +package cd.casic.ci.common.pojo; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.text.MessageFormat; + +/** + * @author by mianbin + * @Classname ErrorType + * @Description TODO + * @Date 2025/4/1 14:50 + */ +@Getter +@AllArgsConstructor +public enum ErrorType { + SYSTEM("system", 0), // 0 系统运行报错 + USER("user", 1), // 1 用户配置报错 + THIRD_PARTY("thirdParty", 2), // 2 第三方系统接入错误 + PLUGIN("plugin", 3), // 3 插件执行错误 + BUILD_MACHINE("buildMachine", 4); // 4 构建机运行报错 + + private final String typeName; + private final int num; + + public static ErrorType getErrorType(String name) { + for (ErrorType enumObj : values()) { + if (enumObj.name().equals(name)) { + return enumObj; + } + } + return null; + } + + public static ErrorType getErrorType(Integer ordinal) { + if (ordinal == null) { + return PLUGIN; + } + switch (ordinal) { + case 0: + return SYSTEM; + case 1: + return USER; + case 2: + return THIRD_PARTY; + case 4: + return BUILD_MACHINE; + default: + return PLUGIN; + } + } + + public String getI18n(String language) { + return MessageFormat.format("errorType." + this.typeName, + language); + } +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/NamedValueInfo.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/NamedValueInfo.java new file mode 100644 index 0000000..b6a46e8 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/NamedValueInfo.java @@ -0,0 +1,18 @@ +package cd.casic.ci.common.pojo; + +import cd.casic.ci.common.functions.INamedValueInfo; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname NamedValueInfo + * @Description TODO + * @Date 2025/3/31 11:24 + */ +@Data +@AllArgsConstructor +public class NamedValueInfo implements INamedValueInfo { + private final String name; +// private final NamedValue ob; +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/OS.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/OS.java new file mode 100644 index 0000000..a252669 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/OS.java @@ -0,0 +1,24 @@ +package cd.casic.ci.common.pojo; + +/** + * @author by mianbin + * @Classname OS + * @Description TODO + * @Date 2025/3/31 9:57 + */ +public enum OS { + MACOS, + WINDOWS, + LINUX; + + public static OS parse(String os) { + if (os != null) { + for (OS value : OS.values()) { + if (value.name().equals(os)) { + return value; + } + } + } + return null; + } +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/PipelineAsCodeSettings.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/PipelineAsCodeSettings.java new file mode 100644 index 0000000..b8a4ee0 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/PipelineAsCodeSettings.java @@ -0,0 +1,44 @@ +package cd.casic.ci.common.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname PipelineAsCodeSettings + * @Description TODO + * @Date 2025/4/1 20:17 + */ +@Schema(title = "设置-YAML流水线功能设置") +@Data +public class PipelineAsCodeSettings { + @Schema(title = "是否支持YAML流水线功能", required = true) + private boolean enable = false; + + @Schema(title = "项目级流水线语法风格", required = false) + private String projectDialect; + + @Schema(title = "是否继承项目流水线语言风格", required = false) + private Boolean inheritedDialect = true; + + @Schema(title = "流水线语言风格", required = false) + private String pipelineDialect; + + public static PipelineAsCodeSettings initDialect(Boolean inheritedDialect, String pipelineDialect) { + PipelineAsCodeSettings settings = new PipelineAsCodeSettings(); + settings.setInheritedDialect(inheritedDialect == null ? true : inheritedDialect); + // 如果继承项目方言配置,置空pipelineDialect字段,防止数据库存储多余数据 + settings.setPipelineDialect(settings.getInheritedDialect() ? null : pipelineDialect); + return settings; + } + + /** + * 入库时,重置方言字段值 + */ + public void resetDialect() { + this.projectDialect = null; + if (this.inheritedDialect != false) { + this.pipelineDialect = null; + } + } +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/Zone.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/Zone.java new file mode 100644 index 0000000..665f194 --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/Zone.java @@ -0,0 +1,25 @@ +package cd.casic.ci.common.pojo; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author by mianbin + * @Classname Zone + * @Description TODO + * @Date 2025/4/1 19:47 + */ +@Getter +@AllArgsConstructor +public enum Zone { + DEFAULT("默认"), + ERYUAN("二院"), + SHANGHAI("上海"), + CHENGDU("成都"), + CHANGSHA("长沙"), + GITHUB("GitHub"), + GITEE("Gitee"), + EXTERNAL("外网"); + + private final String name; +} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/utils/YamlUtil.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/utils/YamlUtil.java new file mode 100644 index 0000000..f1fb2bf --- /dev/null +++ b/modules/module-ci-common/src/main/java/cd/casic/ci/common/utils/YamlUtil.java @@ -0,0 +1,86 @@ +package cd.casic.ci.common.utils; + +import cd.casic.framework.commons.util.reflect.ReflectUtil; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import lombok.Getter; +import org.yaml.snakeyaml.Yaml; + +import java.lang.reflect.Method; + +/** + * @author by mianbin + * @Classname YamlUtil + * @Description TODO + * @Date 2025/3/29 16:13 + */ +@Getter +public class YamlUtil { + public static final ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory().disable(YAMLGenerator.Feature.SPLIT_LINES)).registerModule(new JavaTimeModule()); + + private static final int RETRY_TIME = 3; + + public static String toYaml(Object bean) { + if (isNativeType(bean) || bean instanceof String) { + return bean.toString(); + } + try { + return getObjectMapper().writeValueAsString(bean); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + private static ObjectMapper getObjectMapper() { + return objectMapper; + } + + public static T to(String yamlStr, TypeReference valueTypeRef) { + if (valueTypeRef == null) { + valueTypeRef = new TypeReference() { + }; + } + String obj = loadYamlRetryOnAccident(yamlStr); + try { + return getObjectMapper().readValue(obj, valueTypeRef); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public static String loadYamlRetryOnAccident(String yamlStr, int retryTime, long retryPeriodMills) { + try { + String yml = (RETRY_TIME != retryTime) ? "# auto fix " + "+".repeat(retryTime) + "\n" + yamlStr : yamlStr; + Yaml yaml = new Yaml(); + return toYaml(yaml.load(yml)); + } catch (Throwable re) { + if (retryTime - 1 < 0) { + throw new RuntimeException(re); + } + if (retryPeriodMills > 0) { + try { + Thread.sleep(retryPeriodMills); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + return loadYamlRetryOnAccident(yamlStr, retryTime - 1, retryPeriodMills); + } + } + + public static String loadYamlRetryOnAccident(String yamlStr) { + return loadYamlRetryOnAccident(yamlStr, RETRY_TIME, 50); + } + + private static boolean isNativeType(Object obj) { + try { + Method method = ReflectUtil.class.getMethod("isNativeType", Object.class); + return (boolean) method.invoke(null, obj); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/modules/ci-environment/pom.xml b/modules/module-ci-environment/pom.xml similarity index 75% rename from modules/ci-environment/pom.xml rename to modules/module-ci-environment/pom.xml index 92fa413..6594c21 100644 --- a/modules/ci-environment/pom.xml +++ b/modules/module-ci-environment/pom.xml @@ -10,22 +10,20 @@ ../pom.xml - cd.casic.pipeline - ci-environment + module-ci-environment jar - - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common - cd.casic.ci - ci-market + cd.casic.boot + module-ci-market diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/Main.java b/modules/module-ci-environment/src/main/java/cd/casic/ci/common/Main.java similarity index 80% rename from modules/ci-worker/src/main/java/cd/casic/devops/Main.java rename to modules/module-ci-environment/src/main/java/cd/casic/ci/common/Main.java index 86c364d..0119f4f 100644 --- a/modules/ci-worker/src/main/java/cd/casic/devops/Main.java +++ b/modules/module-ci-environment/src/main/java/cd/casic/ci/common/Main.java @@ -1,4 +1,4 @@ -package cd.casic.devops; +package cd.casic.ci.common; public class Main { public static void main(String[] args) { diff --git a/modules/ci-event/pom.xml b/modules/module-ci-event/pom.xml similarity index 80% rename from modules/ci-event/pom.xml rename to modules/module-ci-event/pom.xml index 7c3e1fb..d65726e 100644 --- a/modules/ci-event/pom.xml +++ b/modules/module-ci-event/pom.xml @@ -10,16 +10,15 @@ ../pom.xml - cd.casic.ci - ci-event + module-ci-event ${revision} jar - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common-pipeline diff --git a/modules/ci-event/src/main/java/cd/casic/ci/event/dispatcher/EventDispatcher.java b/modules/module-ci-event/src/main/java/cd/casic/ci/event/dispatcher/EventDispatcher.java similarity index 100% rename from modules/ci-event/src/main/java/cd/casic/ci/event/dispatcher/EventDispatcher.java rename to modules/module-ci-event/src/main/java/cd/casic/ci/event/dispatcher/EventDispatcher.java diff --git a/modules/ci-event/src/main/java/cd/casic/ci/event/dispatcher/SampleEventDispatcher.java b/modules/module-ci-event/src/main/java/cd/casic/ci/event/dispatcher/SampleEventDispatcher.java similarity index 100% rename from modules/ci-event/src/main/java/cd/casic/ci/event/dispatcher/SampleEventDispatcher.java rename to modules/module-ci-event/src/main/java/cd/casic/ci/event/dispatcher/SampleEventDispatcher.java diff --git a/modules/module-ci-event/src/main/java/cd/casic/ci/event/enums/ActionType.java b/modules/module-ci-event/src/main/java/cd/casic/ci/event/enums/ActionType.java new file mode 100644 index 0000000..f8d25cd --- /dev/null +++ b/modules/module-ci-event/src/main/java/cd/casic/ci/event/enums/ActionType.java @@ -0,0 +1,67 @@ +package cd.casic.ci.event.enums; + +import lombok.Getter; + +/** + * @Author:mianbin + * @Package:cd.casic.ci.event.enums + * @Project:ops-pro + * @name:ActionType + * @Date:2025/03/25 9:51 + * @Filename:ActionType + * @description:Todo + */ +@Getter +public enum ActionType { + RETRY, // 重试 + START, // 开始 + REFRESH, // 刷新ElementAdditionalOptions + END, // 强制结束当前节点,会导致当前构建容器结束 + SKIP, // 跳过-不执行 + TERMINATE, // 终止 + ARCHIVE; // 归档 + + public boolean isStartOrRefresh() { + return isStart() || this == REFRESH; + } + + public boolean isStart() { + return START == this || RETRY == this; + } + + public boolean isEnd() { + return END == this || isTerminate(); + } + + public boolean isTerminate() { + return TERMINATE == this; + } + + public boolean isRetry() { + return RETRY == this; + } + + /** + * @deprecated replace by isStart + */ + @Deprecated + public static boolean isStart(ActionType actionType) { + return actionType.isStart(); + } + + /** + * @deprecated replace by isEnd + */ + @Deprecated + public static boolean isEnd(ActionType actionType) { + return actionType.isEnd(); + } + + /** + * @deprecated replace by isTerminate + */ + @Deprecated + public static boolean isTerminate(ActionType actionType) { + return actionType.isTerminate(); + } +} diff --git a/modules/ci-event/src/main/java/cd/casic/ci/event/enums/PipelineBuildStatusBroadCastEventType.java b/modules/module-ci-event/src/main/java/cd/casic/ci/event/enums/PipelineBuildStatusBroadCastEventType.java similarity index 100% rename from modules/ci-event/src/main/java/cd/casic/ci/event/enums/PipelineBuildStatusBroadCastEventType.java rename to modules/module-ci-event/src/main/java/cd/casic/ci/event/enums/PipelineBuildStatusBroadCastEventType.java diff --git a/modules/ci-event/src/main/java/cd/casic/ci/event/enums/PipelineLabelChangeTypeEnum.java b/modules/module-ci-event/src/main/java/cd/casic/ci/event/enums/PipelineLabelChangeTypeEnum.java similarity index 100% rename from modules/ci-event/src/main/java/cd/casic/ci/event/enums/PipelineLabelChangeTypeEnum.java rename to modules/module-ci-event/src/main/java/cd/casic/ci/event/enums/PipelineLabelChangeTypeEnum.java diff --git a/modules/ci-event/src/main/java/cd/casic/ci/event/pojo/IEvent.java b/modules/module-ci-event/src/main/java/cd/casic/ci/event/pojo/IEvent.java similarity index 100% rename from modules/ci-event/src/main/java/cd/casic/ci/event/pojo/IEvent.java rename to modules/module-ci-event/src/main/java/cd/casic/ci/event/pojo/IEvent.java diff --git a/modules/ci-event/src/main/java/cd/casic/ci/event/pojo/pipeline/IPipelineEvent.java b/modules/module-ci-event/src/main/java/cd/casic/ci/event/pojo/pipeline/IPipelineEvent.java similarity index 100% rename from modules/ci-event/src/main/java/cd/casic/ci/event/pojo/pipeline/IPipelineEvent.java rename to modules/module-ci-event/src/main/java/cd/casic/ci/event/pojo/pipeline/IPipelineEvent.java diff --git a/modules/ci-project/pom.xml b/modules/module-ci-log/pom.xml similarity index 77% rename from modules/ci-project/pom.xml rename to modules/module-ci-log/pom.xml index 1129a9e..585e4ea 100644 --- a/modules/ci-project/pom.xml +++ b/modules/module-ci-log/pom.xml @@ -10,15 +10,14 @@ ../pom.xml - cd.casic.ci - ci-project + module-ci-log ${revision} - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common-pipeline @@ -26,6 +25,11 @@ spring-boot-starter-redis + + cd.casic.boot + spring-boot-starter-mybatis + + cd.casic.boot spring-boot-starter-web @@ -36,4 +40,5 @@ spring-boot-starter-monitor + \ No newline at end of file diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/AppLogResource.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/AppLogResource.java similarity index 99% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/AppLogResource.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/AppLogResource.java index e76aa4d..5845508 100644 --- a/modules/ci-log/src/main/java/cd/casic/ci/log/api/AppLogResource.java +++ b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/AppLogResource.java @@ -11,7 +11,7 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; -import static cd.casic.ci.commons.constant.OpsHeader.*; +import static cd.casic.ci.common.constant.OpsHeader.*;; @Tag(name = "用户-日志资源") diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/BuildLogPrintResource.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/BuildLogPrintResource.java similarity index 98% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/BuildLogPrintResource.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/BuildLogPrintResource.java index 268ea12..a208f55 100644 --- a/modules/ci-log/src/main/java/cd/casic/ci/log/api/BuildLogPrintResource.java +++ b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/BuildLogPrintResource.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; -import static cd.casic.ci.commons.constant.OpsHeader.*; +import static cd.casic.ci.common.constant.OpsHeader.*;; /** * @author by mianbin diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/OpLogResource.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/OpLogResource.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/OpLogResource.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/OpLogResource.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogPrintResource.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogPrintResource.java similarity index 97% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogPrintResource.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogPrintResource.java index cf3d310..266a678 100644 --- a/modules/ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogPrintResource.java +++ b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogPrintResource.java @@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; -import static cd.casic.ci.commons.constant.OpsHeader.AUTH_HEADER_DEVOPS_BUILD_ID; +import static cd.casic.ci.common.constant.OpsHeader.AUTH_HEADER_DEVOPS_BUILD_ID; @RestController diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogResource.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogResource.java similarity index 99% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogResource.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogResource.java index 0555c3d..b8db08a 100644 --- a/modules/ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogResource.java +++ b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/ServiceLogResource.java @@ -11,7 +11,7 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; -import static cd.casic.ci.commons.constant.OpsHeader.*; +import static cd.casic.ci.common.constant.OpsHeader.*;; @RestController diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/UserLogResource.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/UserLogResource.java similarity index 99% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/UserLogResource.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/UserLogResource.java index 90b1790..8a543f1 100644 --- a/modules/ci-log/src/main/java/cd/casic/ci/log/api/UserLogResource.java +++ b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/UserLogResource.java @@ -11,7 +11,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import static cd.casic.ci.commons.constant.OpsHeader.*; +import static cd.casic.ci.common.constant.OpsHeader.*;; @RestController diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/AppLogResourceImpl.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/AppLogResourceImpl.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/AppLogResourceImpl.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/AppLogResourceImpl.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/BuildLogPrintResourceImpl.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/BuildLogPrintResourceImpl.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/BuildLogPrintResourceImpl.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/BuildLogPrintResourceImpl.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/OpLogResourceImpl.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/OpLogResourceImpl.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/OpLogResourceImpl.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/OpLogResourceImpl.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/ServiceLogPrintResourceImpl.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/ServiceLogPrintResourceImpl.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/ServiceLogPrintResourceImpl.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/ServiceLogPrintResourceImpl.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/ServiceLogResourceImpl.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/ServiceLogResourceImpl.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/ServiceLogResourceImpl.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/ServiceLogResourceImpl.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/UserLogResourceImpl.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/UserLogResourceImpl.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/api/impl/UserLogResourceImpl.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/api/impl/UserLogResourceImpl.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/config/LogPrinterConfiguration.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/config/LogPrinterConfiguration.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/config/LogPrinterConfiguration.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/config/LogPrinterConfiguration.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/dao/IndexMapper.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dao/IndexMapper.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/dao/IndexMapper.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dao/IndexMapper.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/dao/LogStatusMapper.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dao/LogStatusMapper.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/dao/LogStatusMapper.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dao/LogStatusMapper.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/dao/LogTahMapper.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dao/LogTahMapper.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/dao/LogTahMapper.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dao/LogTahMapper.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogIndicesV2.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogIndicesV2.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogIndicesV2.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogIndicesV2.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogStatus.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogStatus.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogStatus.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogStatus.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogSubTags.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogSubTags.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogSubTags.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/dataobject/LogSubTags.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/EndPageQueryLogs.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/EndPageQueryLogs.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/EndPageQueryLogs.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/EndPageQueryLogs.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/LogLine.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/LogLine.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/LogLine.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/LogLine.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/PageQueryLogs.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/PageQueryLogs.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/PageQueryLogs.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/PageQueryLogs.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogLineNum.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogLineNum.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogLineNum.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogLineNum.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogStatus.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogStatus.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogStatus.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogStatus.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogs.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogs.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogs.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/QueryLogs.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/TaskBuildLogProperty.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/TaskBuildLogProperty.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/TaskBuildLogProperty.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/TaskBuildLogProperty.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogErrorCodeEnum.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogErrorCodeEnum.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogErrorCodeEnum.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogErrorCodeEnum.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogStatusEnum.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogStatusEnum.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogStatusEnum.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogStatusEnum.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogStorageMode.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogStorageMode.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogStorageMode.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogStorageMode.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogType.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogType.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogType.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/enums/LogType.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LegacyLogMessage.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LegacyLogMessage.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LegacyLogMessage.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LegacyLogMessage.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogMessage.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogMessage.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogMessage.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogMessage.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogMessageWithLineNo.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogMessageWithLineNo.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogMessageWithLineNo.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogMessageWithLineNo.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogStatus.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogStatus.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogStatus.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/message/LogStatus.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/Ansi.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/Ansi.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/Ansi.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/Ansi.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiAttribute.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiAttribute.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiAttribute.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiAttribute.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiColor.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiColor.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiColor.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiColor.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiErase.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiErase.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiErase.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/dal/pojo/meta/AnsiErase.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/jmx/CreateIndexBean.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/jmx/CreateIndexBean.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/jmx/CreateIndexBean.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/jmx/CreateIndexBean.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/jmx/LogStorageBean.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/jmx/LogStorageBean.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/jmx/LogStorageBean.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/jmx/LogStorageBean.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/log/IEvent.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/log/IEvent.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/log/IEvent.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/log/IEvent.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/log/ILogEvent.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/log/ILogEvent.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/log/ILogEvent.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/log/ILogEvent.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/log/LogOriginEvent.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/log/LogOriginEvent.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/log/LogOriginEvent.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/log/LogOriginEvent.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/log/LogStatusEvent.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/log/LogStatusEvent.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/log/LogStatusEvent.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/log/LogStatusEvent.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/log/LogStorageEvent.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/log/LogStorageEvent.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/log/LogStorageEvent.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/log/LogStorageEvent.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/service/BuildLogListenerService.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/service/BuildLogListenerService.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/service/BuildLogListenerService.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/service/BuildLogListenerService.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/service/BuildLogPrintService.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/service/BuildLogPrintService.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/service/BuildLogPrintService.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/service/BuildLogPrintService.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/service/BuildLogQueryService.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/service/BuildLogQueryService.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/service/BuildLogQueryService.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/service/BuildLogQueryService.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/service/IndexService.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/service/IndexService.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/service/IndexService.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/service/IndexService.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/service/LogService.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/service/LogService.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/service/LogService.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/service/LogService.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/service/LogServiceImpl.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/service/LogServiceImpl.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/service/LogServiceImpl.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/service/LogServiceImpl.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/service/LogStatusService.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/service/LogStatusService.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/service/LogStatusService.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/service/LogStatusService.java diff --git a/modules/ci-log/src/main/java/cd/casic/ci/log/service/LogTagService.java b/modules/module-ci-log/src/main/java/cd/casic/ci/log/service/LogTagService.java similarity index 100% rename from modules/ci-log/src/main/java/cd/casic/ci/log/service/LogTagService.java rename to modules/module-ci-log/src/main/java/cd/casic/ci/log/service/LogTagService.java diff --git a/modules/ci-market/pom.xml b/modules/module-ci-market/pom.xml similarity index 79% rename from modules/ci-market/pom.xml rename to modules/module-ci-market/pom.xml index 69a3588..b22df8f 100644 --- a/modules/ci-market/pom.xml +++ b/modules/module-ci-market/pom.xml @@ -10,15 +10,15 @@ ../pom.xml - cd.casic.ci - ci-market + module-ci-market + jar ${revision} - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common-pipeline diff --git a/modules/ci-market/src/main/java/cd/casic/ci/event/market/constant/StoreMessageCode.java b/modules/module-ci-market/src/main/java/cd/casic/ci/event/market/constant/StoreMessageCode.java similarity index 100% rename from modules/ci-market/src/main/java/cd/casic/ci/event/market/constant/StoreMessageCode.java rename to modules/module-ci-market/src/main/java/cd/casic/ci/event/market/constant/StoreMessageCode.java diff --git a/modules/module-ci-process-api/pom.xml b/modules/module-ci-process-api/pom.xml new file mode 100644 index 0000000..bcbe508 --- /dev/null +++ b/modules/module-ci-process-api/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + cd.casic.boot + modules + ${revision} + + + module-ci-process-api + + ${project.artifactId} + + ${revision} + + jar + + + + cd.casic.boot + module-ci-common-pipeline + + + cd.casic.boot + module-ci-event + + + cd.casic.boot + module-ci-repository + + + cd.casic.boot + module-ci-ticket + + + cd.casic.boot + module-ci-project + + + cd.casic.boot + module-ci-log + + + \ No newline at end of file diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/BuildJobResource.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/BuildJobResource.java new file mode 100644 index 0000000..c1148ba --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/BuildJobResource.java @@ -0,0 +1,153 @@ +package cd.casic.ci.process.api.engine; + +import cd.casic.ci.common.pojo.ErrorInfo; +import cd.casic.ci.common.pipeline.pojo.JobHeartbeatRequest; +import cd.casic.ci.process.api.engine.pojo.HeartBeatInfo; +import cd.casic.ci.process.api.process.pojo.BuildJobResult; +import cd.casic.ci.process.api.process.pojo.BuildTask; +import cd.casic.ci.process.api.process.pojo.BuildTaskResult; +import cd.casic.ci.process.api.process.pojo.BuildVariables; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import kotlin.Result; +import org.springframework.web.bind.annotation.*; + +import static cd.casic.ci.common.constant.OpsHeader.*; + +/** + * @author by mianbin + * @Classname BuildJobResource + * @Description TODO + * @Date 2025/3/31 15:20 + */ +@Tag(name = "ENGINE_BUILD_JOB", description = "引擎-构建机请求|此接口不接受服务间Feign,只接受构建机处请求") +@RestController +@RequestMapping("/build/worker") +public interface BuildJobResource { + + @Operation(summary = "构建机器启动成功") + @PutMapping("/started") + Result jobStarted( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId, + @Parameter(description = "构建环境ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId, + @Parameter(description = "构建机名称", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_NAME) String vmName, + @Parameter(description = "网络问题导致的重试次数", required = false) + @RequestParam(value = "retryCount", required = false) String retryCount + ); + + @Operation(summary = "构建机请求获取任务") + @GetMapping("/claim") + Result claimTask( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId, + @Parameter(description = "构建环境ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId, + @Parameter(description = "构建机名称", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_NAME) String vmName + ); + + @Operation(summary = "构建机Job完成任务") + @PostMapping("/complete") + Result completeTask( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId, + @Parameter(description = "构建环境ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId, + @Parameter(description = "构建机名称", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_NAME) String vmName, + @Parameter(description = "执行结果", required = true) + @RequestBody BuildTaskResult result + ); + + @Operation(summary = "结束构建机Job") + @PostMapping("/end") + Result jobEnd( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId, + @Parameter(description = "构建环境ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId, + @Parameter(description = "构建机名称", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_NAME) String vmName, + @Parameter(description = "执行结果", required = false) + @RequestBody(required = false) BuildJobResult result + ); + + @Operation(summary = "Job超时触发") + @PostMapping("/timeout") + Result jobTimeout( + @Parameter(description = "projectId", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "pipelineId", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PIPELINE_ID) String pipelineId, + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId, + @Parameter(description = "构建环境ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId + ); + + @Operation(summary = "Job心跳请求") + @PostMapping("/heartbeat") + Result jobHeartbeat( + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId, + @Parameter(description = "构建环境ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId, + @Parameter(description = "构建机名称", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_NAME) String vmName + ); + + @Operation(summary = "Job心跳请求V1版") + @PostMapping("/heartbeat/v1") + Result jobHeartbeatV1( + @Parameter(description = "projectId", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId, + @Parameter(description = "构建环境ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId, + @Parameter(description = "构建机名称", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_NAME) String vmName, + @Parameter(description = "执行次数", required = false) + @RequestParam(value = "executeCount", required = false) Integer executeCount, + @Parameter(description = "心跳请求报文体", required = false) + @RequestBody(required = false) JobHeartbeatRequest jobHeartbeatRequest + ); + + @Operation(summary = "job异常上报并停止构建") // #5046 增加启动时异常上报,并停止构建,如果网络通的话 + @PostMapping("/submit_error") + Result submitError( + @Parameter(description = "projectId", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "pipelineId", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PIPELINE_ID) String pipelineId, + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId, + @Parameter(description = "构建环境ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId, + @Parameter(description = "执行结果", required = true) + @RequestBody ErrorInfo errorInfo + ); + + @Operation(summary = "获取当前构建的构建详情页") + @GetMapping("/detail_url") + Result getBuildDetailUrl( + @Parameter(description = "projectId", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "pipelineId", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PIPELINE_ID) String pipelineId, + @Parameter(description = "构建ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_BUILD_ID) String buildId + ); +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/atom/IAtomTask.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/atom/IAtomTask.java new file mode 100644 index 0000000..3746427 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/atom/IAtomTask.java @@ -0,0 +1,191 @@ +package cd.casic.ci.process.api.engine.atom; + +import cd.casic.ci.common.enums.ErrorCode; +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.utils.EnvUtils; +import cd.casic.ci.common.pojo.ErrorType; +import cd.casic.ci.event.enums.ActionType; +import cd.casic.ci.process.api.engine.common.Timeout; +import cd.casic.ci.process.api.engine.common.VMUtils; +import cd.casic.ci.process.api.engine.pojo.PipelineBuildTask; +import cn.hutool.core.date.DateUtil; +import lombok.Getter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import static cd.casic.ci.common.pipeline.pojo.element.ElementAdditionalOptions.RunCondition; + +/** + * @author by mianbin + * @Classname IAtomTask + * @Description TODO + * @Date 2025/3/31 16:01 + */ +public interface IAtomTask { + + Logger logger = LoggerFactory.getLogger(IAtomTask.class); + /** + * 开始执行原子逻辑,一般原子的业务逻辑都在这里处理. + * 请注意: 如果有需要线程大量的循环sleep等待其他处理结果来判断是否成功的逻辑,请拆开到 tryFinish 去做判断 + * 并且在 tryFinish 函数确认返回false,则引擎后续会继续调度 tryFinish 函数来处理. + * 该设计用来处理那些需要大量循环查询原子任务是否结束的,拆分为单独的 tryFinish 进行尝试查询状态以终止,减少线程被独占做无用的sleep + * 应用场景: + * 1.同步原子,需要轮循等待接口返回数据以决定原子是否完成整个业务, eg: CodeCC/apk加固/子流水线调用 + * + * 例外: 当前原子执行失败则不会等待,直接标识为当前原子执行结束 status.isFinish() + * + * @param task 执行任务 + * @param param 参数 + * @param runVariables 当前流水线运行中产生的变量 + * @return BuildStatus 返回标志位是否要等待其他任务结束才结束 + */ + AtomResponse execute(PipelineBuildTask task, T param, Map runVariables); + + /** + * 读取参数Element + */ + T getParamElement(PipelineBuildTask task); + + default AtomResponse execute(PipelineBuildTask task, Map runVariables) { + return execute(task, getParamElement(task), runVariables); + } + + /** + * 是否结束当前原子结束,如果不是,则后续引擎会不断地去调用该方法来判断原子是否结束了。 + * 子类通过复写该方法来实现,目前默认用查任务状态的方式保证大部分原子都是这类的操作 + * + * + * @param task 执行任务 + * @param runVariables 运行时变量 + * @param actionType 事件动作 + * @return BuildStatus + * 返回标志位是否要等待其他任务结束才结束,如果返回 status.isFinish() + * true: 可以结束当前原子 + * false: 需要等待其在他任务执行完。后续会不断的去调用该函数去查直到false,或者超时 + * 例外: 当前原子执行失败则不会等待,直接标识为当前原子执行结束 + */ + default AtomResponse tryFinish(PipelineBuildTask task, Map runVariables, ActionType actionType) { + T param = getParamElement(task); + AtomResponse atomResponse = tryFinishImpl(task, param, runVariables, actionType); + // 未结束?检查是否超时 + if (!atomResponse.getBuildStatus().isFinish()) { + long startTime = task.getStartTime() != null ? DateUtil.toInstant(task.getStartTime()).toEpochMilli() : 0L; + Long timeout = task.getAdditionalOptions() != null ? task.getAdditionalOptions().getTimeout() : null; + if (timeout == null && VMUtils.isVMTask(task.getTaskId())) { + // 如果timeout为空且task为开关机插件任务,则给timeout赋默认值 + timeout = Timeout.DEFAULT_PREPARE_MINUTES; + } + long timeoutMills = Timeout.transMinuteTimeoutToMills(timeout); + RunCondition runCondition = task.getAdditionalOptions() != null ? task.getAdditionalOptions().getRunCondition() : null; + if (timeoutMills > 0 && System.currentTimeMillis() - startTime >= timeoutMills) { + logger.info( + "[{}]|TIME_OUT|startTime={}|timeoutMills={}|current={}", + task.getBuildId(), startTime, timeoutMills, System.currentTimeMillis() + ); + atomResponse = new AtomResponse( + BuildStatus.EXEC_TIMEOUT, + null, + ErrorType.USER, + ErrorCode.USER_TASK_OUTTIME_LIMIT, + "Task time out " + TimeUnit.MILLISECONDS.toMinutes(timeoutMills) + " minutes" + ); + } else if (actionType.isTerminate()) { // 强制终止的设置为失败 + logger.info("[{}]|FORCE_TERMINATE|job={}|task={}", task.getBuildId(), task.getContainerId(), task.getTaskId()); + atomResponse = defaultFailAtomResponse; + } else if (actionType == ActionType.END && runCondition != RunCondition.PRE_TASK_FAILED_EVEN_CANCEL) { + logger.info("[{}]|CANCEL|job={}|task={}", task.getBuildId(), task.getContainerId(), task.getTaskId()); + atomResponse = new AtomResponse(BuildStatus.CANCELED, null, null, null, null); + } + } + return atomResponse; + } + + private AtomResponse tryFinishImpl( + PipelineBuildTask task, + T param, + Map runVariables, + ActionType actionType + ) { + AtomResponse atomResponse = tryFinish(task, param, runVariables, actionType.isTerminate()); + RunCondition runCondition = task.getAdditionalOptions() != null ? task.getAdditionalOptions().getRunCondition() : null; + return !atomResponse.getBuildStatus().isFinish() + ? actionType.isTerminate() + ? new AtomResponse( + BuildStatus.FAILED, + null, + ErrorType.PLUGIN, + ErrorCode.PLUGIN_DEFAULT_ERROR, + "Force Terminate!" + ) + : actionType == ActionType.END && runCondition != RunCondition.PRE_TASK_FAILED_EVEN_CANCEL + ? new AtomResponse(BuildStatus.CANCELED, null, null, null, null) + : atomResponse + : atomResponse; + } + + default AtomResponse tryFinish( + PipelineBuildTask task, + T param, + Map runVariables, + boolean force + ) { + return force + ? task.getStatus().isFinish() + ? new AtomResponse( + task.getStatus(), + null, + task.getErrorType(), + task.getErrorCode(), + task.getErrorMsg() + ) + : defaultFailAtomResponse + : new AtomResponse( + task.getStatus(), + null, + task.getErrorType(), + task.getErrorCode(), + task.getErrorMsg() + ); + } + + default String parseVariable(String value, Map runVariables) { + if (value == null || value.isEmpty()) { + return ""; + } + return EnvUtils.parseEnv(value, runVariables); + } + + /** + * 原子执行结果 + * @version 1.0 + */ + @Getter + class AtomResponse { + private final BuildStatus buildStatus; + private final Map outputVars; + private ErrorType errorType; + private Integer errorCode; + private String errorMsg; + + public AtomResponse(BuildStatus buildStatus, Map outputVars, ErrorType errorType, Integer errorCode, String errorMsg) { + this.buildStatus = buildStatus; + this.outputVars = outputVars; + this.errorType = errorType; + this.errorCode = errorCode; + this.errorMsg = errorMsg; + } + } + + AtomResponse defaultSuccessAtomResponse = new AtomResponse(BuildStatus.SUCCEED, null, null, null, null); + + AtomResponse defaultFailAtomResponse = new AtomResponse( + BuildStatus.FAILED, + null, + ErrorType.USER, + ErrorCode.PLUGIN_DEFAULT_ERROR, + "not definded error" + ); +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/BuildTimeCostUtils.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/BuildTimeCostUtils.java new file mode 100644 index 0000000..5c04ade --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/BuildTimeCostUtils.java @@ -0,0 +1,303 @@ +package cd.casic.ci.process.api.engine.common; + +import cd.casic.ci.common.pipeline.enums.BuildRecordTimeStamp; +import cd.casic.ci.common.pipeline.pojo.time.BuildRecordTimeCost; +import cd.casic.ci.common.pipeline.pojo.time.BuildRecordTimeLine; +import cd.casic.ci.process.api.process.pojo.pipeline.record.BuildRecordContainer; +import cd.casic.ci.process.api.process.pojo.pipeline.record.BuildRecordModel; +import cd.casic.ci.process.api.process.pojo.pipeline.record.BuildRecordStage; +import cd.casic.ci.process.api.process.pojo.pipeline.record.BuildRecordTask; +import cn.hutool.core.lang.Pair; +import cn.hutool.json.JSONUtil; +import lombok.extern.slf4j.Slf4j; + +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +/** + * @author by mianbin + * @Classname BuildTimeCostUtils + * @Description TODO + * @Date 2025/3/31 16:07 + */ +@Slf4j +public class BuildTimeCostUtils { + + public static BuildRecordTimeCost generateBuildTimeCost(BuildRecordModel buildRecordModel, List stageRecords) { + LocalDateTime startTime = buildRecordModel.getStartTime(); + if (startTime == null) { + return new BuildRecordTimeCost(); + } + LocalDateTime endTime = buildRecordModel.getEndTime() != null ? buildRecordModel.getEndTime() : LocalDateTime.now(); + long totalCost = Duration.between(buildRecordModel.getQueueTime(), endTime).toMillis(); + long executeCost = 0L; + long waitCost = 0L; + long queueCost = 0L; + for (BuildRecordStage record : stageRecords) { + //这里转换需要注意,要根据实际发来的进行获取, 这里获取的应该是stage里面的BuildRecordTimeCost,要调试 + String stageVar = (String) record.getStageVar().get(BuildRecordTimeCost.class.getSimpleName()); + if (stageVar == null) { + continue; + } + BuildRecordTimeCost stageCost = JSONUtil.toBean(stageVar, BuildRecordTimeCost.class, false); + executeCost += stageCost.getExecuteCost(); + waitCost += stageCost.getWaitCost(); + queueCost += stageCost.getQueueCost(); + if (stageCost == null) { + continue; + } + executeCost += stageCost.getExecuteCost(); + waitCost += stageCost.getWaitCost(); + queueCost += stageCost.getQueueCost(); + } + long systemCost = totalCost - executeCost - queueCost - waitCost; + return new BuildRecordTimeCost( + totalCost, + executeCost, + waitCost, + Duration.between(buildRecordModel.getQueueTime(), startTime).toMillis(), + notNegative(systemCost) + ); + } + + public static BuildRecordTimeCost generateStageTimeCost(BuildRecordStage buildRecordStage, List containerRecords) { + LocalDateTime startTime = buildRecordStage.getStartTime(); + if (startTime == null) { + return null; + } + LocalDateTime endTime = buildRecordStage.getEndTime() != null ? buildRecordStage.getEndTime() : LocalDateTime.now(); + long totalCost = Duration.between(startTime, endTime).toMillis(); + List containerExecuteCost = new ArrayList<>(); + List containerWaitCost = List.of( + new BuildRecordTimeLine.Moment(startTime, endTime) + ); + List containerQueueCost = List.of( + new BuildRecordTimeLine.Moment(startTime, endTime) + ); + for (BuildRecordContainer record : containerRecords) { + BuildRecordTimeLine containerTimeLine = JSONUtil.toBean( record.getContainerVar().get(BuildRecordTimeLine.class.getSimpleName()).toString(), BuildRecordTimeLine.class, false); + if (containerTimeLine == null) { + continue; + } + if (record.getEndTime() != null) { + BuildRecordTimeLine.Moment fixedMoment = new BuildRecordTimeLine.Moment(record.getEndTime(), endTime); + containerTimeLine.getWaitCostMoments().add(fixedMoment); + containerTimeLine.getQueueCostMoments().add(fixedMoment); + } + containerExecuteCost = mergeTimeLine(containerExecuteCost, containerTimeLine.getExecuteCostMoments()); + List mergedWaitCost = mergeTimeLine(containerTimeLine.getWaitCostMoments(), containerTimeLine.getQueueCostMoments()); + containerWaitCost = intersectionTimeLine(containerWaitCost, mergedWaitCost); + containerQueueCost = intersectionTimeLine(containerQueueCost, containerTimeLine.getQueueCostMoments()); + } + long executeCost = containerExecuteCost.stream().mapToLong(moment -> moment.getEndTime() - moment.getStartTime()).sum(); + long queueCost = containerQueueCost.stream().mapToLong(moment -> moment.getEndTime() - moment.getStartTime()).sum(); + long waitCost = buildRecordStage.getTimestamps().entrySet().stream() + .filter(entry -> entry.getKey().stageCheckWait()) + .mapToLong(entry -> { + BuildRecordTimeStamp time = entry.getValue(); + logWhenNull(time, buildRecordStage.getBuildId() + "|STAGE|" + buildRecordStage.getStageId() + "|" + entry.getKey().name()); + return time.between(); + }) + .sum() + containerWaitCost.stream().mapToLong(moment -> moment.getEndTime() - moment.getStartTime()).sum(); + long systemCost = totalCost - executeCost - waitCost; + return new BuildRecordTimeCost( + totalCost, + executeCost, + waitCost, + queueCost, + notNegative(systemCost) + ); + } + + public static BuildRecordTimeCost generateMatrixTimeCost(BuildRecordContainer buildRecordContainer, List containerRecords) { + LocalDateTime startTime = buildRecordContainer.getStartTime(); + if (startTime == null) { + return null; + } + LocalDateTime endTime = buildRecordContainer.getEndTime() != null ? buildRecordContainer.getEndTime() : LocalDateTime.now(); + long totalCost = Duration.between(startTime, endTime).toMillis(); + List containerExecuteCost = new ArrayList<>(); + List containerWaitCost = List.of( + new BuildRecordTimeLine.Moment(startTime, endTime) + ); + List containerQueueCost = List.of( + new BuildRecordTimeLine.Moment(startTime, endTime) + ); + for (BuildRecordContainer record : containerRecords) { + BuildRecordTimeLine containerTimeLine = JSONUtil.toBean( record.getContainerVar().get(BuildRecordTimeLine.class.getSimpleName()).toString(), BuildRecordTimeLine.class, false); + if (containerTimeLine == null) { + continue; + } + containerExecuteCost = mergeTimeLine(containerExecuteCost, containerTimeLine.getExecuteCostMoments()); + containerWaitCost = intersectionTimeLine(containerWaitCost, containerTimeLine.getWaitCostMoments()); + containerQueueCost = intersectionTimeLine(containerQueueCost, containerTimeLine.getQueueCostMoments()); + } + long executeCost = containerExecuteCost.stream().mapToLong(moment -> moment.getEndTime() - moment.getStartTime()).sum(); + long queueCost = containerQueueCost.stream().mapToLong(moment -> moment.getEndTime() - moment.getStartTime()).sum(); + long waitCost = containerWaitCost.stream().mapToLong(moment -> moment.getEndTime() - moment.getStartTime()).sum(); + long systemCost = totalCost - executeCost - queueCost - waitCost; + return new BuildRecordTimeCost( + totalCost, + executeCost, + waitCost, + queueCost, + notNegative(systemCost) + ); + } + + public static Pair generateContainerTimeCost(BuildRecordContainer buildRecordContainer, List taskRecords) { + BuildRecordTimeLine containerTimeLine = new BuildRecordTimeLine(); + LocalDateTime startTime = buildRecordContainer.getStartTime(); + if (startTime == null) { + startTime = taskRecords.isEmpty() ? null : taskRecords.get(0).getStartTime(); + if (startTime == null) { + return Pair.of(null, containerTimeLine); + } + } + LocalDateTime endTime = buildRecordContainer.getEndTime() != null ? buildRecordContainer.getEndTime() : LocalDateTime.now(); + long totalCost = Duration.between(startTime, endTime).toMillis(); + long executeCost = 0L; + long waitCost = 0L; + long queueCost = buildRecordContainer.getTimestamps().entrySet().stream() + .filter(entry -> entry.getKey().containerCheckQueue()) + .mapToLong(entry -> { + BuildRecordTimeStamp time = entry.getValue(); + logWhenNull(time, buildRecordContainer.getBuildId() + "|CONTAINER|" + buildRecordContainer.getContainerId() + "|" + entry.getKey().name()); + time.insert2TimeLine(containerTimeLine.getQueueCostMoments()); + return time.between(); + }) + .sum(); + for (BuildRecordTask record : taskRecords) { + BuildRecordTimeLine taskTimeLine = new BuildRecordTimeLine(); + BuildRecordTimeCost cost = generateTaskTimeCost(record, taskTimeLine); + if (cost != null) { + containerTimeLine.getQueueCostMoments().addAll(taskTimeLine.getQueueCostMoments()); + containerTimeLine.getWaitCostMoments().addAll(taskTimeLine.getWaitCostMoments()); + containerTimeLine.getExecuteCostMoments().addAll(taskTimeLine.getExecuteCostMoments()); + executeCost += cost.getExecuteCost(); + waitCost += cost.getWaitCost(); + } + } + long systemCost = totalCost - executeCost - waitCost - queueCost; + return Pair.of( + new BuildRecordTimeCost( + totalCost, + executeCost, + waitCost, + queueCost, + notNegative(systemCost) + ), + containerTimeLine + ); + } + + public static BuildRecordTimeCost generateTaskTimeCost(BuildRecordTask buildRecordTask, BuildRecordTimeLine timeLine) { + LocalDateTime startTime = buildRecordTask.getStartTime(); + if (startTime == null) { + return null; + } + LocalDateTime endTime = buildRecordTask.getEndTime() != null ? buildRecordTask.getEndTime() : LocalDateTime.now(); + long totalCost = Duration.between(startTime, endTime).toMillis(); + long waitCost = buildRecordTask.getTimestamps().entrySet().stream() + .filter(entry -> entry.getKey().taskCheckWait()) + .mapToLong(entry -> { + BuildRecordTimeStamp time = entry.getValue(); + logWhenNull(time, buildRecordTask.getBuildId() + "|TASK|" + buildRecordTask.getTaskId() + "|" + entry.getKey().name()); + if (timeLine != null) { + time.insert2TimeLine(timeLine.getWaitCostMoments()); + } + return time.between(); + }) + .sum(); + long executeCost = totalCost - waitCost; + if (timeLine != null) { + List executeMoments = differenceTimeLine( + List.of(new BuildRecordTimeLine.Moment(startTime, endTime)), + timeLine.getWaitCostMoments() + ); + timeLine.getExecuteCostMoments().addAll(executeMoments); + } + return new BuildRecordTimeCost( + totalCost, + waitCost, + notNegative(executeCost) + ); + } + + public static List differenceTimeLine(List left, List right) { + List> line = new ArrayList<>(); + List ans = new ArrayList<>(); + for (BuildRecordTimeLine.Moment moment : left) { + + line.add(Pair.of(moment.getStartTime(), 'L')); + line.add(Pair.of(moment.getEndTime(), 'L')); + } + for (BuildRecordTimeLine.Moment moment : right) { + line.add(Pair.of(moment.getStartTime(), 'R')); + line.add(Pair.of(moment.getEndTime(), 'R')); + } + line.sort(java.util.Comparator.comparingLong(Pair::getKey)); + boolean cnt = true; + int index = 0; + while (index < line.size()) { + if (line.get(index).getValue() == 'R') { + cnt = !cnt; + } + if (cnt && index < line.size() - 1) { + ans.add(new BuildRecordTimeLine.Moment(line.get(index).getKey(), line.get(index + 1).getKey())); + } + index++; + } + return ans; + } + + public static List intersectionTimeLine(List left, List right) { + List ans = new ArrayList<>(); + int i = 0; + int j = 0; + while (i < left.size() && j < right.size()) { + long lo = Math.max(left.get(i).getStartTime(), right.get(j).getStartTime()); + long hi = Math.min(left.get(i).getEndTime(), right.get(j).getEndTime()); + if (lo <= hi) { + ans.add(new BuildRecordTimeLine.Moment(lo, hi)); + } + if (left.get(i).getEndTime() < right.get(j).getEndTime()) { + i++; + } else { + j++; + } + } + return ans; + } + + public static List mergeTimeLine(List left, List right) { + List intervals = new ArrayList<>(left); + intervals.addAll(right); + intervals.sort(java.util.Comparator.comparingLong(BuildRecordTimeLine.Moment::getStartTime)); + List res = new ArrayList<>(); + for (BuildRecordTimeLine.Moment interval : intervals) { + if (res.isEmpty() || res.get(res.size() - 1).getEndTime() < interval.getStartTime()) { + res.add(interval); + } else { + BuildRecordTimeLine.Moment m = res.remove(res.size() - 1); + res.add(new BuildRecordTimeLine.Moment(m.getStartTime(), Math.max(m.getEndTime(), interval.getEndTime()))); + } + } + return res; + } + + private static void logWhenNull(BuildRecordTimeStamp time, String logInfo) { + if (time.getStartTime() == null) { + log.warn(logInfo + "|warning! start time is null."); + } + if (time.getEndTime() == null) { + log.warn(logInfo + "|warning! end time is null."); + } + } + + private static long notNegative(long value) { + return Math.max(value, 0); + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/EngineConstants.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/EngineConstants.java new file mode 100644 index 0000000..7640464 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/EngineConstants.java @@ -0,0 +1,27 @@ +package cd.casic.ci.process.api.engine.common; + +/** + * @author by mianbin + * @Classname EngineConstants + * @Description TODO + * @Date 2025/3/31 16:10 + */ +public class EngineConstants { + public static final String BS_ATOM_STATUS_REFRESH_DELAY_MILLS = "_bsDelayMills_"; + public static final String BS_ATOM_START_TIME_MILLS = "_bsAtomStartTimeMills_"; + public static final String BS_ATOM_LOOP_TIMES = "_bsAtomLoopTimes_"; + public static final String BS_QUALITY_RESULT = "_bsQualityResult_"; + public static final String BS_MANUAL_ACTION = "_bsManualAction_"; + public static final String BS_MANUAL_ACTION_USERID = "_bsManualActionUserId_"; + public static final String BS_MANUAL_ACTION_SUGGEST = "_bsManualActionSuggest_"; + public static final String BS_MANUAL_ACTION_PARAMS = "_bsManualActionParams_"; + public static final String BS_MANUAL_ACTION_DESC = "_bsManualActionDesc_"; + public static final String BS_MANUAL_START_STAGE = "manual_start_stage"; + public static final String BS_QUALITY_PASS_STAGE = "quality_start_stage"; + public static final String BS_QUALITY_ABORT_STAGE = "quality_abort_stage"; + public static final String BS_CONTAINER_END_SOURCE_PREFIX = "CONTAINER_END_"; + public static final String BS_MANUAL_STOP_PAUSE_ATOM = "taskCancel_"; + public static final String BS_STAGE_CANCELED_END_SOURCE = "STAGE_CANCELED_END"; + public static final String BS_CANCEL_BUILD_SOURCE = "cancel_build"; + public static final String BS_PAUSE_TASK = "_bkTaskPauseTag_"; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/Loop.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/Loop.java new file mode 100644 index 0000000..334cbf6 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/Loop.java @@ -0,0 +1,11 @@ +package cd.casic.ci.process.api.engine.common; + +/** + * @author by mianbin + * @Classname Loop + * @Description TODO + * @Date 2025/3/31 16:12 + */ +public class Loop { + public static final int DEFAULT_INTERVAL_MILLS = 3000; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/Timeout.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/Timeout.java new file mode 100644 index 0000000..d79a3ca --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/Timeout.java @@ -0,0 +1,99 @@ +package cd.casic.ci.process.api.engine.common; + +import cd.casic.ci.process.api.process.utils.PipelineVarUtil; + +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * @author by mianbin + * @Classname Timeout + * @Description TODO + * @Date 2025/3/31 16:13 + */ +public class Timeout { + public static final long DEFAULT_TIMEOUT_MIN = 900L; + public static final long DEFAULT_PREPARE_MINUTES = 10L; + public static final long DEFAULT_STAGE_TIMEOUT_HOURS = 24L; + private static final long MAX_STAGE_REVIEW_DAYS = 30L; + public static final long MAX_JOB_RUN_DAYS = 7L; + + public static final long MAX_HOURS = TimeUnit.DAYS.toHours(MAX_STAGE_REVIEW_DAYS); + public static final long STAGE_MAX_MILLS = TimeUnit.HOURS.toMillis(MAX_HOURS) + 1; + public static final int MAX_MINUTES = (int) TimeUnit.DAYS.toMinutes(MAX_JOB_RUN_DAYS); + public static final long CONTAINER_MAX_MILLS = TimeUnit.MINUTES.toMillis(MAX_MINUTES) + 1; + + private static TimeoutObj transTimeoutObj(String timeoutStr) { + boolean change = false; + long minute; + try { + if (timeoutStr != null && !timeoutStr.isEmpty()) { + minute = Integer.parseInt(timeoutStr); + } else { + change = true; + minute = DEFAULT_TIMEOUT_MIN; + } + } catch (Exception badConfig) { + change = true; + minute = DEFAULT_TIMEOUT_MIN; + } + if (minute <= 0 || minute > MAX_MINUTES) { + change = true; + minute = MAX_MINUTES; + } + return new TimeoutObj( + timeoutStr, + minute, + transMinuteTimeoutToMills(minute), + change + ); + } + + public static long transMinuteTimeoutToSec(Long timeoutMinutes) { + long minute = timeoutMinutes != null ? timeoutMinutes : DEFAULT_TIMEOUT_MIN; + if (minute <= 0 || minute > MAX_MINUTES) { + minute = MAX_MINUTES; + } + return TimeUnit.MINUTES.toSeconds(minute) + 1; + } + + public static long transMinuteTimeoutToMills(Long timeoutMinutes) { + long minute = timeoutMinutes != null ? timeoutMinutes : DEFAULT_TIMEOUT_MIN; + if (minute <= 0 || minute > MAX_MINUTES) { + minute = MAX_MINUTES; + } + return TimeUnit.MINUTES.toMillis(minute) + 1; + } + + public static TimeoutObj decTimeout(String timeoutVar, Map contextMap) { + TimeoutObj obj; + String timeoutStr = timeoutVar != null ? timeoutVar.trim() : null; + if (PipelineVarUtil.isVar(timeoutStr)) { +// String tTimeout = EnvReplacementParser.parse(timeoutStr, contextMap); + String tTimeout = ""; + obj = transTimeoutObj(tTimeout); + if (!tTimeout.equals(timeoutStr)) { + obj.replaceByVar = true; + } + } else { + obj = transTimeoutObj(timeoutStr); + } + return obj; + } + + public static class TimeoutObj { + public String beforeChangeStr; + public long minutes; + public long millis; + public boolean change; + public boolean replaceByVar; + + public TimeoutObj(String beforeChangeStr, long minutes, long millis, boolean change) { + this.beforeChangeStr = beforeChangeStr; + this.minutes = minutes; + this.millis = millis; + this.change = change; + this.replaceByVar = false; + } + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/VMUtils.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/VMUtils.java new file mode 100644 index 0000000..14b6c09 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/common/VMUtils.java @@ -0,0 +1,195 @@ +package cd.casic.ci.process.api.engine.common; + +import cn.hutool.core.date.DateUtil; + +import java.util.Random; +import java.util.Set; + +/** + * @author by mianbin + * @Classname VMUtils + * @Description TODO + * @Date 2025/3/31 16:22 + */ +public class VMUtils { + + /** + * 生成阶段ID + * + * @param seq 序号 + * @return 生成的阶段ID + */ + public static String genStageId(int seq) { + return "stage-" + seq; + } + + /** + * 为用户生成阶段ID + * + * @param seq 序号 + * @return 生成的用户阶段ID + */ + public static String genStageIdForUser(int seq) { + return "stage_" + seq; + } + + /** + * 生成停止虚拟机任务ID + * + * @param seq 序号 + * @return 生成的停止虚拟机任务ID + */ + public static String genStopVMTaskId(int seq) { + return getStopVmLabel() + seq; + } + + /** + * 生成结束点任务ID + * + * @param seq 序号 + * @return 生成的结束点任务ID + */ + public static String genEndPointTaskId(int seq) { + return getEndLabel() + seq; + } + + /** + * 生成虚拟机任务序号 + * + * @param containerSeq 容器序号 + * @param taskSeq 任务序号 + * @return 生成的虚拟机任务序号 + */ + public static int genVMTaskSeq(int containerSeq, int taskSeq) { + return containerSeq * 1000 + taskSeq; + } + + /** + * 生成矩阵容器序号 + * + * @param matrixGroupId 矩阵组ID + * @param innerIndex 内部索引 + * @return 生成的矩阵容器序号 + */ + public static int genMatrixContainerSeq(int matrixGroupId, int innerIndex) { + return matrixGroupId * 1000 + innerIndex; + } + + /** + * 生成矩阵作业ID + * + * @param groupJobId 组作业ID + * @param innerSeq 内部序号 + * @return 生成的矩阵作业ID + */ + public static String genMatrixJobId(String groupJobId, int innerSeq) { + return groupJobId + "." + innerSeq; + } + + /** + * 生成启动虚拟机任务ID + * + * @param containerSeq 容器序号 + * @return 生成的启动虚拟机任务ID + */ + public static String genStartVMTaskId(String containerSeq) { + return getStartVmLabel() + containerSeq; + } + + /** + * 获取停止虚拟机标签 + * + * @return 停止虚拟机标签 + */ + public static String getStopVmLabel() { + return "stopVM-"; + } + + /** + * 获取清理虚拟机标签 + * + * @return 清理虚拟机标签 + */ + public static String getCleanVmLabel() { + return "Clean_Job#"; + } + + /** + * 获取启动虚拟机标签 + * + * @return 启动虚拟机标签 + */ + public static String getStartVmLabel() { + return "startVM-"; + } + + /** + * 获取准备虚拟机标签 + * + * @return 准备虚拟机标签 + */ + public static String getPrepareVmLabel() { + return "Prepare_Job#"; + } + + /** + * 获取等待标签 + * + * @return 等待标签 + */ + public static String getWaitLabel() { + return "Wait_Finish_Job#"; + } + + /** + * 获取结束标签 + * + * @return 结束标签 + */ + public static String getEndLabel() { + return "end-"; + } + + /** + * 获取容器作业ID + * + * @param randomSeed 随机种子 + * @param jobIdSet 已存在的作业ID集合 + * @return 生成的容器作业ID + */ + public static String getContainerJobId(int randomSeed, Set jobIdSet) { + Random random = new Random(randomSeed); + StringBuilder sequence = new StringBuilder(); + for (int i = 0; i < 3; i++) { + sequence.append((char) (random.nextInt('z' - 'A' + 1) + 'A')); + } + String jobId = "job_" + sequence; + return jobIdSet.contains(jobId) ? jobId + "_" + DateUtil.current() : jobId; + } + + /** + * 判断是否为虚拟机任务 + * + * @param taskId 任务ID + * @return 如果是虚拟机任务返回 true,否则返回 false + */ + public static boolean isVMTask(String taskId) { + return taskId.startsWith(getStartVmLabel()) || + taskId.startsWith(getStopVmLabel()) || + taskId.startsWith(getEndLabel()); + } + + /** + * 判断是否为矩阵容器ID + * + * @param containerId 容器ID + * @return 如果是矩阵容器ID返回 true,否则返回 false + */ + public static boolean isMatrixContainerId(String containerId) { + try { + return Integer.parseInt(containerId) > 1000; + } catch (NumberFormatException ignore) { + return false; + } + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/BuildTaskException.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/BuildTaskException.java new file mode 100644 index 0000000..6307303 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/BuildTaskException.java @@ -0,0 +1,33 @@ +package cd.casic.ci.process.api.engine.exception; + +import lombok.Getter; + +import javax.lang.model.type.ErrorType; + +/** + * @author by mianbin + * @Classname BuildTaskException + * @Description TODO + * @Date 2025/3/31 16:31 + */ +@Getter +public class BuildTaskException extends Exception { + private final ErrorType errorType; + private final int errorCode; + private final String pipelineId; + private final String buildId; + private final String taskId; + + public BuildTaskException(ErrorType errorType, int errorCode, String errorMsg, String pipelineId, String buildId, String taskId) { + super(errorMsg); + this.errorType = errorType; + this.errorCode = errorCode; + this.pipelineId = pipelineId; + this.buildId = buildId; + this.taskId = taskId; + } + + public BuildTaskException(ErrorType errorType, int errorCode, String errorMsg) { + this(errorType, errorCode, errorMsg, null, null, null); + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/InvalidTimerException.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/InvalidTimerException.java new file mode 100644 index 0000000..f3de3e3 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/InvalidTimerException.java @@ -0,0 +1,13 @@ +package cd.casic.ci.process.api.engine.exception; + +/** + * @author by mianbin + * @Classname InvalidTimerException + * @Description TODO + * @Date 2025/3/31 16:32 + */ +public class InvalidTimerException extends Exception { + public InvalidTimerException() { + super(); + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/PipelineNotExistException.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/PipelineNotExistException.java new file mode 100644 index 0000000..ac8fd7f --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/exception/PipelineNotExistException.java @@ -0,0 +1,13 @@ +package cd.casic.ci.process.api.engine.exception; + +/** + * @author by mianbin + * @Classname PipelineNotExistException + * @Description TODO + * @Date 2025/3/31 16:32 + */ +public class PipelineNotExistException extends Exception { + public PipelineNotExistException(String msg) { + super(msg); + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/BuildInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/BuildInfo.java new file mode 100644 index 0000000..933736a --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/BuildInfo.java @@ -0,0 +1,108 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.enums.ChannelCode; +import cd.casic.ci.common.pipeline.pojo.BuildParameters; +import cd.casic.ci.common.pojo.ErrorInfo; +import cd.casic.ci.process.api.process.pojo.BuildStageStatus; +import cd.casic.ci.process.api.process.pojo.PipelineBuildMaterial; +import cd.casic.ci.process.api.process.pojo.code.WebhookInfo; +import lombok.Data; +import org.apache.tomcat.jni.FileInfo; + +import java.util.List; + +/** + * @author by mianbin + * @Classname BuildInfo + * @Description TODO + * @Date 2025/3/31 16:36 + */ +@Data +public class BuildInfo { + private final String projectId; + private final String pipelineId; + private final String buildId; + private final int version; + private final String versionName; + private final String yamlVersion; + private final int buildNum; + private final String trigger; + private BuildStatus status; + private long queueTime; + private final long executeTime; + // 真正用来执行构建的人的身份(一般像Git触发,有可能]与触发人不一样,因为Git平台账号不一定是人) + private final String startUser; + // 真正的触发人(不一定是人,也可能是机器账号,比如git平台账号) + private final String triggerUser; + private Long startTime; + private Long endTime; + private final int taskCount; + private final String firstTaskId; + private final String parentBuildId; + private final String parentTaskId; + private final ChannelCode channelCode; + private List buildParameters; + private List errorInfoList; + private List stageStatus; + private final boolean debug; + //只用executeCount做判断 + @Deprecated + private final Boolean retryFlag; + private final int executeCount; + private String concurrencyGroup; + private final String webhookType; + private final WebhookInfo webhookInfo; + private final String buildMsg; + private final List material; + private final List artifactList; + private final String remark; + private final String recommendVersion; + private final String buildNumAlias; + private final Long updateTime; + private final Integer errorType; + private final Integer errorCode; + private final String errorMsg; + + public boolean isFinish() { + if (status.name().equals(BuildStatus.STAGE_SUCCESS.name()) && + endTime != null && + endTime > 0 && + startTime != null && + endTime > startTime) { + return true; + } + return status.isFinish(); + } + + public boolean isSuccess() { + if (status.name().equals(BuildStatus.STAGE_SUCCESS.name()) && + endTime != null && + endTime > 0 && + startTime != null && + endTime > startTime) { + return true; + } + return status.isSuccess(); + } + + public boolean isFailure() { + return status.isFailure(); + } + + public boolean isCancel() { + return status.isCancel(); + } + + public boolean isStageSuccess() { + return status == BuildStatus.STAGE_SUCCESS; + } + + public boolean isTriggerReviewing() { + return status == BuildStatus.TRIGGER_REVIEWING; + } + + public boolean isReadyToRun() { + return status.isReadyToRun(); + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/BuildRetryInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/BuildRetryInfo.java new file mode 100644 index 0000000..2b94f75 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/BuildRetryInfo.java @@ -0,0 +1,42 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.pojo.BuildParameters; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author by mianbin + * @Classname BuildRetryInfo + * @Description TODO + * @Date 2025/3/31 16:39 + */ +@Data +public class BuildRetryInfo { + /** + * 是否重新构建 + */ + private boolean rebuild; + /** + * 当前时间 + */ + private LocalDateTime nowTime; + /** + * 构建状态 + */ + private BuildStatus status; + /** + * 构建参数列表 + */ + private List buildParameters; + /** + * 并发组 + */ + private String concurrencyGroup; + /** + * 执行次数 + */ + private final int executeCount; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/ContainerStartInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/ContainerStartInfo.java new file mode 100644 index 0000000..7ebabb8 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/ContainerStartInfo.java @@ -0,0 +1,26 @@ +package cd.casic.ci.process.api.engine.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ContainerStartInfo + * @Description TODO + * @Date 2025/3/31 16:40 + */ +@Data +@Schema(title = "构建机启动信息模型") +public class ContainerStartInfo { + /** + * 主机名称 + */ + @Schema(title = "主机名称") + private PipelineBuildContainer buildContainer; + + /** + * 主机IP + */ + @Schema(title = "主机IP") + private PipelineBuildTask startBuildTask; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/HeartBeatInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/HeartBeatInfo.java new file mode 100644 index 0000000..ba9b0f2 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/HeartBeatInfo.java @@ -0,0 +1,29 @@ +package cd.casic.ci.process.api.engine.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Set; + +/** + * @author by mianbin + * @Classname HeartBeatInfo + * @Description TODO + * @Date 2025/3/31 15:22 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "心跳信息") +public class HeartBeatInfo { + @Schema(title = "项目ID") + private String projectId; + @Schema(title = "构建ID") + private String buildId; + @Schema(title = "项目ID") + private String vmSeqId; + @Schema(title = "取消的task任务的id集合") + private Set cancelTaskIds = null; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildContainer.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildContainer.java new file mode 100644 index 0000000..ff58eb6 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildContainer.java @@ -0,0 +1,35 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author by mianbin + * @Classname PipelineBuildContainer + * @Description TODO + * @Date 2025/3/31 16:56 + */ +@Data +@AllArgsConstructor +public class PipelineBuildContainer { + private final String projectId; + private final String pipelineId; + private final String buildId; + private final String stageId; + private final String containerId; // 与seq id同值 + private final String containerHashId; // 与model中的container.containerHashId同值 + private final String jobId; + private final Boolean matrixGroupFlag; + private final String matrixGroupId; + private final String containerType; + private final int seq; + private BuildStatus status; + private LocalDateTime startTime; + private LocalDateTime endTime; + private int cost = 0; + private int executeCount = 1; + private PipelineBuildContainerControlOption controlOption; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildContainerControlOption.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildContainerControlOption.java new file mode 100644 index 0000000..1405ba1 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildContainerControlOption.java @@ -0,0 +1,27 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.container.AgentReuseMutex; +import cd.casic.ci.common.pipeline.container.MutexGroup; +import cd.casic.ci.common.pipeline.option.JobControlOption; +import cd.casic.ci.common.pipeline.option.MatrixControlOption; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineBuildContainerControlOption + * @Description TODO + * @Date 2025/3/31 16:57 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PipelineBuildContainerControlOption { + private JobControlOption jobControlOption; + private MatrixControlOption matrixControlOption; + private boolean inFinallyStage; + private MutexGroup mutexGroup; + private Boolean containPostTaskFlag; // 是否包含post任务 + private AgentReuseMutex agentReuseMutex; // 是否包含构建机复用互斥 +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildStage.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildStage.java new file mode 100644 index 0000000..d80c20f --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildStage.java @@ -0,0 +1,73 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.pojo.StagePauseCheck; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author by mianbin + * @Classname PipelineBuildStage + * @Description TODO + * @Date 2025/3/31 16:57 + */ +@Data +public class PipelineBuildStage { + /** + * 项目 ID + */ + private String projectId; + /** + * 管道 ID + */ + private String pipelineId; + /** + * 构建 ID + */ + private String buildId; + /** + * 阶段 ID + */ + private String stageId; + /** + * 阶段序号 + */ + private int seq; + /** + * 阶段状态 + */ + private BuildStatus status; + /** + * 开始时间 + */ + private LocalDateTime startTime; + /** + * 结束时间 + */ + private LocalDateTime endTime; + /** + * 耗时 + */ + private int cost = 0; + /** + * 执行次数 + */ + private int executeCount = 1; + /** + * 控制选项 + */ + private PipelineBuildStageControlOption controlOption; + /** + * 进入检查 + */ + private StagePauseCheck checkIn; + /** + * 离开检查 + */ + private StagePauseCheck checkOut; + /** + * 用户可见的阶段 ID + */ + private String stageIdForUser; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildStageControlOption.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildStageControlOption.java new file mode 100644 index 0000000..02a4cb4 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildStageControlOption.java @@ -0,0 +1,44 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.option.StageControlOption; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author by mianbin + * @Classname PipelineBuildStageControlOption + * @Description 管道构建阶段控制选项类,用于封装管道构建阶段的控制相关信息 + * @Date 2025/3/31 16:58 + */ +@Data +public class PipelineBuildStageControlOption implements Serializable { + + /** + * 阶段控制选项 + */ + private final StageControlOption stageControlOption; + + /** + * 是否为最终阶段,默认为 false + */ + private final boolean finallyStage; + + /** + * 是否快速终止,默认为 false + */ + private final Boolean fastKill; + + /** + * 全参构造函数 + * + * @param stageControlOption 阶段控制选项 + * @param finallyStage 是否为最终阶段 + * @param fastKill 是否快速终止 + */ + public PipelineBuildStageControlOption(StageControlOption stageControlOption, boolean finallyStage, Boolean fastKill) { + this.stageControlOption = stageControlOption; + this.finallyStage = finallyStage; + this.fastKill = fastKill == null ? false : fastKill; + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildTask.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildTask.java new file mode 100644 index 0000000..7604e34 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineBuildTask.java @@ -0,0 +1,57 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.pojo.element.ElementAdditionalOptions; +import cd.casic.ci.common.pojo.ErrorType; +import lombok.AllArgsConstructor; +import lombok.Data; +import java.time.LocalDateTime; +import java.util.Map; + +/** + * @author by mianbin + * @Classname PipelineBuildTask + * @Description TODO + * @Date 2025/3/31 16:59 + */ +@Data +@AllArgsConstructor +public class PipelineBuildTask { + private final String projectId; + private final String pipelineId; + private final String templateId; + private final String buildId; + private final String stageId; + private final String containerId; + private final String containerHashId; + private final String containerType; + private final int taskSeq; + private final String taskId; + private final String taskName; + private final String taskType; + private final String taskAtom; + private BuildStatus status; + private Map taskParams; + private final ElementAdditionalOptions additionalOptions; + private Integer executeCount; + private String starter; + private final String approver; + private String subProjectId; + private String subBuildId; + private LocalDateTime startTime; + private LocalDateTime endTime; + private ErrorType errorType; + private Integer errorCode; + private String errorMsg; + private final String atomCode; + private final String stepId; + private Long totalTime; + private final String jobId; + + public String getTaskParam(String paramName) { + if (taskParams.get(paramName) != null) { + return taskParams.get(paramName).toString().trim(); + } + return ""; + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineInfo.java new file mode 100644 index 0000000..b67941f --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineInfo.java @@ -0,0 +1,76 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.enums.ChannelCode; +import cd.casic.ci.common.pipeline.enums.VersionStatus; +import cd.casic.ci.common.pipeline.pojo.transfer.TemplateInfo; +import cd.casic.ci.process.api.process.pojo.PipelinePermissions; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * @author by mianbin + * @Classname PipelineInfo + * @Description TODO + * @Date 2025/3/31 17:00 + */ +@Data +@Schema(title = "流水线信息") +public class PipelineInfo { + @Schema(title = "项目ID") + private String projectId; + @Schema(title = "流水线DI") + private String pipelineId; + @Schema(title = "模板ID") + private String templateId; + @Schema(title = "流水线名称") + private String pipelineName; + @Schema(title = "流水线描述") + private String pipelineDesc; + @Schema(title = "版本") + private int version = 1; + @Schema(title = "创建时间") + private long createTime = 0; + @Schema(title = "更新时间") + private long updateTime = 0; + @Schema(title = "创建者") + private String creator; + @Schema(title = "上一次的更新者") + private String lastModifyUser; + @Schema(title = "渠道号") + private ChannelCode channelCode; + @Schema(title = "是否能够手动启动") + private boolean canManualStartup; + @Schema(title = "是否可以跳过") + private boolean canElementSkip; + @Schema(title = "任务数") + private int taskCount; + @Schema(title = "版本名称") + private String versionName = ""; + @Schema(title = "ID") + private Long id; + @Schema(title = "流水线组名称列表", required = false) + private List viewNames; + @Schema(title = "最后构建启动时间", required = false) + private Long latestBuildStartTime; + @Schema(title = "最后构建结束时间", required = false) + private Long latestBuildEndTime; + @Schema(title = "最后构建状态", required = false) + private BuildStatus latestBuildStatus; + @Schema(title = "最后构建版本号", required = false) + private Integer latestBuildNum; + @Schema(title = "最后构建ID", required = false) + private String latestBuildId; + @Schema(title = "触发方式", required = false) + private String trigger; + @Schema(title = "约束模式下的模板信息", required = false) + private TemplateInfo templateInfo; + @Schema(title = "最新流水线版本状态(如有任何发布版本则为发布版本)", required = false) + private VersionStatus latestVersionStatus = VersionStatus.RELEASED; + @Schema(title = "流水线权限", required = false) + private PipelinePermissions permissions; + @Schema(title = "流水线被锁定,即禁用", required = false) + private Boolean locked = false; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineModelTask.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineModelTask.java new file mode 100644 index 0000000..5ce65a8 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineModelTask.java @@ -0,0 +1,36 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.pojo.element.ElementAdditionalOptions; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author by mianbin + * @Classname PipelineModelTask + * @Description 流水线模型插件任务 + * @Date 2025/3/31 17:00 + */ +@Data +@AllArgsConstructor +public class PipelineModelTask { + private final String projectId; + private final String pipelineId; + private final String stageId; + private final String containerId; + private final String taskId; + private final int taskSeq; + private final String taskName; + private final String atomCode; + private String atomVersion; + private final String classType; + private final String taskAtom; + private final Map taskParams = new ConcurrentHashMap<>(); + private ElementAdditionalOptions additionalOptions; + private String os = "linux"; + private String taskPosition = ""; // 插件在model中的位置,eg: stageSeq-jobSeq-taskSeq + private boolean stageEnable = true; + private boolean containerEnable = true; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelinePauseValue.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelinePauseValue.java new file mode 100644 index 0000000..62fa7c6 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelinePauseValue.java @@ -0,0 +1,19 @@ +package cd.casic.ci.process.api.engine.pojo; + +import lombok.Data; + +/** + * @author by mianbin + * @Classname PipelinePauseValue + * @Description TODO + * @Date 2025/3/31 17:01 + */ +@Data +public class PipelinePauseValue { + private String projectId; + private String buildId; + private String taskId; + private String defaultValue; + private String newValue; + private Integer executeCount; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineTimer.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineTimer.java new file mode 100644 index 0000000..f6b7653 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineTimer.java @@ -0,0 +1,26 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.enums.ChannelCode; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * @author by mianbin + * @Classname PipelineTimer + * @Description TODO + * @Date 2025/3/31 17:01 + */ +@Data +@AllArgsConstructor +public class PipelineTimer { + private String projectId; + private String pipelineId; + private String startUser; + private List crontabExpressions; + private ChannelCode channelCode; + private String repoHashId; + private List branchs; + private Boolean noScm; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineVersionWithInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineVersionWithInfo.java new file mode 100644 index 0000000..e46c058 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/PipelineVersionWithInfo.java @@ -0,0 +1,101 @@ +package cd.casic.ci.process.api.engine.pojo; + +import cd.casic.ci.common.pipeline.enums.ChannelCode; +import cd.casic.ci.common.pipeline.enums.VersionStatus; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineVersionWithInfo + * @Description TODO + * @Date 2025/3/31 17:02 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "流水线信息") +public class PipelineVersionWithInfo { + @Schema(title = "项目ID") + private String projectId; + + @Schema(title = "流水线DI") + private String pipelineId; + + @Schema(title = "模板ID") + private String templateId; + + @Schema(title = "流水线名称") + private String pipelineName; + + @Schema(title = "流水线描述") + private String pipelineDesc; + + @Schema(title = "版本") + private int version = 1; + + @Schema(title = "创建时间") + private long createTime; + + @Schema(title = "更新时间") + private Long updateTime; + + @Schema(title = "版本创建者") + private String creator; + + @Schema(title = "上一次的更新者") + private String lastModifyUser; + + @Schema(title = "渠道号") + private ChannelCode channelCode; + + @Schema(title = "是否能够手动启动") + private boolean canManualStartup; + + @Schema(title = "是否可以跳过") + private boolean canElementSkip; + + @Schema(title = "任务数") + private int taskCount; + + @Schema(title = "版本名称") + private String versionName = ""; + + @Schema(title = "ID") + private Long id; + + @Schema(title = "流水线组名称列表", required = false) + private java.util.List viewNames; + + @Schema(title = "关联构建记录总数", required = false) + private Integer referCount; + + @Schema(title = "发布版本号", required = false) + private Integer versionNum; + + @Schema(title = "编排版本号", required = false) + private Integer pipelineVersion; + + @Schema(title = "触发器版本号", required = false) + private Integer triggerVersion; + + @Schema(title = "配置版本号", required = false) + private Integer settingVersion; + + @Schema(title = "草稿版本状态标识", required = false) + private VersionStatus status = VersionStatus.RELEASED; + + @Schema(title = "版本变更说明", required = false) + private String description; + + @Schema(title = "该版本的来源版本(空时一定为主路径)", required = false) + private Integer baseVersion; + + @Schema(title = "草稿的来源版本名称(只在草稿版本有值)", required = false) + private String baseVersionName; + + @Schema(title = "调试构建ID", required = false) + private String debugBuildId; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/event/PipelineStreamEnabledEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/event/PipelineStreamEnabledEvent.java new file mode 100644 index 0000000..05cc6c2 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/engine/pojo/event/PipelineStreamEnabledEvent.java @@ -0,0 +1,35 @@ +package cd.casic.ci.process.api.engine.pojo.event; + +import cd.casic.ci.event.enums.ActionType; +import cd.casic.ci.event.pojo.pipeline.IPipelineEvent; + +/** + * @author by mianbin + * @Classname PipelineStreamEnabledEvent + * @Description TODO + * @Date 2025/3/31 16:33 + */ +public class PipelineStreamEnabledEvent extends IPipelineEvent { + private final String source; + private final String projectId; + private final String pipelineId; + private final String userId; + private ActionType actionType; + private int delayMills; + private final long gitProjectId; + private final String gitProjectUrl; + private final boolean enable; + + public PipelineStreamEnabledEvent(String source, String projectId, String pipelineId, String userId, + ActionType actionType, int delayMills, long gitProjectId, String gitProjectUrl, boolean enable) { + this.source = source; + this.projectId = projectId; + this.pipelineId = pipelineId; + this.userId = userId; + this.actionType = actionType != null ? actionType : ActionType.START; + this.delayMills = delayMills; + this.gitProjectId = gitProjectId; + this.gitProjectUrl = gitProjectUrl; + this.enable = enable; + } +} diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/PipelineBuildParamKey.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/PipelineBuildParamKey.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/PipelineBuildParamKey.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/PipelineBuildParamKey.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/PipelineViewType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/PipelineViewType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/PipelineViewType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/PipelineViewType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/ProcessMessageCode.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/ProcessMessageCode.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/ProcessMessageCode.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/constant/ProcessMessageCode.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/HistorySearchType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/HistorySearchType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/HistorySearchType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/HistorySearchType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/OperationLogType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/OperationLogType.java similarity index 97% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/OperationLogType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/OperationLogType.java index 6ba8bcb..aae52e0 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/OperationLogType.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/OperationLogType.java @@ -1,7 +1,7 @@ package cd.casic.ci.process.api.process.enums; +import cd.casic.ci.common.pipeline.enums.VersionStatus; import lombok.AllArgsConstructor; -import lombok.Data; import lombok.Getter; /** diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/VariableType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/VariableType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/VariableType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/enums/VariableType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/AccessRepository.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/AccessRepository.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/AccessRepository.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/AccessRepository.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildBasicInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildBasicInfo.java similarity index 93% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildBasicInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildBasicInfo.java index ed88d21..08b5c82 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildBasicInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildBasicInfo.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.BuildStatus; import io.swagger.v3.oas.annotations.media.Schema; /** diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildFormRepositoryValue.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildFormRepositoryValue.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildFormRepositoryValue.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildFormRepositoryValue.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistory.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistory.java similarity index 95% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistory.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistory.java index 6605656..752c8ca 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistory.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistory.java @@ -1,5 +1,8 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.pojo.BuildParameters; +import cd.casic.ci.common.pojo.ErrorInfo; +import cd.casic.ci.process.api.process.pojo.code.WebhookInfo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.apache.tomcat.jni.FileInfo; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryRemark.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryRemark.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryRemark.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryRemark.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryVariables.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryVariables.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryVariables.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryVariables.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithPipelineVersion.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithPipelineVersion.java similarity index 84% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithPipelineVersion.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithPipelineVersion.java index ec5975c..e4c093e 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithPipelineVersion.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithPipelineVersion.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.framework.commons.pojo.PageResult; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -16,7 +17,8 @@ import lombok.Data; @Schema(title = "历史构建模型-最新版本号-下载权限") public class BuildHistoryWithPipelineVersion { @Schema(title = "构建历史", required = true) - private SQLPage history; + // 这里随便用了一个分页 + private PageResult history; @Schema(title = "是否拥有下载构建的权限", required = true) private boolean hasDownloadPermission; @Schema(title = "最新的编排版本号", required = true) diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithVars.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithVars.java similarity index 95% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithVars.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithVars.java index 5fe298a..5c26497 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithVars.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildHistoryWithVars.java @@ -1,5 +1,8 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.pojo.BuildParameters; +import cd.casic.ci.common.pojo.ErrorInfo; +import cd.casic.ci.process.api.process.pojo.code.WebhookInfo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.apache.tomcat.jni.FileInfo; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildId.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildId.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildId.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildId.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildJobResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildJobResult.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildJobResult.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildJobResult.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildManualStartupInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildManualStartupInfo.java similarity index 87% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildManualStartupInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildManualStartupInfo.java index 3fb0455..265a14a 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildManualStartupInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildManualStartupInfo.java @@ -1,7 +1,11 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; +import cd.casic.ci.common.pipeline.pojo.BuildNo; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageProgressInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageProgressInfo.java similarity index 96% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageProgressInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageProgressInfo.java index dd38db7..309b26c 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageProgressInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageProgressInfo.java @@ -2,6 +2,8 @@ package cd.casic.ci.process.api.process.pojo; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageStatus.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageStatus.java similarity index 94% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageStatus.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageStatus.java index 1a7c670..85eac8e 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageStatus.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildStageStatus.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.pojo.time.BuildRecordTimeCost; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTask.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTask.java similarity index 97% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTask.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTask.java index 3503ba7..e3d49a4 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTask.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTask.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.BuildTaskStatus; import io.swagger.v3.oas.annotations.media.Schema; import java.util.Map; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskPauseInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskPauseInfo.java similarity index 94% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskPauseInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskPauseInfo.java index 58bd1c2..80930d5 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskPauseInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskPauseInfo.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskProgressInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskProgressInfo.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskProgressInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskProgressInfo.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskResult.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskResult.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTaskResult.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTemplateAcrossInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTemplateAcrossInfo.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTemplateAcrossInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildTemplateAcrossInfo.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildVariables.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildVariables.java similarity index 94% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildVariables.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildVariables.java index 06a9b19..b8fef95 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildVariables.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/BuildVariables.java @@ -1,9 +1,12 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.pojo.BuildParameters; +import cd.casic.ci.common.pojo.BuildEnv; import cd.casic.ci.project.dal.pojo.PipelineAsCodeSettings; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; import java.util.Map; /** diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/CreateCallBackResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/CreateCallBackResult.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/CreateCallBackResult.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/CreateCallBackResult.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/DockerEnableProject.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/DockerEnableProject.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/DockerEnableProject.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/DockerEnableProject.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/JobMutexGroup.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/JobMutexGroup.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/JobMutexGroup.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/JobMutexGroup.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PTemplateOrderByType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PTemplateOrderByType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PTemplateOrderByType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PTemplateOrderByType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PTemplateSortType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PTemplateSortType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PTemplateSortType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PTemplateSortType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Permission.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Permission.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Permission.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Permission.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Pipeline.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Pipeline.java similarity index 97% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Pipeline.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Pipeline.java index e19543d..72755f3 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Pipeline.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Pipeline.java @@ -1,5 +1,8 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.Model; +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.enums.VersionStatus; import cd.casic.ci.process.api.process.pojo.classify.PipelineGroupLabels; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineAtomRel.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineAtomRel.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineAtomRel.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineAtomRel.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineAtomReplaceHistory.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineAtomReplaceHistory.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineAtomReplaceHistory.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineAtomReplaceHistory.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineBuildMaterial.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineBuildMaterial.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineBuildMaterial.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineBuildMaterial.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCallBackInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCallBackInfo.java similarity index 81% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCallBackInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCallBackInfo.java index cc0f985..54ab16a 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCallBackInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCallBackInfo.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.CallBackEvent; +import cd.casic.ci.common.pipeline.pojo.event.CallBackNetWorkRegionType; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCollation.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCollation.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCollation.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCollation.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineContainerMonitor.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineContainerMonitor.java similarity index 90% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineContainerMonitor.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineContainerMonitor.java index 1cfbd86..6a18810 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineContainerMonitor.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineContainerMonitor.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.VMBaseOS; +import cd.casic.ci.common.pipeline.type.BuildType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCopy.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCopy.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCopy.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineCopy.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetail.java similarity index 94% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetail.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetail.java index a6243f1..2fc049a 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetail.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetail.java @@ -1,5 +1,8 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.VersionStatus; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineRunLockType; +import cd.casic.ci.process.api.process.pojo.pipeline.PipelineYamlVo; import cd.casic.ci.project.dal.pojo.PipelineAsCodeSettings; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetailInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetailInfo.java similarity index 97% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetailInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetailInfo.java index 04f3625..3b5e8be 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetailInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineDetailInfo.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.VersionStatus; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineId.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineId.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineId.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineId.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdAndName.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdAndName.java similarity index 92% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdAndName.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdAndName.java index 95df250..3e3ed9b 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdAndName.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdAndName.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.ChannelCode; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdInfo.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineIdInfo.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineListRequest.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineListRequest.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineListRequest.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineListRequest.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineName.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineName.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineName.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineName.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineNotifyTemplateEnum.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineNotifyTemplateEnum.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineNotifyTemplateEnum.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineNotifyTemplateEnum.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationDetail.java similarity index 93% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationDetail.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationDetail.java index d09f303..9bfd3dd 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationDetail.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationDetail.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.VersionStatus; +import cd.casic.ci.process.api.process.enums.OperationLogType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationLog.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationLog.java similarity index 94% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationLog.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationLog.java index e018a48..bd0f0f1 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationLog.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineOperationLog.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.process.api.process.enums.OperationLogType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelinePermissions.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelinePermissions.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelinePermissions.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelinePermissions.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineProjectRel.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineProjectRel.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineProjectRel.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineProjectRel.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineRemoteToken.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineRemoteToken.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineRemoteToken.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineRemoteToken.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineSortType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineSortType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineSortType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineSortType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStageTag.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStageTag.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStageTag.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStageTag.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStatus.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStatus.java similarity index 97% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStatus.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStatus.java index 39d416d..1c345f5 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStatus.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineStatus.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.BuildStatus; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplate.java similarity index 96% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplate.java index 4f4dab2..f4446b6 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplate.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplate.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.container.Stage; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplateInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplateInfo.java similarity index 96% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplateInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplateInfo.java index 739258a..bbd2c29 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplateInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineTemplateInfo.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.container.Stage; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineUser.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineUser.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineUser.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineUser.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineVersionReleaseRequest.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineVersionReleaseRequest.java similarity index 89% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineVersionReleaseRequest.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineVersionReleaseRequest.java index fea426d..46a5636 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineVersionReleaseRequest.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/PipelineVersionReleaseRequest.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.CodeTargetAction; +import cd.casic.ci.process.api.process.pojo.pipeline.PipelineYamlVo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ProcessConstants.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ProcessConstants.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ProcessConstants.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ProcessConstants.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ProjectPipelineCallBackHistory.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ProjectPipelineCallBackHistory.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ProjectPipelineCallBackHistory.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ProjectPipelineCallBackHistory.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Property.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Property.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Property.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Property.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Report.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Report.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Report.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/Report.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ReviewParam.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ReviewParam.java similarity index 89% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ReviewParam.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ReviewParam.java index f7828f6..416d25f 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ReviewParam.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/ReviewParam.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.enums.ManualReviewAction; +import cd.casic.ci.common.pipeline.pojo.element.atom.ManualReviewParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SetContextVarData.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SetContextVarData.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SetContextVarData.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SetContextVarData.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/StageQualityRequest.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/StageQualityRequest.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/StageQualityRequest.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/StageQualityRequest.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/StageTagRequest.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/StageTagRequest.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/StageTagRequest.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/StageTagRequest.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SubPipeline.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SubPipeline.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SubPipeline.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SubPipeline.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SubscriptionType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SubscriptionType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SubscriptionType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/SubscriptionType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/TransferResponseResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/TransferResponseResult.java similarity index 88% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/TransferResponseResult.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/TransferResponseResult.java index 132be88..d18657e 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/TransferResponseResult.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/TransferResponseResult.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo; +import cd.casic.ci.common.pipeline.pojo.PipelineModelAndSetting; +import cd.casic.ci.common.pipeline.pojo.transfer.TransferMark; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/VmInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/VmInfo.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/VmInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/VmInfo.java diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/app/PipelinePage.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/app/PipelinePage.java new file mode 100644 index 0000000..08f41c0 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/app/PipelinePage.java @@ -0,0 +1,47 @@ +package cd.casic.ci.process.api.process.pojo.app; + +import cd.casic.ci.process.api.process.pojo.classify.PipelineView; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname PipelinePage + * @Description TODO + * @Date 2025/4/1 16:18 + */ +@Data +@AllArgsConstructor +@Schema(title = "Pipeline分页数据包装模型") +public class PipelinePage { + @Schema(title = "总记录行数", required = true) + private Long count; + + @Schema(title = "第几页", required = true) + private Integer page; + + @Schema(title = "每页多少条", required = true) + private Integer pageSize; + + @Schema(title = "总共多少页", required = true) + private Integer totalPages; + + @Schema(title = "数据", required = true) + private java.util.List records; + + @Schema(title = "是否拥有创建权限", required = true) + private Boolean hasCreatePermission; + + @Schema(title = "总pipeline是否为空(不管有没有权限的)", required = true) + private Boolean hasPipelines; + + @Schema(title = "是否有收藏的流水线", required = true) + private Boolean hasFavorPipelines; + + @Schema(title = "是否有用户权限的流水线", required = true) + private Boolean hasPermissionPipelines; + + @Schema(title = "用户当前视图", required = false) + private PipelineView currentView; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/app/StartBuildContext.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/app/StartBuildContext.java new file mode 100644 index 0000000..d4b9a7a --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/app/StartBuildContext.java @@ -0,0 +1,458 @@ +package cd.casic.ci.process.api.process.pojo.app; + +import cd.casic.ci.common.constant.StringConstant; +import cd.casic.ci.common.pipeline.container.Container; +import cd.casic.ci.common.pipeline.container.Stage; +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.enums.ChannelCode; +import cd.casic.ci.common.pipeline.enums.StartType; +import cd.casic.ci.common.pipeline.pojo.BuildNo; +import cd.casic.ci.common.pipeline.pojo.BuildParameters; +import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeType; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineRunLockType; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineSetting; +import cd.casic.ci.common.pipeline.utils.CascadePropertyUtils; +import cd.casic.ci.common.pipeline.utils.EnvUtils; +import cd.casic.ci.event.enums.ActionType; +import cd.casic.ci.process.api.process.pojo.code.WebhookInfo; +import cd.casic.ci.process.api.process.utils.DependOnUtils; +import cd.casic.ci.process.api.process.utils.PipelineVarUtil; +import cd.casic.framework.commons.util.watcher.Watcher; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.time.LocalDateTime; +import java.util.*; + +import static cd.casic.ci.common.constant.PipelineConstants.PIPELINE_GIT_EVENT_URL; +import static cd.casic.ci.common.constant.WebhookConstant.*; +import static cd.casic.ci.process.api.process.utils.Constants.*; +import static cd.casic.ci.process.api.process.utils.PipelineVarUtil.CONTEXT_PREFIX; + +/** + * @author by mianbin + * @Classname StartBuildContext + * @Description TODO + * @Date 2025/4/1 16:23 + */ +@Data +@Slf4j +@AllArgsConstructor +public class StartBuildContext { + private static final int MAX_LENGTH = 255; + private static final int DELTA = 16; + + private final LocalDateTime now; + private final String projectId; + private final String pipelineId; + private final String buildId; + private final int resourceVersion; + private final String versionName; + private final String yamlVersion; + private final ActionType actionType; + private final int executeCount; + private final boolean stageRetry; + private final String retryStartTaskId; + private String firstTaskId; + private int containerSeq; + private int taskCount; + private final String userId; + private final String triggerUser; + private final StartType startType; + private final String parentBuildId; + private final String parentTaskId; + private final ChannelCode channelCode; + private final boolean retryFailedContainer; + private boolean needUpdateStage; + private final boolean skipFailedTask; + private final Map variables; + private final BuildStatus startBuildStatus; + private final WebhookInfo webhookInfo; + private final String buildMsg; + private final List triggerReviewers; + private final Map pipelineParamMap; + private final List buildParameters; + private final String concurrencyGroup; + private final PipelineSetting pipelineSetting; + private String buildNumAlias; + private int buildNum; + private BuildNo.BuildNoType buildNoType; + private Integer currentBuildNo; + private final boolean debug; + private final String debugModelStr; + private final Watcher watcher; + + public StartBuildContext(LocalDateTime now, String projectId, String pipelineId, String buildId, int resourceVersion, String versionName, String yamlVersion, ActionType actionType, int executeCount, boolean stageRetry, String retryStartTaskId, String firstTaskId, int containerSeq, int taskCount, String userId, String triggerUser, StartType startType, String parentBuildId, String parentTaskId, ChannelCode channelCode, boolean retryFailedContainer, boolean needUpdateStage, boolean skipFailedTask, Map variables, BuildStatus startBuildStatus, WebhookInfo webhookInfo, String buildMsg, List triggerReviewers, Map pipelineParamMap, List buildParameters, String concurrencyGroup, PipelineSetting pipelineSetting, String buildNumAlias, int buildNum, BuildNo.BuildNoType buildNoType, Integer currentBuildNo, boolean debug, String debugModelStr) { + this.now = now != null ? now : LocalDateTime.now(); + this.projectId = projectId; + this.pipelineId = pipelineId; + this.buildId = buildId; + this.resourceVersion = resourceVersion; + this.versionName = versionName; + this.yamlVersion = yamlVersion; + this.actionType = actionType; + this.executeCount = executeCount; + this.stageRetry = stageRetry; + this.retryStartTaskId = retryStartTaskId; + this.firstTaskId = firstTaskId; + this.containerSeq = containerSeq; + this.taskCount = taskCount; + this.userId = userId; + this.triggerUser = triggerUser; + this.startType = startType; + this.parentBuildId = parentBuildId; + this.parentTaskId = parentTaskId; + this.channelCode = channelCode; + this.retryFailedContainer = retryFailedContainer; + this.needUpdateStage = needUpdateStage; + this.skipFailedTask = skipFailedTask; + this.variables = variables; + this.startBuildStatus = startBuildStatus; + this.webhookInfo = webhookInfo; + this.buildMsg = buildMsg; + this.triggerReviewers = triggerReviewers; + this.pipelineParamMap = pipelineParamMap; + this.buildParameters = buildParameters; + this.concurrencyGroup = concurrencyGroup; + this.pipelineSetting = pipelineSetting; + this.buildNumAlias = buildNumAlias; + this.buildNum = buildNum; + this.buildNoType = buildNoType; + this.currentBuildNo = currentBuildNo; + this.debug = debug; + this.debugModelStr = debugModelStr; + this.watcher = new Watcher("startBuild-" + buildId); + } + + /** + * 检查Stage是否属于失败重试[stageRetry]时,当前[stage]是否需要跳过 + */ + public boolean needSkipWhenStageFailRetry(Stage stage) { + if (needRerunStage(stage)) { + return false; + } else if (!stageRetry) { + return false; + } else { + return BuildStatus.parse(stage.getStatus()).isFinish(); + } + } + + public boolean needSkipContainerWhenFailRetry(Stage stage, Container container) { + BuildStatus containerStatus = BuildStatus.parse(container.getStatus()); + if (needRerunStage(stage)) { + return false; + } else if (!containerStatus.isFailure() && !containerStatus.isCancel()) { + return false; + } else { + return !retryStartTaskId.isEmpty(); + } + } + + public boolean needSkipTaskWhenRetry(Stage stage, Container container, String taskId) { + if (stage.isFinally()) { + return false; + } else if (stage.getId().equals(retryStartTaskId)) { + return false; + } else if (retryStartTaskId.isEmpty()) { + return false; + } else if (isRetryDependOnContainer(container)) { + return false; + } else { + return !retryStartTaskId.equals(taskId); + } + } + + public boolean inSkipStage(Stage stage, Element atom) { + if (skipFailedTask && retryStartTaskId.equals(atom.getId())) { + return true; + } else { + return skipFailedTask && (stage.getId().equals(retryStartTaskId) && BuildStatus.parse(atom.getStatus()).isFailure()); + } + } + + /** + * 是否是要重试的失败容器 + */ + public boolean isRetryFailedContainer(Stage stage, Container container) { + if (stage.isFinally()) { + if (stage.getId().equals(retryStartTaskId)) { + return retryFailedContainer && BuildStatus.parse(container.getStatus()).isSuccess(); + } else { + return false; + } + } else if (isRetryDependOnContainer(container)) { + return false; + } else { + return retryFailedContainer && BuildStatus.parse(container.getStatus()).isSuccess(); + } + } + + // 失败重试,跳过的dependOn容器也应该被执行 + private boolean isRetryDependOnContainer(Container container) { + return DependOnUtils.enableDependOn(container) && BuildStatus.parse(container.getStatus()) == BuildStatus.SKIP; + } + + public boolean needRerunStage(Stage stage) { + return stage.isFinally() || retryStartTaskId == null || stage.getId().equals(retryStartTaskId); + } + + public boolean needRerunTask(Stage stage, Container container) { + return needRerunStage(stage) || isRetryDependOnContainer(container); + } + + public static StartBuildContext init(String projectId, String pipelineId, String buildId, int resourceVersion, String versionName, String yamlVersion, String modelStr, boolean debug, PipelineSetting pipelineSetting, List realStartParamKeys, Map pipelineParamMap, Map webHookStartParam, List triggerReviewers, Integer currentBuildNo) { + List buildParam = genOriginStartParamsList(realStartParamKeys, pipelineParamMap); + Map params = new HashMap<>(); + for (BuildParameters param : pipelineParamMap.values()) { + params.put(param.getKey(), param.getValue().toString()); + } + String retryStartTaskId = params.get(PIPELINE_RETRY_START_TASK_ID); + + ActionType actionType; + int executeCount; + boolean isStageRetry; + if (params.get(PIPELINE_RETRY_COUNT) != null) { + int count; + try { + count = Integer.parseInt(params.get(PIPELINE_RETRY_COUNT).trim()); + count = Math.max(count, 0); + } catch (NumberFormatException ignored) { + count = 0; + } + actionType = ActionType.RETRY; + executeCount = count + 1; + isStageRetry = retryStartTaskId != null && retryStartTaskId.startsWith("stage-"); + } else { + actionType = ActionType.START; + executeCount = 1; + isStageRetry = false; + } + ChannelCode channelCode = params.get(PIPELINE_START_CHANNEL) != null ? ChannelCode.valueOf(params.get(PIPELINE_START_CHANNEL)) : ChannelCode.BS; + boolean retryFailedContainer = params.get(PIPELINE_RETRY_ALL_FAILED_CONTAINER) != null ? Boolean.parseBoolean(params.get(PIPELINE_RETRY_ALL_FAILED_CONTAINER)) : false; + boolean skipFailedTask = params.get(PIPELINE_SKIP_FAILED_TASK) != null ? Boolean.parseBoolean(params.get(PIPELINE_SKIP_FAILED_TASK)) : false; + String buildMsg = params.get(PIPELINE_BUILD_MSG) != null ? StringConstant.coerceAtMaxLength(params.get(PIPELINE_BUILD_MSG), MAX_LENGTH) : null; + + String concurrencyGroup = null; + if (pipelineSetting != null && pipelineSetting.getRunLockType() == PipelineRunLockType.GROUP_LOCK && pipelineSetting.getConcurrencyGroup() != null) { + Map webhookParam = new HashMap<>(); + for (BuildParameters param : webHookStartParam.values()) { + webhookParam.put(param.getKey(), param.getValue().toString()); + } + concurrencyGroup = EnvUtils.parseEnv(pipelineSetting.getConcurrencyGroup(), PipelineVarUtil.fillContextVarMap(webhookParam)); + log.info("[$pipelineId]|[$buildId]|ConcurrencyGroup=$concurrencyGroup"); + } + + BuildStatus startBuildStatus = triggerReviewers == null || triggerReviewers.isEmpty() ? BuildStatus.QUEUE : BuildStatus.TRIGGER_REVIEWING; + + return new StartBuildContext( + LocalDateTime.now(), + projectId, + pipelineId, + buildId, + resourceVersion, + versionName, + yamlVersion, + actionType, + executeCount, + isStageRetry, + retryStartTaskId, + params.getOrDefault(PIPELINE_START_TASK_ID, ""), + 0, + 0, + params.get(PIPELINE_START_USER_ID), + params.get(PIPELINE_START_USER_NAME), + StartType.valueOf(params.get(PIPELINE_START_TYPE)), + params.get(PIPELINE_START_PARENT_BUILD_ID), + params.get(PIPELINE_START_PARENT_BUILD_TASK_ID), + channelCode, + retryFailedContainer, + false, + skipFailedTask, + params, + startBuildStatus, + getWebhookInfo(params), + buildMsg, + triggerReviewers, + pipelineParamMap, + buildParam, + concurrencyGroup, + pipelineSetting, + null, + 1, + null, + currentBuildNo, + debug, + modelStr + ); + } + + + private static WebhookInfo getWebhookInfo(Map params) { + List startTypes = Arrays.asList(StartType.WEB_HOOK.name(), StartType.PIPELINE.name(), StartType.SERVICE.name(), StartType.REMOTE.name()); + String startType = params.get(PIPELINE_START_TYPE); + if (!startTypes.contains(startType)) { + return null; + } + return new WebhookInfo( + supportCustomMaterials(startType) ? startType : params.get(REPO_WEBHOOK_REPO_TYPE), + params.get(REPO_WEBHOOK_REPO_NAME), + params.get(PIPELINE_WEBHOOK_COMMIT_MESSAGE), + params.get(REPO_WEBHOOK_REPO_URL), + params.get(PIPELINE_WEBHOOK_TYPE), + params.get(PIPELINE_WEBHOOK_BRANCH), + params.get(REPO_WEBHOOK_REPO_ALIAS_NAME), + params.get(PIPELINE_WEBHOOK_TYPE).equals(CodeType.GIT.name()) ? params.get(REPO_GIT_WEBHOOK_EVENT_TYPE) : params.get(PIPELINE_WEBHOOK_EVENT_TYPE), + params.get(PIPELINE_WEBHOOK_REVISION), + params.get(PIPELINE_WEBHOOK_REVISION), + params.get(REPO_GIT_WEBHOOK_MR_MERGE_COMMIT_SHA), + params.get(REPO_GIT_WEBHOOK_MR_SOURCE_BRANCH), + params.get(REPO_GIT_WEBHOOK_MR_ID), + params.get(REPO_GIT_WEBHOOK_MR_NUMBER), + params.get(REPO_GIT_WEBHOOK_MR_URL), + params.get(REPO_WEBHOOK_REPO_AUTH_USER), + params.get(REPO_GIT_WEBHOOK_TAG_NAME), + params.get(REPO_GIT_WEBHOOK_ISSUE_IID), + params.get(REPO_GIT_WEBHOOK_NOTE_ID), + params.get(REPO_GIT_WEBHOOK_REVIEW_ID), + params.get(PIPELINE_START_PARENT_PROJECT_ID), + params.get(PIPELINE_START_PARENT_PIPELINE_ID), + params.get(PIPELINE_START_PARENT_PIPELINE_NAME), + params.get(PIPELINE_START_PARENT_BUILD_ID), + params.get(PIPELINE_START_PARENT_BUILD_NUM), + supportCustomMaterials(startType) ? params.get(BK_CI_MATERIAL_URL) : params.get(PIPELINE_GIT_EVENT_URL), + params.get(BK_CI_MATERIAL_ID), + params.get(BK_CI_MATERIAL_NAME) + ); + } + + /** + * 是否支持自定义触发材料 + */ + private static boolean supportCustomMaterials(String startType) { + return startType != null && (startType.equals(StartType.REMOTE.name()) || startType.equals(StartType.SERVICE.name())); + } + + public static StartBuildContext init4SendBuildStartEvent(String userId, String projectId, String pipelineId, String buildId, int resourceVersion, String versionName, ActionType actionType, int executeCount, String firstTaskId, StartType startType, BuildStatus startBuildStatus, boolean debug) { + return new StartBuildContext( + LocalDateTime.now(), + projectId, + pipelineId, + buildId, + resourceVersion, + versionName, + null, + actionType, + executeCount, + false, + null, + firstTaskId, + 0, + 0, + userId, + "", + startType, + "", + "", + ChannelCode.BS, + false, + false, + false, + Collections.emptyMap(), + startBuildStatus, + null, + null, + null, + new HashMap<>(), + new ArrayList<>(), + null, + null, + null, + 1, + null, + null, + debug, + null + ); + } + + /** + * 根据[realStartParamKeys]启动参数Key列表读取[pipelineParamMap]参数值来生成流水线启动变量列表,不包含其他 + */ + private static ArrayList genOriginStartParamsList(List realStartParamKeys, Map pipelineParamMap) { + ArrayList originStartParams = new ArrayList<>(realStartParamKeys.size() + DELTA); + HashMap originStartContexts = new HashMap<>(realStartParamKeys.size()); + for (String key : realStartParamKeys) { + BuildParameters param = pipelineParamMap.get(key); + if (param != null) { + if (CascadePropertyUtils.supportCascadeParam(param.getValueType())) { + originStartParams.addAll(fillCascadeParam(param, originStartContexts)); + } else { + originStartParams.add(param); + fillContextPrefix(param, originStartContexts); + } + } + } + pipelineParamMap.putAll(originStartContexts); + + if (pipelineParamMap.containsKey(BUILD_NO)) { + originStartParams.add(pipelineParamMap.get(BUILD_NO)); + } + if (pipelineParamMap.containsKey(PIPELINE_BUILD_MSG)) { + originStartParams.add(pipelineParamMap.get(PIPELINE_BUILD_MSG)); + } + if (pipelineParamMap.containsKey(PIPELINE_RETRY_COUNT)) { + originStartParams.add(pipelineParamMap.get(PIPELINE_RETRY_COUNT)); + } + + return originStartParams; + } + + private static void fillContextPrefix(BuildParameters param, HashMap originStartContexts) { + String key = param.getKey(); + if (key.startsWith(CONTEXT_PREFIX)) { + originStartContexts.put(key, param); + } else { + String ctxKey = CONTEXT_PREFIX + key; + originStartContexts.put(ctxKey, param); + } + } + + /** + * 根据原始值,填充级联参数 + * xxx = {"repo-name": "xxx/xxx","branch":"master"} + * xxx.repo-name = xxx/xxx + * xxx.branch = master + */ + private static List fillCascadeParam(BuildParameters param, HashMap originStartContexts) { + List originStartParams = new ArrayList<>(); + String key = param.getKey(); + Object paramValue = CascadePropertyUtils.parseDefaultValue(key, param.getValue(), param.getValueType()); + BuildParameters cascadeParam = new BuildParameters( + param.getKey(), + paramValue, + param.getValueType(), + param.getDesc(), + param.getDefaultValue() + ); + originStartParams.add(cascadeParam); + // 填充下级参数的[variables.] + fillContextPrefix(cascadeParam, originStartContexts); + Map cascadeVariableKeyMap = CascadePropertyUtils.getCascadeVariableKeyMap(key, param.getValueType()); + for (Map.Entry entry : cascadeVariableKeyMap.entrySet()) { + String subKey = entry.getKey(); + String paramKey = entry.getValue(); + BuildParameters subParam = new BuildParameters( + paramKey, + paramValue != null && ((Map) paramValue).containsKey(subKey) ? ((Map) paramValue).get(subKey) : "", + param.getValueType(), + param.getDesc(), + param.getDefaultValue() + ); + // 填充下级参数的[variables.] + fillContextPrefix(subParam, originStartContexts); + } + return originStartParams; + } +} diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/Audit.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/Audit.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/Audit.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/Audit.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/AuditInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/AuditInfo.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/AuditInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/AuditInfo.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/AuditPage.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/AuditPage.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/AuditPage.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/AuditPage.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/QueryAudit.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/QueryAudit.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/QueryAudit.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/audit/QueryAudit.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroup.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroup.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroup.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroup.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupCreate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupCreate.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupCreate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupCreate.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupLabels.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupLabels.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupLabels.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupLabels.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupUpdate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupUpdate.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupUpdate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupUpdate.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupWithLabels.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupWithLabels.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupWithLabels.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineGroupWithLabels.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabel.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabel.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabel.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabel.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelCreate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelCreate.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelCreate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelCreate.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelDetail.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelDetail.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelDetail.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelId.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelId.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelId.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelId.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelUpdate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelUpdate.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelUpdate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineLabelUpdate.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineNewView.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineNewView.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineNewView.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineNewView.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineNewViewSummary.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineNewViewSummary.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineNewViewSummary.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineNewViewSummary.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineView.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineView.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineView.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineView.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewAndPipelines.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewAndPipelines.java similarity index 93% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewAndPipelines.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewAndPipelines.java index d49a2d1..841c70a 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewAndPipelines.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewAndPipelines.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.classify; +import cd.casic.ci.process.api.process.pojo.Pipeline; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewBulkAdd.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewBulkAdd.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewBulkAdd.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewBulkAdd.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewBulkRemove.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewBulkRemove.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewBulkRemove.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewBulkRemove.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewClassify.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewClassify.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewClassify.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewClassify.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewCreate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewCreate.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewCreate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewCreate.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewDict.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewDict.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewDict.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewDict.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilter.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilter.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilter.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilter.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByCreator.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByCreator.java similarity index 92% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByCreator.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByCreator.java index 535bfb0..eb2794e 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByCreator.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByCreator.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.classify; +import cd.casic.ci.process.api.process.pojo.classify.enums.Condition; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByLabel.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByLabel.java similarity index 92% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByLabel.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByLabel.java index af5f854..2f767d8 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByLabel.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByLabel.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.classify; +import cd.casic.ci.process.api.process.pojo.classify.enums.Condition; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByName.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByName.java similarity index 91% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByName.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByName.java index 81a336e..f3806ef 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByName.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByName.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.classify; +import cd.casic.ci.process.api.process.pojo.classify.enums.Condition; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByPacRepo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByPacRepo.java similarity index 86% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByPacRepo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByPacRepo.java index ba9d155..b1dcc22 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByPacRepo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewFilterByPacRepo.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.classify; +import cd.casic.ci.process.api.process.pojo.classify.enums.Condition; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -15,6 +16,8 @@ import lombok.Data; @Data @Schema(title = "流水线视图-通过PAC仓库过滤", description = "filterByPacRepo") public class PipelineViewFilterByPacRepo extends PipelineViewFilter { + + public static final String CLASS_TYPE = "filterByPacRepo"; @Schema(title = "条件", required = false) private Condition condition; @Schema(title = "代码库HashId", required = false) diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewForm.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewForm.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewForm.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewForm.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewHitFilters.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewHitFilters.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewHitFilters.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewHitFilters.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewId.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewId.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewId.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewId.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewIdAndName.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewIdAndName.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewIdAndName.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewIdAndName.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewMatchDynamic.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewMatchDynamic.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewMatchDynamic.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewMatchDynamic.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPipelineCount.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPipelineCount.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPipelineCount.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPipelineCount.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPipelinePage.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPipelinePage.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPipelinePage.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPipelinePage.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPreview.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPreview.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPreview.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewPreview.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewSettings.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewSettings.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewSettings.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewSettings.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewTopForm.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewTopForm.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewTopForm.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewTopForm.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewUpdate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewUpdate.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewUpdate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/PipelineViewUpdate.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/enums/Condition.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/enums/Condition.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/enums/Condition.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/enums/Condition.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/enums/Logic.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/enums/Logic.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/enums/Logic.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/classify/enums/Logic.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/PipelineBuildCommit.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/PipelineBuildCommit.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/PipelineBuildCommit.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/PipelineBuildCommit.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookBuildResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookBuildResult.java similarity index 86% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookBuildResult.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookBuildResult.java index 2c20039..373099f 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookBuildResult.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookBuildResult.java @@ -1,6 +1,7 @@ package cd.casic.ci.process.api.process.pojo.code; import cd.casic.ci.process.api.process.pojo.BuildId; +import cd.casic.ci.process.api.process.pojo.classify.PipelineViewPreview; import cd.casic.ci.process.api.process.pojo.trigger.PipelineTriggerReasonDetail; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -20,7 +21,7 @@ public class WebhookBuildResult { @Schema(title = "触发结果") private boolean result; @Schema(title = "流水线信息") - private PipelineInfo pipelineInfo; + private PipelineViewPreview.PipelineInfo pipelineInfo; @Schema(title = "触发buildId") private BuildId buildId; @Schema(title = "触发失败原因") diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookCommit.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookCommit.java similarity index 82% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookCommit.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookCommit.java index 358ee4b..0b87303 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookCommit.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookCommit.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo.code; +import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeEventType; +import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeType; import cd.casic.ci.log.scm.enums.RepositoryConfig; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookInfo.java similarity index 98% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookInfo.java index 5016bfa..35d37a1 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/code/WebhookInfo.java @@ -1,6 +1,7 @@ package cd.casic.ci.process.api.process.pojo.code; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Data; /** @@ -13,6 +14,7 @@ import lombok.Data; * @description:Todo */ @Data +@AllArgsConstructor public class WebhookInfo { @Schema(title = "代码库类型", required = true) private String codeType; // CodeType.name diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/IDispatchEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/IDispatchEvent.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/IDispatchEvent.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/IDispatchEvent.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentShutdownDemoteEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentShutdownDemoteEvent.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentShutdownDemoteEvent.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentShutdownDemoteEvent.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentShutdownEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentShutdownEvent.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentShutdownEvent.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentShutdownEvent.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentStartupDemoteEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentStartupDemoteEvent.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentStartupDemoteEvent.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentStartupDemoteEvent.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentStartupEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentStartupEvent.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentStartupEvent.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineAgentStartupEvent.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessShutdownEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessShutdownEvent.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessShutdownEvent.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessShutdownEvent.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessStartupEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessStartupEvent.java similarity index 96% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessStartupEvent.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessStartupEvent.java index 16c9c65..1bc3cef 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessStartupEvent.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/mq/PipelineBuildLessStartupEvent.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.mq; +import cd.casic.ci.common.pojo.Zone; import cd.casic.ci.event.enums.ActionType; import cd.casic.ci.event.pojo.pipeline.IPipelineEvent; diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/open/BuildStatusInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/open/BuildStatusInfo.java new file mode 100644 index 0000000..263333f --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/open/BuildStatusInfo.java @@ -0,0 +1,17 @@ +package cd.casic.ci.process.api.process.pojo.open; + +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import lombok.Data; + +/** + * @author by mianbin + * @Classname BuildStatusInfo + * @Description open接口返回的构建状态封装 + * @Date 2025/3/31 17:05 + */ +@Data +public class BuildStatusInfo { + private final String startUser; + private final boolean debug; + private final BuildStatus status; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/AppModelDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/AppModelDetail.java new file mode 100644 index 0000000..9abb083 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/AppModelDetail.java @@ -0,0 +1,81 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.pipeline.Model; +import cd.casic.ci.process.api.process.pojo.PipelineBuildMaterial; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * @author by mianbin + * @Classname AppModelDetail + * @Description TODO + * @Date 2025/3/31 17:09 + */ +@Data +@Schema(title = "APP-构建详情-构建信息") +public class AppModelDetail { + @Schema(title = "ID", required = true) + private String buildId; + + @Schema(title = "启动用户", required = true) + private String userId; + + @Schema(title = "触发条件", required = true) + private String trigger; + + @Schema(title = "Start time", required = true) + private Long startTime; + + @Schema(title = "End time", required = false) + private Long endTime; + + @Schema(title = "Build status", required = true) + private String status; + + @Schema(title = "服务器当前时间戳", required = true) + private Long currentTimestamp; + + @Schema(title = "构建号", required = true) + private Integer buildNum; + + @Schema(title = "取消构建的用户", required = false) + private String cancelUserId; + + @Schema(title = "归档文件个数", required = false) + private Integer fileCount; + + @Schema(title = "包的版本(多个分号分隔)", required = false) + private String packageVersion; + + @Schema(title = "流水线Id", required = false) + private String pipelineId; + + @Schema(title = "流水线版本", required = false) + private Integer pipelineVersion; + + @Schema(title = "流水线名字", required = false) + private String pipelineName; + + @Schema(title = "项目Id", required = false) + private String projectId; + + @Schema(title = "是否收藏", required = false) + private Boolean hasCollect; + + @Schema(title = "编排文件", required = true) + private Model model; + + @Schema(title = "原材料", required = false) + private List material; + + @Schema(title = "备注", required = false) + private String remark; + + @Schema(title = "运行耗时(毫秒,不包括人工审核时间)", required = false) + private Long executeTime; + + @Schema(title = "构建信息", required = false) + private String buildMsg; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/BatchDeletePipeline.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/BatchDeletePipeline.java new file mode 100644 index 0000000..a86ccaa --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/BatchDeletePipeline.java @@ -0,0 +1,22 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname BatchDeletePipeline + * @Description TODO + * @Date 2025/3/31 17:21 + */ +@Data +@AllArgsConstructor +@Schema(title = "批量删除流水线") +public class BatchDeletePipeline { + @Schema(title = "项目ID") + private String projectId; + + @Schema(title = "流水线ID列表") + private java.util.List pipelineIds; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/BuildRecordInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/BuildRecordInfo.java new file mode 100644 index 0000000..6ba816d --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/BuildRecordInfo.java @@ -0,0 +1,22 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.pipeline.pojo.time.BuildRecordTimeCost; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname BuildRecordInfo + * @Description TODO + * @Date 2025/3/31 17:22 + */ +@Data +@AllArgsConstructor +@Schema(title = "执行次数记录") +public class BuildRecordInfo { + @Schema(title = "触发人", required = true) + private String startUser; + @Schema(title = "耗时详情", required = true) + private BuildRecordTimeCost timeCost; +} \ No newline at end of file diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DeletePipelineResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DeletePipelineResult.java new file mode 100644 index 0000000..94045e5 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DeletePipelineResult.java @@ -0,0 +1,23 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname DeletePipelineResult + * @Description TODO + * @Date 2025/3/31 17:28 + */ +@Data +@AllArgsConstructor +@Schema(title = "删除流水线结果") +public class DeletePipelineResult { + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "流水线名称", required = true) + private String pipelineName; + @Schema(title = "流水线版本号", required = true) + private int version; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DeployPipelineResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DeployPipelineResult.java new file mode 100644 index 0000000..17afdb6 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DeployPipelineResult.java @@ -0,0 +1,31 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname DeployPipelineResult + * @Description TODO + * @Date 2025/3/31 17:28 + */ +@Data +@Schema(title = "配置流水线结果") +public class DeployPipelineResult { + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "流水线名称", required = true) + private String pipelineName; + @Schema(title = "流水线版本号", required = true) + private int version; + @Schema(title = "发布版本号", required = false) + private Integer versionNum; + @Schema(title = "生成版本名称", required = false) + private String versionName; + @Schema(title = "目标链接", required = false) + private String targetUrl; + @Schema(title = "yaml信息", required = false) + private PipelineYamlVo yamlInfo; + @Schema(title = "是否更新了推荐版本号基准值", required = false) + private Boolean updateBuildNo; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DynamicParameterInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DynamicParameterInfo.java new file mode 100644 index 0000000..1479714 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/DynamicParameterInfo.java @@ -0,0 +1,63 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author by mianbin + * @Classname DynamicParameterInfo + * @Description TODO + * @Date 2025/3/31 17:30 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "DynamicParameter模型-ID") +public class DynamicParameterInfo { + @JsonProperty("id") + private String id; // 该行的唯一标识,必填 + + @JsonProperty("paramModels") + private List paramModels; +} + +@Data +@NoArgsConstructor +@AllArgsConstructor +class DynamicParameterInfoParam { + @JsonProperty("value") + private String value = null; // 值,可做为初始化的默认值 + + @JsonProperty("disabled") + private boolean disabled; // 控制是否可编辑 + + @JsonProperty("id") + private String id; // 该模型的唯一标识,必填 + + @JsonProperty("isMultiple") + private Boolean isMultiple = null; // select是否多选 + + @JsonProperty("label") + private String label = null; // testLabel + + @JsonProperty("list") + private List list = null; // type是select起作用,需要有id和name字段 + + @JsonProperty("listType") + private String listType = null; // 获取列表方式,可以是url或者list + + @JsonProperty("type") + private String type; // 可以是input或者select + + @JsonProperty("url") + private String url = null; // type是select且listType是url起作用 + + @JsonProperty("dataPath") + private String dataPath = null; // 接口返回值,取数的路径,默认为 data.records +} + diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ModelDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ModelDetail.java new file mode 100644 index 0000000..26fdd14 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ModelDetail.java @@ -0,0 +1,56 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.pipeline.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ModelDetail + * @Description TODO + * @Date 2025/3/31 17:31 + */ +@Data +@Schema(title = "构建详情-构建信息") +public class ModelDetail { + @Schema(title = "构建ID", required = true) + private String id; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "流水线名称", required = true) + private String pipelineName; + @Schema(title = "启动用户", required = true) + private String userId; + @Schema(title = "触发用户", required = true) + private String triggerUser; + @Schema(title = "触发条件", required = true) + private String trigger; + @Schema(title = "Start time", required = true) + private Long startTime; + @Schema(title = "End time", required = false) + private Long endTime; + @Schema(title = "Build status", required = true) + private String status; + @Schema(title = "Build Model", required = true) + private Model model; + @Schema(title = "服务器当前时间戳", required = true) + private Long currentTimestamp; + @Schema(title = "构建号", required = true) + private Integer buildNum; + @Schema(title = "取消构建的用户", required = false) + private String cancelUserId; + @Schema(title = "本次执行的编排版本号", required = true) + private Integer curVersion; + @Schema(title = "流水线当前最新版本号", required = true) + private Integer latestVersion; + @Schema(title = "最新一次的构建buildNo", required = true) + private Integer latestBuildNum; + @Schema(title = "最近修改人", required = true) + private String lastModifyUser; + @Schema(title = "执行耗时(排除系统耗时)流水线执行结束时才赋值", required = true) + private Long executeTime = 0L; + @Schema(title = "触发审核人列表", required = false) + private java.util.List triggerReviewers; + @Schema(title = "是否为调试构建", required = false) + private Boolean debug = false; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ModelRecord.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ModelRecord.java new file mode 100644 index 0000000..58178ef --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ModelRecord.java @@ -0,0 +1,95 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.pipeline.Model; +import cd.casic.ci.common.pipeline.pojo.transfer.TemplateInfo; +import cd.casic.ci.common.pojo.ErrorInfo; +import cd.casic.ci.process.api.process.pojo.BuildStageStatus; +import cd.casic.ci.process.api.process.pojo.PipelineBuildMaterial; +import cd.casic.ci.process.api.process.pojo.code.WebhookInfo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author by mianbin + * @Classname ModelRecord + * @Description TODO + * @Date 2025/3/31 17:37 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "构建详情-构建信息") +public class ModelRecord { + @Schema(title = "构建ID", required = true) + private String id; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "流水线名称", required = true) + private String pipelineName; + @Schema(title = "启动用户", required = true) + private String userId; + @Schema(title = "触发用户", required = true) + private String triggerUser; + @Schema(title = "触发条件", required = true) + private String trigger; + @Schema(title = "触发时间(进队列时间)", required = true) + private Long queueTime; + @Schema(title = "执行开始时间", required = true) + private Long startTime; + @Schema(title = "排队耗时(进队列到开始执行)", required = true) + private Long queueTimeCost; + @Schema(title = "执行结束时间", required = false) + private Long endTime; + @Schema(title = "Build status", required = true) + private String status; + @Schema(title = "Build Model", required = true) + private Model model; + @Schema(title = "服务器当前时间戳", required = true) + private Long currentTimestamp; + @Schema(title = "构建号", required = true) + private Integer buildNum; + @Schema(title = "取消构建的用户", required = false) + private String cancelUserId; + @Schema(title = "本次执行的编排版本号", required = true) + private Integer curVersion; + @Schema(title = "本次执行的编排版本名", required = true) + private String curVersionName; + @Schema(title = "流水线当前最新版本号", required = true) + private Integer latestVersion; + @Schema(title = "最新一次的构建buildNo", required = true) + private Integer latestBuildNum; + @Schema(title = "最近修改人", required = false) + private String lastModifyUser; + @Deprecated + @Schema(title = "执行耗时(排除系统耗时)流水线执行结束时才赋值", required = true) + private Long executeTime = 0L; + @Schema(title = "流水线任务执行错误", required = false) + private List errorInfoList; + @Schema(title = "已执行stage的状态", required = false) + private List stageStatus; + @Schema(title = "触发审核人列表", required = false) + private List triggerReviewers; + @Schema(title = "当前查询的执行次数", required = false) + private Integer executeCount; + @Deprecated + @Schema(title = "历史重试执行人列表(有序)", required = true) + private List startUserList; + @Schema(title = "历史重试人列表(有序)", required = true) + private List recordList; + @Schema(title = "构建信息", required = false) + private String buildMsg; + @Schema(title = "原材料", required = false) + private List material; + @Schema(title = "备注", required = false) + private String remark; + @Schema(title = "是否为调试构建", required = false) + private Boolean debug = false; + @Schema(title = "触发信息(包括代码库等)", required = false) + private WebhookInfo webhookInfo; + @Schema(title = "约束模式下的模板信息", required = false) + private TemplateInfo templateInfo; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineCollection.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineCollection.java new file mode 100644 index 0000000..1395d05 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineCollection.java @@ -0,0 +1,23 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineCollection + * @Description TODO + * @Date 2025/3/31 17:39 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "流水线收藏模型") +public class PipelineCollection { + @Schema(title = "项目id", required = false) + private String projectId; + @Schema(title = "流水线id", required = false) + private String pipelineId; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineCount.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineCount.java new file mode 100644 index 0000000..b95fcc7 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineCount.java @@ -0,0 +1,27 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname PipelineCount + * @Description TODO + * @Date 2025/3/31 17:39 + */ +@Data +@AllArgsConstructor +@Schema(title = "流水线数量相关") +public class PipelineCount { + @Schema(title = "全部流水线个数", required = true) + private int totalCount; + @Schema(title = "我的收藏个数", required = true) + private int myFavoriteCount; + @Schema(title = "我的流水线的个数", required = true) + private int myPipelineCount; + @Schema(title = "回收站流水线的个数", required = true) + private int recycleCount; + @Schema(title = "最近使用的流水线的个数", required = true) + private final int recentUseCount; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineLatestBuild.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineLatestBuild.java new file mode 100644 index 0000000..97da4ec --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineLatestBuild.java @@ -0,0 +1,29 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineLatestBuild + * @Description TODO + * @Date 2025/3/31 17:40 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "流水线最新构建详情") +public class PipelineLatestBuild { + @Schema(title = "ID", required = true) + private String buildId; + @Schema(title = "启动用户", required = true) + private String startUser; + @Schema(title = "Start time", required = true) + private String startTime; + @Schema(title = "End time", required = false) + private String endTime; + @Schema(title = "Build status", required = false) + private String status; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineResourceVersion.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineResourceVersion.java new file mode 100644 index 0000000..fe31d82 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineResourceVersion.java @@ -0,0 +1,96 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.pipeline.Model; +import cd.casic.ci.common.pipeline.enums.BranchVersionAction; +import cd.casic.ci.common.pipeline.enums.VersionStatus; +import cd.casic.ci.process.api.process.pojo.setting.PipelineVersionSimple; +import cd.casic.ci.process.api.process.utils.PipelineVersionUtils; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author by mianbin + * @Classname PipelineResourceVersion + * @Description TODO + * @Date 2025/3/31 17:40 + */ +@Data +@AllArgsConstructor +@Schema(title = "流水线版本-详细内容") +public class PipelineResourceVersion { + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "记录版本号", required = true) + private int version; + @Schema(title = "JSON编排内容(POJO)", required = true) + private Model model; + @Schema(title = "YAML编排内容", required = false) + private String yaml; + @Schema(title = "YAML编排版本", required = false) + private String yamlVersion; + @Schema(title = "版本名称", required = true) + private String versionName; + @Schema(title = "创建者", required = true) + private String creator; + @Schema(title = "版本创建时间", required = true) + private LocalDateTime createTime; + @Schema(title = "更新操作人", required = true) + private String updater; + @Schema(title = "版本修改时间", required = true) + private LocalDateTime updateTime; + @Schema(title = "发布版本号", required = false) + private Integer versionNum; + @Schema(title = "编排版本号", required = false) + private Integer pipelineVersion; + @Schema(title = "触发器版本号", required = false) + private Integer triggerVersion; + @Schema(title = "设置版本号", required = false) + private Integer settingVersion; + @Schema(title = "是否还有构建记录引用该版本标识", required = false) + private Boolean referFlag; + @Schema(title = "关联构建记录总数", required = false) + private Integer referCount; + @Schema(title = "草稿版本标识", required = false) + private VersionStatus status; + @Schema(title = "分支版本状态", required = false) + private BranchVersionAction branchAction; + @Schema(title = "版本变更说明", required = false) + private String description; + @Schema(title = "调试构建ID", required = false) + private String debugBuildId; + @Schema(title = "该版本的来源版本(空时一定为主路径)", required = false) + private Integer baseVersion; + + public PipelineVersionSimple toSimple() { + return new PipelineVersionSimple( + pipelineId, + creator, + createTime, + updater, + updateTime != null ? updateTime : null, + version, + versionName != null ? versionName : PipelineVersionUtils.getVersionName( + versionNum != null ? versionNum : version, + versionNum != null ? versionNum : version, + 0, + 0 + ), + referFlag, + referCount, + versionNum, + pipelineVersion, + triggerVersion, + settingVersion, + status != null ? status : VersionStatus.RELEASED, + debugBuildId, + baseVersion, + description, + yamlVersion + ); + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineRule.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineRule.java new file mode 100644 index 0000000..4b96690 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineRule.java @@ -0,0 +1,25 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineRule + * @Description TODO + * @Date 2025/3/31 17:44 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "流水线规则") +public class PipelineRule { + @Schema(title = "规则名称", required = true) + private String ruleName; + @Schema(title = "业务标识", required = true) + private String busCode; + @Schema(title = "处理器", required = true) + private String processor; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlInfo.java new file mode 100644 index 0000000..3c87560 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlInfo.java @@ -0,0 +1,33 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineYamlInfo + * @Description TODO + * @Date 2025/3/31 17:44 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "流水线yml关联") +public class PipelineYamlInfo { + @Schema(title = "项目ID") + private String projectId; + @Schema(title = "代码库ID") + private String repoHashId; + @Schema(title = "ci文件路径") + private String filePath; + @Schema(title = "流水线ID") + private String pipelineId; + @Schema(title = "yaml文件状态") + private String status; + @Schema(title = "流水线创建者") + private String creator; + @Schema(title = "默认分支") + private String defaultBranch; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlSyncInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlSyncInfo.java new file mode 100644 index 0000000..d301935 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlSyncInfo.java @@ -0,0 +1,34 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.enums.RepoYamlSyncStatusEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineYamlSyncInfo + * @Description TODO + * @Date 2025/3/31 17:44 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "pac同步文件信息") +public class PipelineYamlSyncInfo { + @Schema(title = "文件路径", required = true) + private String filePath; + + @Schema(title = "文件url", required = true) + private String fileUrl = null; + + @Schema(title = "同步状态", required = true) + private RepoYamlSyncStatusEnum syncStatus = RepoYamlSyncStatusEnum.SYNC; + + @Schema(title = "原因", required = false) + private String reason = null; + + @Schema(title = "原因详情", required = false) + private String reasonDetail = null; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlVersion.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlVersion.java new file mode 100644 index 0000000..2f66b64 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlVersion.java @@ -0,0 +1,35 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineYamlVersion + * @Description TODO + * @Date 2025/3/31 17:45 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "流水线yml版本") +public class PipelineYamlVersion { + @Schema(title = "项目ID") + private String projectId; + @Schema(title = "代码库ID") + private String repoHashId; + @Schema(title = "ci文件路径") + private String filePath; + @Schema(title = "ci文件blob_id") + private String blobId; + @Schema(title = "ci文件commitId") + private String commitId; + @Schema(title = "ci文件来源分支/tag") + private String ref; + @Schema(title = "流水线ID") + private String pipelineId; + @Schema(title = "流水线版本") + private int version; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlView.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlView.java new file mode 100644 index 0000000..4f3e04d --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlView.java @@ -0,0 +1,23 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname PipelineYamlView + * @Description TODO + * @Date 2025/3/31 17:46 + */ +@Data +@Schema(title = "yaml流水线组") +public class PipelineYamlView { + @Schema(title = "项目ID") + private String projectId; + @Schema(title = "代码库ID") + private String repoHashId; + @Schema(title = "ci文件路径") + private String directory; + @Schema(title = "流水线组ID") + private Long viewId; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlVo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlVo.java new file mode 100644 index 0000000..dcb6323 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PipelineYamlVo.java @@ -0,0 +1,32 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.enums.ScmType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname PipelineYamlVo + * @Description TODO + * @Date 2025/3/31 17:46 + */ +@Data +@AllArgsConstructor +@Schema(title = "流水线yaml展示信息") +public class PipelineYamlVo { + @Schema(title = "代码库hashId", required = true) + private String repoHashId; + @Schema(title = "代码库类型", required = true) + private ScmType scmType; + @Schema(title = "yaml文件路径", required = true) + private String filePath; + @Schema(title = "代码库项目路径", required = false) + private String pathWithNamespace; + @Schema(title = "仓库网页url", required = false) + private String webUrl; + @Schema(title = "yaml文件url", required = false) + private String fileUrl; + @Schema(title = "yaml文件状态", required = false) + private String status; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PrefetchReleaseResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PrefetchReleaseResult.java new file mode 100644 index 0000000..bd67748 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PrefetchReleaseResult.java @@ -0,0 +1,33 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PrefetchReleaseResult + * @Description TODO + * @Date 2025/3/31 17:47 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "配置流水线结果") +public class PrefetchReleaseResult { + @Schema(title = "流水线ID", required = true) + private String pipelineId; + + @Schema(title = "流水线名称", required = true) + private String pipelineName; + + @Schema(title = "草稿版本号", required = true) + private int version; + + @Schema(title = "发布版本号", required = false) + private int newVersionNum; + + @Schema(title = "生成版本名称", required = false) + private String newVersionName; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ProjectBuildId.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ProjectBuildId.java new file mode 100644 index 0000000..a46357f --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ProjectBuildId.java @@ -0,0 +1,25 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ProjectBuildId + * @Description TODO + * @Date 2025/3/31 17:47 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "构建模型-ID") +public class ProjectBuildId { + @Schema(title = "构建ID", required = true) + private String id; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "构建序号", required = false) + private Integer buildNum; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PushPipelineResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PushPipelineResult.java new file mode 100644 index 0000000..2e4d9c5 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/PushPipelineResult.java @@ -0,0 +1,27 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname PushPipelineResult + * @Description TODO + * @Date 2025/3/31 17:48 + */ +@Data +@AllArgsConstructor +@Schema(title = "推送流水线结果") +public class PushPipelineResult { + @Schema(title = "项目ID") + private String projectId; + @Schema(title = "代码库ID") + private String repoHashId; + @Schema(title = "ci文件路径") + private String filePath; + @Schema(title = "分支名") + private String branch; + @Schema(title = "mr url") + private String mrUrl; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SimplePipeline.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SimplePipeline.java new file mode 100644 index 0000000..38fa83e --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SimplePipeline.java @@ -0,0 +1,37 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname SimplePipeline + * @Description TODO + * @Date 2025/3/31 17:49 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "流水线模型-列表信息") +public class SimplePipeline { + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "流水线名称", required = true) + private String pipelineName; + @Schema(title = "流水线描述", required = false) + private String pipelineDesc; + @Schema(title = "流水线任务数量", required = true) + private int taskCount; + @Schema(title = "是否被删除了", required = false) + private boolean isDelete; + @Schema(title = "是否模板实例化的流水线", required = true) + private boolean instanceFromTemplate; + @Schema(title = "自增id", required = true) + private Long id; + @Schema(title = "创建人", required = false) + private String createUser; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/StartUpInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/StartUpInfo.java new file mode 100644 index 0000000..fdeaebb --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/StartUpInfo.java @@ -0,0 +1,23 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname StartUpInfo + * @Description TODO + * @Date 2025/3/31 17:49 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "子流水线参数键值对") +public class StartUpInfo { + @Schema(title = "子流水线参数名", required = true) + private String id; + @Schema(title = "子流水线参数值", required = true) + private Object name; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineIdAndName.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineIdAndName.java new file mode 100644 index 0000000..b355237 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineIdAndName.java @@ -0,0 +1,18 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname SubPipelineIdAndName + * @Description 子流水线ID和名称 + * @Date 2025/3/31 17:51 + */ +@Data +@AllArgsConstructor +public class SubPipelineIdAndName { + private String projectId; + private String pipelineId; + private String pipelineName; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineRef.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineRef.java new file mode 100644 index 0000000..135ea3f --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineRef.java @@ -0,0 +1,68 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.element.atom.SubPipelineType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname SubPipelineRef + * @Description TODO + * @Date 2025/3/31 17:51 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "子流水线依赖信息") +public class SubPipelineRef { + @Schema(title = "流水线Id", required = true) + private String pipelineId; + @Schema(title = "流水线名称", required = true) + private String pipelineName; + @Schema(title = "流水线项目Id", required = true) + private String projectId; + @Schema(title = "流水线项目渠道", required = true) + private String channel; + @Schema(title = "插件", required = true) + private Element element; + @Schema(title = "插件所在位置[stageIndex-containerIndex-taskIndex]", required = true) + private String taskPosition; + @Schema(title = "子流水线流水线Id", required = true) + private String subPipelineId; + @Schema(title = "子流水线项目Id", required = true) + private String subProjectId; + @Schema(title = "子流水线名称", required = true) + private String subPipelineName; + @Schema(title = "校验权限用户", required = true) + private String userId = ""; + @Schema(title = "插件启用状态", required = true) + private boolean elementEnable = true; + @Schema(title = "是否为模板流水线", required = true) + private boolean isTemplate = false; + @Schema(title = "插件参数[projectId]", required = false) + private String taskProjectId = ""; + @Schema(title = "插件参数[type]", required = false) + private SubPipelineType taskPipelineType = SubPipelineType.ID; + @Schema(title = "插件参数[pipelineId]", required = false) + private String taskPipelineId = ""; + @Schema(title = "插件参数[pipelineName]", required = false) + private String taskPipelineName = ""; + + // 递归检查使用 + public String refKey() { + return projectId + "|" + pipelineId; + } + + // 递归检查使用 + public String subRefKey() { + return subProjectId + "|" + subPipelineId; + } + + // 链路打印 + public String chainKey() { + return projectId + "|" + pipelineId + "|" + taskPosition; + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineStartUpInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineStartUpInfo.java new file mode 100644 index 0000000..075f9fa --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineStartUpInfo.java @@ -0,0 +1,49 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * @author by mianbin + * @Classname SubPipelineStartUpInfo + * @Description TODO + * @Date 2025/3/31 17:52 + */ +@Data +@Schema(title = "构建模型-ID") +public class SubPipelineStartUpInfo { + @Schema(title = "参数key值", required = true) + private String key; + @Schema(title = "key值是否可以更改", required = true) + private boolean keyDisable; + @Schema(title = "key值前端组件类型", required = true) + private String keyType; + @Schema(title = "key值获取方式", required = true) + private String keyListType; + @Schema(title = "key值获取路径", required = true) + private String keyUrl; + @Schema + private List keyUrlQuery; + @Schema(title = "key值获取集合", required = true) + private List keyList; + @Schema(title = "key值是否多选", required = true) + private boolean keyMultiple; + @Schema(title = "参数value值", required = true) + private Object value; + @Schema(title = "value值是否可以更改", required = true) + private boolean valueDisable; + @Schema(title = "value值前端组件类型", required = true) + private String valueType; + @Schema(title = "value值获取方式", required = true) + private String valueListType; + @Schema(title = "value值获取路径", required = true) + private String valueUrl; + @Schema + private List valueUrlQuery; + @Schema(title = "value值获取集合", required = true) + private List valueList; + @Schema(title = "value值是否多选", required = true) + private boolean valueMultiple; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineStatus.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineStatus.java new file mode 100644 index 0000000..90e3ebe --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineStatus.java @@ -0,0 +1,25 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.lang.model.type.ErrorType; + +/** + * @author by mianbin + * @Classname SubPipelineStatus + * @Description TODO + * @Date 2025/3/31 17:52 + */ +@Data +@Schema(title = "构建模型-ID") +public class SubPipelineStatus { + @Schema(title = "子流水线状态", required = true) + private String status; + @Schema(title = "错误类型", required = false) + private ErrorType errorType; + @Schema(title = "错误码", required = false) + private Integer errorCode; + @Schema(title = "错误信息", required = false) + private String errorMsg; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineTaskParam.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineTaskParam.java new file mode 100644 index 0000000..24f01a7 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/SubPipelineTaskParam.java @@ -0,0 +1,38 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.pipeline.pojo.element.atom.SubPipelineType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname SubPipelineTaskParam + * @Description TODO + * @Date 2025/3/31 17:53 + */ +@Data +@NoArgsConstructor +@Schema(title = "子流水线插件参数") +public class SubPipelineTaskParam { + @Schema(title = "源参数值[projectId]", required = false) + private String taskProjectId = ""; + + @Schema(title = "源参数值[type]", required = false) + private SubPipelineType taskPipelineType = SubPipelineType.ID; + + @Schema(title = "源参数值[pipelineId]", required = false) + private String taskPipelineId; + + @Schema(title = "源参数值[pipelineName]", required = false) + private String taskPipelineName; + + @Schema(title = "解析后[projectId]", required = false) + private String projectId = ""; + + @Schema(title = "解析后[pipelineId]", required = false) + private String pipelineId = ""; + + @Schema(title = "解析后[pipelineName]", required = false) + private String pipelineName = ""; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/TemplateInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/TemplateInfo.java new file mode 100644 index 0000000..a442399 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/TemplateInfo.java @@ -0,0 +1,37 @@ +package cd.casic.ci.process.api.process.pojo.pipeline; + +import cd.casic.ci.common.pipeline.enums.PipelineInstanceTypeEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname TemplateInfo + * @Description TODO + * @Date 2025/3/31 17:53 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "子流水线参数键值对") +public class TemplateInfo { + @Schema(title = "模板ID", required = true) + private String templateId; + + @Schema(title = "模板名称", required = true) + private String templateName; + + @Schema(title = "版本号", required = true) + private Long version; + + @Schema(title = "版本名称", required = true) + private String versionName; + + @Schema(title = "关联模式", required = true) + private PipelineInstanceTypeEnum instanceType; + + @Schema(title = "版本描述", required = true) + private String desc; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/enums/PipelineRuleBusCodeEnum.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/enums/PipelineRuleBusCodeEnum.java new file mode 100644 index 0000000..e993878 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/enums/PipelineRuleBusCodeEnum.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.api.process.pojo.pipeline.enums; + +import lombok.Getter; + +/** + * @author by mianbin + * @Classname PipelineRuleBusCodeEnum + * @Description TODO + * @Date 2025/3/31 17:10 + */ +@Getter +public enum PipelineRuleBusCodeEnum { + BUILD_NUM +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/enums/PipelineYamlStatus.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/enums/PipelineYamlStatus.java new file mode 100644 index 0000000..192d630 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/enums/PipelineYamlStatus.java @@ -0,0 +1,16 @@ +package cd.casic.ci.process.api.process.pojo.pipeline.enums; + +/** + * @author by mianbin + * @Classname PipelineYamlStatus + * @Description YAML状态 + * @Date 2025/3/31 17:11 + */ +public enum PipelineYamlStatus { + // 状态OK,已合入到主干 + OK, + // 主干已删除 + DELETED, + // 没有合入到主干 + UN_MERGED; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordContainer.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordContainer.java new file mode 100644 index 0000000..87a1ee7 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordContainer.java @@ -0,0 +1,174 @@ +package cd.casic.ci.process.api.process.pojo.pipeline.record; + +import cd.casic.ci.common.pipeline.container.Container; +import cd.casic.ci.common.pipeline.container.TriggerContainer; +import cd.casic.ci.common.pipeline.container.VMBuildContainer; +import cd.casic.ci.common.pipeline.enums.BuildRecordTimeStamp; +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.time.BuildTimestampType; +import cd.casic.ci.common.pipeline.utils.ElementUtils; +import cd.casic.ci.process.api.process.pojo.app.StartBuildContext; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author by mianbin + * @Classname BuildRecordContainer + * @Description TODO + * @Date 2025/3/31 17:12 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "构建详情记录-插件任务") +public class BuildRecordContainer { + @Schema(title = "构建ID", required = true) + private String buildId; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "编排版本号", required = true) + private int resourceVersion; + @Schema(title = "步骤ID", required = true) + private String stageId; + @Schema(title = "作业容器ID", required = true) + private String containerId; + @Schema(title = "执行次数", required = true) + private int executeCount; + @Schema(title = "执行变量", required = true) + private Map containerVar; + @Schema(title = "作业容器类型", required = true) + private String containerType; + @Schema(title = "构建状态", required = false) + private String status; + @Schema(title = "是否为构建矩阵组", required = false) + private Boolean containPostTaskFlag; + @Schema(title = "是否为构建矩阵组", required = false) + private Boolean matrixGroupFlag; + @Schema(title = "所在矩阵组ID", required = false) + private String matrixGroupId; + @Schema(title = "开始时间", required = true) + private LocalDateTime startTime; + @Schema(title = "结束时间", required = true) + private LocalDateTime endTime; + @Schema(title = "业务时间戳集合", required = true) + private Map timestamps; + + public BuildRecordContainer(String projectId, String pipelineId, int resourceVersion, String buildId, String stageId, String id, String classType, int executeCount, Boolean matrixGroupFlag, String s, Map containerVar, Map kvHashMap) { + this.buildId = buildId; + this.projectId = projectId; + this.pipelineId = pipelineId; + this.resourceVersion = resourceVersion; + this.stageId = stageId; + this.containerId = id; + this.containerType = classType; + this.executeCount = executeCount; + this.matrixGroupFlag = matrixGroupFlag; + this.containerVar = containerVar; + this.status = s; + this.timestamps = kvHashMap; + this.startTime = LocalDateTime.now(); + this.endTime = LocalDateTime.now(); + } + + public static class BuildRecordContainerHelper { + @SuppressWarnings("ComplexMethod") + public static void addRecords( + List buildRecordContainers, + String stageId, + boolean stageEnableFlag, + Container container, + StartBuildContext context, + BuildStatus buildStatus, + List taskBuildRecords + ) { + Map containerVar = new HashMap<>(); + containerVar.put(Container.class.getDeclaredFields()[0].getName(), container.getName()); + if (container.getContainerHashId() != null) { + containerVar.put(Container.class.getDeclaredFields()[1].getName(), container.getContainerHashId()); + } + Integer startVMTaskSeq = container.getStartVMTaskSeq(); + if (startVMTaskSeq != null) { + containerVar.put(Container.class.getDeclaredFields()[2].getName(), startVMTaskSeq); + } + if (container instanceof TriggerContainer) { + TriggerContainer triggerContainer = (TriggerContainer) container; + containerVar.put(triggerContainer.getClass().getDeclaredFields()[0].getName(), triggerContainer.getParams()); + if (triggerContainer.getBuildNo() != null) { + containerVar.put(triggerContainer.getClass().getDeclaredFields()[1].getName(), triggerContainer.getBuildNo()); + } + if (triggerContainer.getTemplateParams() != null) { + containerVar.put(triggerContainer.getClass().getDeclaredFields()[2].getName(), triggerContainer.getTemplateParams()); + } + } else if (container instanceof VMBuildContainer) { + VMBuildContainer vmBuildContainer = (VMBuildContainer) container; + if (vmBuildContainer.getShowBuildResource() != null) { + containerVar.put(VMBuildContainer.class.getDeclaredFields()[0].getName(), vmBuildContainer.getShowBuildResource()); + } + } + buildRecordContainers.add( + new BuildRecordContainer( + context.getProjectId(), + context.getPipelineId(), + context.getResourceVersion(), + context.getBuildId(), + stageId, + container.getId(), + container.getClassType(), + context.getExecuteCount(), + container.getMatrixGroupFlag(), + buildStatus != null ? buildStatus.name() : null, + containerVar, + new HashMap<>() + ) + ); + if (taskBuildRecords == null || container.getMatrixGroupFlag()) { + return; + } + for (int index = 0; index < container.getElements().size(); index++) { + Element element = container.getElements().get(index); + if (buildStatus == BuildStatus.SKIP && !ElementUtils.getTaskAddFlag( + element, + stageEnableFlag, + container.containerEnabled(), + container.getMatrixGroupFlag() + )) { + continue; + } + int taskSeq = startVMTaskSeq != null && startVMTaskSeq > 1 && index < startVMTaskSeq - 1 ? index + 1 : index + 2; + taskBuildRecords.add( + new BuildRecordTask( + context.getProjectId(), + context.getPipelineId(), + context.getBuildId(), + stageId, + container.getId(), + element.getId(), + element.getClassType(), + element.getAtomCode(), + context.getExecuteCount(), + context.getResourceVersion(), + taskSeq, + buildStatus != null ? buildStatus.name() : null, + element.initTaskVar(), + new HashMap<>(), + element.getAdditionalOptions() != null + && element.getAdditionalOptions().getElementPostInfo() != null + && !element.getAdditionalOptions().getElementPostInfo().getParentElementId().equals(element.getId()) + ? element.getAdditionalOptions().getElementPostInfo() + : null + ) + ); + } + } + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordModel.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordModel.java new file mode 100644 index 0000000..ae220c5 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordModel.java @@ -0,0 +1,54 @@ +package cd.casic.ci.process.api.process.pojo.pipeline.record; + +import cd.casic.ci.common.pipeline.enums.BuildRecordTimeStamp; +import cd.casic.ci.common.pipeline.pojo.time.BuildTimestampType; +import cd.casic.ci.common.pojo.ErrorInfo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +/** + * @author by mianbin + * @Classname BuildRecordModel + * @Description TODO + * @Date 2025/3/31 17:15 + */ +@Data +@Schema(title = "构建详情记录-插件任务") +public class BuildRecordModel { + @Schema(title = "构建ID", required = true) + private String buildId; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "编排版本号", required = true) + private int resourceVersion; + @Schema(title = "构建号", required = true) + private int buildNum; + @Schema(title = "执行次数", required = true) + private int executeCount; + @Schema(title = "执行变量", required = true) + private Map modelVar; + @Schema(title = "触发时间", required = false) + private LocalDateTime queueTime; + @Schema(title = "触发人", required = true) + private String startUser; + @Schema(title = "触发器", required = true) + private String startType; + @Schema(title = "构建状态", required = false) + private String status; + @Schema(title = "取消人", required = false) + private String cancelUser; + @Schema(title = "开始时间", required = true) + private LocalDateTime startTime; + @Schema(title = "结束时间", required = true) + private LocalDateTime endTime; + @Schema(title = "流水线任务执行错误", required = false) + private List errorInfoList; + @Schema(title = "业务时间戳集合", required = false) + private Map timestamps; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordStage.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordStage.java new file mode 100644 index 0000000..d29ed62 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordStage.java @@ -0,0 +1,71 @@ +package cd.casic.ci.process.api.process.pojo.pipeline.record; + +import cd.casic.ci.common.pipeline.container.Stage; +import cd.casic.ci.common.pipeline.enums.BuildRecordTimeStamp; +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.pojo.time.BuildTimestampType; +import cd.casic.ci.process.api.process.pojo.app.StartBuildContext; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author by mianbin + * @Classname BuildRecordStage + * @Description TODO + * @Date 2025/3/31 17:16 + */ +@Data +@AllArgsConstructor +@Schema(title = "构建详情记录-插件任务") +public class BuildRecordStage { + @Schema(title = "构建ID", required = true) + private String buildId; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "编排版本号", required = true) + private int resourceVersion; + @Schema(title = "步骤ID", required = true) + private String stageId; + @Schema(title = "执行次数", required = true) + private int executeCount; + @Schema(title = "步骤序号", required = true) + private int stageSeq; + @Schema(title = "执行变量", required = true) + private Map stageVar; + @Schema(title = "构建状态", required = false) + private String status; + @Schema(title = "开始时间", required = true) + private LocalDateTime startTime; + @Schema(title = "结束时间", required = true) + private LocalDateTime endTime; + @Schema(title = "业务时间戳集合", required = true) + private Map timestamps; + + public static void addRecords(List recordStages, Stage stage, StartBuildContext context, int stageIndex, BuildStatus buildStatus, List containerBuildRecords, List taskBuildRecords) { + recordStages.add(new BuildRecordStage( + context.getBuildId(), + context.getProjectId(), + context.getPipelineId(), + context.getResourceVersion(), + stage.getId(), + context.getExecuteCount(), + stageIndex, + new HashMap<>(), + buildStatus != null ? buildStatus.name() : null, + null, + null, + new HashMap<>() + )); + stage.getContainers().forEach(container -> { + BuildRecordContainer.BuildRecordContainerHelper.addRecords(containerBuildRecords, stage.getId(), stage.stageEnabled(), container, context, buildStatus, taskBuildRecords); + }); + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordTask.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordTask.java new file mode 100644 index 0000000..c92361d --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/BuildRecordTask.java @@ -0,0 +1,122 @@ +package cd.casic.ci.process.api.process.pojo.pipeline.record; + +import cd.casic.ci.common.pipeline.enums.BuildRecordTimeStamp; +import cd.casic.ci.common.pipeline.enums.EnvControlTaskType; +import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.common.pipeline.pojo.element.ElementPostInfo; +import cd.casic.ci.common.pipeline.pojo.time.BuildTimestampType; +import cd.casic.ci.process.api.engine.pojo.PipelineBuildTask; +import cn.hutool.json.JSONUtil; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author by mianbin + * @Classname BuildRecordTask + * @Description TODO + * @Date 2025/3/31 17:19 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "构建详情记录-插件任务") +public class BuildRecordTask { + @Schema(title = "构建ID", required = true) + private String buildId; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "编排版本号", required = true) + private int resourceVersion; + @Schema(title = "步骤ID", required = true) + private String stageId; + @Schema(title = "作业容器ID", required = true) + private String containerId; + @Schema(title = "任务ID", required = true) + private String taskId; + @Schema(title = "任务序号", required = true) + private int taskSeq; + @Schema(title = "执行次数", required = true) + private int executeCount; + @Schema(title = "执行变量", required = true) + private Map taskVar = new HashMap<>(); + @Schema(title = "插件post信息", required = false) + private ElementPostInfo elementPostInfo; + @Schema(title = "插件类型标识", required = true) + private String classType; + @Schema(title = "市场插件标识", required = true) + private String atomCode; + @Schema(title = "构建状态", required = false) + private String status; + @Schema(title = "分裂前原类型标识", required = false) + private String originClassType; + @Schema(title = "开始时间", required = true) + private LocalDateTime startTime; + @Schema(title = "结束时间", required = true) + private LocalDateTime endTime; + @Schema(title = "业务时间戳集合", required = true) + private Map timestamps = new HashMap<>(); + @Schema(title = "异步执行状态", required = true) + private String asyncStatus; + + public BuildRecordTask(String projectId, String pipelineId, String buildId, String stageId, String id, String id1, String classType, String atomCode, int executeCount, int resourceVersion, int taskSeq, String s, Map stringObjectMap, Map kvHashMap, ElementPostInfo elementPostInfo) { + this.buildId = buildId; + this.projectId = projectId; + this.pipelineId = pipelineId; + this.resourceVersion = resourceVersion; + this.stageId = stageId; + this.containerId = id; + this.taskId = id1; + this.taskSeq = taskSeq; + this.executeCount = executeCount; + this.taskVar = stringObjectMap; + this.timestamps = kvHashMap; + this.classType = classType; + this.atomCode = atomCode; + this.status = s; + this.elementPostInfo = elementPostInfo; + this.startTime = LocalDateTime.now(); + this.endTime = LocalDateTime.now(); + } + + public static class BuildRecordTaskHelper { + public static void addRecords(List buildRecordTasks, List buildTaskList, int resourceVersion) { + for (PipelineBuildTask task : buildTaskList) { + // 自动填充的构建机控制插件,不需要存入Record + if (EnvControlTaskType.parse(task.getTaskType()) != null) { + continue; + } + Element element = JSONUtil.toBean(JSONUtil.toJsonStr(task.getTaskParams()), Element.class); + BuildRecordTask recordTask = new BuildRecordTask(); + recordTask.setProjectId(task.getProjectId()); + recordTask.setPipelineId(task.getPipelineId()); + recordTask.setBuildId(task.getBuildId()); + recordTask.setStageId(task.getStageId()); + recordTask.setContainerId(task.getContainerId()); + recordTask.setTaskSeq(task.getTaskSeq()); + recordTask.setTaskId(task.getTaskId()); + recordTask.setClassType(task.getTaskType()); + recordTask.setAtomCode(task.getAtomCode() != null ? task.getAtomCode() : task.getTaskAtom()); + recordTask.setExecuteCount(task.getExecuteCount() != null ? task.getExecuteCount() : 1); + recordTask.setResourceVersion(resourceVersion); + recordTask.setTaskVar(element.initTaskVar()); + recordTask.setTimestamps(new HashMap<>()); + if (task.getAdditionalOptions() != null && task.getAdditionalOptions().getElementPostInfo() != null + && !task.getAdditionalOptions().getElementPostInfo().getParentElementId().equals(task.getTaskId())) { + recordTask.setElementPostInfo(task.getAdditionalOptions().getElementPostInfo()); + } + recordTask.setStartTime(task.getStartTime()); + recordTask.setEndTime(task.getEndTime()); + buildRecordTasks.add(recordTask); + } + } + } +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/MergeBuildRecordParam.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/MergeBuildRecordParam.java new file mode 100644 index 0000000..ebfcce3 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/record/MergeBuildRecordParam.java @@ -0,0 +1,31 @@ +package cd.casic.ci.process.api.process.pojo.pipeline.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname MergeBuildRecordParam + * @Description TODO + * @Date 2025/3/31 17:21 + */ +@Data +@AllArgsConstructor +@Schema(title = "合并流水线变量模型参数") +public class MergeBuildRecordParam { + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "流水线ID", required = true) + private String pipelineId; + @Schema(title = "构建ID", required = true) + private String buildId; + @Schema(title = "执行次数", required = true) + private int executeCount; + @Schema(title = "执行变量模型", required = true) + private Map recordModelMap; + @Schema(title = "流水线基础模型", required = true) + private Map pipelineBaseModelMap; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/report/ReportEmail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/report/ReportEmail.java new file mode 100644 index 0000000..2c9c9b9 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/report/ReportEmail.java @@ -0,0 +1,25 @@ +package cd.casic.ci.process.api.process.pojo.report; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.Set; + +/** + * @author by mianbin + * @Classname ReportEmail + * @Description TODO + * @Date 2025/3/31 17:06 + */ +@Schema(title = "自定义产出物报告-发送弹窗") +@Data +@AllArgsConstructor +public class ReportEmail { + @Schema(title = "接收人列表", required = false) + private Set receivers; + @Schema(title = "标题", required = false) + private String title; + @Schema(title = "message内容", required = false) + private String message; +} diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/report/enums/ReportTypeEnum.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/report/enums/ReportTypeEnum.java new file mode 100644 index 0000000..f579759 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/report/enums/ReportTypeEnum.java @@ -0,0 +1,25 @@ +package cd.casic.ci.process.api.process.pojo.report.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author by mianbin + * @Classname ReportTypeEnum + * @Description 该枚举类定义了报告的类型 + * @Date 2025/3/31 17:07 + */ +@Getter +@AllArgsConstructor +public enum ReportTypeEnum { + /** + * 内部报告类型 + */ + INTERNAL("INTERNAL"), + /** + * 第三方报告类型 + */ + THIRDPARTY("THIRDPARTY"); + + private final String value; +} diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/JobCommonSetting.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/JobCommonSetting.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/JobCommonSetting.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/JobCommonSetting.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineBranchVersion.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineBranchVersion.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineBranchVersion.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineBranchVersion.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineCommonSetting.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineCommonSetting.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineCommonSetting.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineCommonSetting.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineModelVersion.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineModelVersion.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineModelVersion.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineModelVersion.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineResourceAndSetting.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineResourceAndSetting.java similarity index 85% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineResourceAndSetting.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineResourceAndSetting.java index 8635492..1055a85 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineResourceAndSetting.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineResourceAndSetting.java @@ -1,6 +1,8 @@ package cd.casic.ci.process.api.process.pojo.setting; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineSetting; import cd.casic.ci.process.api.process.pojo.PipelineDetail; +import cd.casic.ci.process.api.process.pojo.pipeline.PipelineResourceVersion; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineRunType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineRunType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineRunType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineRunType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineSettingVersion.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineSettingVersion.java similarity index 94% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineSettingVersion.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineSettingVersion.java index 91d79e8..49d3bb1 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineSettingVersion.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineSettingVersion.java @@ -1,6 +1,7 @@ package cd.casic.ci.process.api.process.pojo.setting; -import cd.casic.ci.commons.enums.BkStyleEnum; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineRunLockType; +import cd.casic.ci.common.pipeline.pojo.setting.Subscription; import cd.casic.ci.project.dal.pojo.PipelineAsCodeSettings; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineVersionSimple.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineVersionSimple.java similarity index 64% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineVersionSimple.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineVersionSimple.java index c3cf573..393f789 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineVersionSimple.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/PipelineVersionSimple.java @@ -1,8 +1,12 @@ package cd.casic.ci.process.api.process.pojo.setting; +import cd.casic.ci.common.pipeline.enums.VersionStatus; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.time.LocalDateTime; +import java.time.ZoneOffset; + /** * @Author:mianbin * @Package:cd.casic.ci.process.api.process.pojo.setting @@ -55,4 +59,25 @@ public class PipelineVersionSimple { private String baseVersionName; @Schema(title = "当前最新正式版本标识", required = false) private Boolean latestReleasedFlag; + + public PipelineVersionSimple(String pipelineId, String creator, LocalDateTime createTime, String updater, LocalDateTime localDateTime, int version, String s, Boolean referFlag, Integer referCount, Integer versionNum, Integer pipelineVersion, Integer triggerVersion, Integer settingVersion, VersionStatus versionStatus, String debugBuildId, Integer baseVersion, String description, String yamlVersion) { + this.pipelineId = pipelineId; + this.creator = creator; + this.createTime = createTime.toEpochSecond(ZoneOffset.of("+8")); + this.updater = updater; + this.updateTime = localDateTime.toEpochSecond(ZoneOffset.of("+8")); + this.version = version; + this.versionName = s; + this.referFlag = referFlag; + this.referCount = referCount; + this.versionNum = versionNum; + this.pipelineVersion = pipelineVersion; + this.triggerVersion = triggerVersion; + this.settingVersion = settingVersion; + this.status = versionStatus; + this.debugBuildId = debugBuildId; + this.baseVersion = baseVersion; + this.description = description; + this.yamlVersion = yamlVersion; + } } diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/StageCommonSetting.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/StageCommonSetting.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/StageCommonSetting.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/StageCommonSetting.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/SubscriptionResponse.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/SubscriptionResponse.java similarity index 92% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/SubscriptionResponse.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/SubscriptionResponse.java index db35d21..159cb67 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/SubscriptionResponse.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/SubscriptionResponse.java @@ -1,11 +1,9 @@ package cd.casic.ci.process.api.process.pojo.setting; -import com.google.common.collect.Lists; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineSubscriptionType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import lombok.val; -import java.util.LinkedList; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/TaskCommonSetting.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/TaskCommonSetting.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/TaskCommonSetting.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/TaskCommonSetting.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/TaskComponentCommonSetting.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/TaskComponentCommonSetting.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/TaskComponentCommonSetting.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/TaskComponentCommonSetting.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/UpdatePipelineModelRequest.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/UpdatePipelineModelRequest.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/UpdatePipelineModelRequest.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/setting/UpdatePipelineModelRequest.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/PipelineBuildTaskInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/PipelineBuildTaskInfo.java similarity index 95% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/PipelineBuildTaskInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/PipelineBuildTaskInfo.java index 084bebc..9329b1e 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/PipelineBuildTaskInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/PipelineBuildTaskInfo.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo.task; +import cd.casic.ci.common.pipeline.enums.BuildStatus; +import cd.casic.ci.common.pipeline.pojo.element.ElementAdditionalOptions; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/TaskBuildEndParam.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/TaskBuildEndParam.java similarity index 96% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/TaskBuildEndParam.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/TaskBuildEndParam.java index faf5fd7..dfa1c8c 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/TaskBuildEndParam.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/task/TaskBuildEndParam.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.task; +import cd.casic.ci.common.pipeline.enums.BuildStatus; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/BatchTemplateInstanceCreate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/BatchTemplateInstanceCreate.java similarity index 89% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/BatchTemplateInstanceCreate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/BatchTemplateInstanceCreate.java index d614395..4493f12 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/BatchTemplateInstanceCreate.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/BatchTemplateInstanceCreate.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; import lombok.Data; import java.util.List; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/CopyTemplateReq.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/CopyTemplateReq.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/CopyTemplateReq.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/CopyTemplateReq.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/HighlightType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/HighlightType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/HighlightType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/HighlightType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/MarketTemplateRequest.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/MarketTemplateRequest.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/MarketTemplateRequest.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/MarketTemplateRequest.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/OptionalTemplateList.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/OptionalTemplateList.java similarity index 91% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/OptionalTemplateList.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/OptionalTemplateList.java index d5dcc35..e340037 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/OptionalTemplateList.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/OptionalTemplateList.java @@ -1,6 +1,9 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.container.Stage; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineSetting; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Data; import java.util.List; @@ -32,7 +35,7 @@ public class OptionalTemplateList { } @Data -public class OptionalTemplate { +class OptionalTemplate { @Schema(title = "模版名称", required = true) private String name; @@ -71,7 +74,8 @@ public class OptionalTemplate { } @Data -public class CloneTemplateSettingExist { +@AllArgsConstructor +class CloneTemplateSettingExist { private Boolean notifySettingExist; private Boolean concurrencySettingExist; private Boolean labelSettingExist; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/SaveAsTemplateReq.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/SaveAsTemplateReq.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/SaveAsTemplateReq.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/SaveAsTemplateReq.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModel.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModel.java similarity index 79% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModel.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModel.java index 601620b..4327022 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModel.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModel.java @@ -1,8 +1,13 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.Model; +import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; +import cd.casic.ci.common.pipeline.pojo.BuildNo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo.template diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModelResult.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModelResult.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModelResult.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateCompareModelResult.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateDetailInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateDetailInfo.java similarity index 95% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateDetailInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateDetailInfo.java index 28dabb6..65df0d7 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateDetailInfo.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateDetailInfo.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.Model; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateId.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateId.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateId.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateId.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceBaseStatus.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceBaseStatus.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceBaseStatus.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceBaseStatus.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceCreate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceCreate.java similarity index 84% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceCreate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceCreate.java index 72c8474..a15e047 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceCreate.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceCreate.java @@ -1,8 +1,12 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; +import cd.casic.ci.common.pipeline.pojo.BuildNo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo.template diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceItemStatus.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceItemStatus.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceItemStatus.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceItemStatus.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstancePage.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstancePage.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstancePage.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstancePage.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceParams.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceParams.java similarity index 87% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceParams.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceParams.java index 7e47b25..6f642bb 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceParams.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceParams.java @@ -1,8 +1,12 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; +import cd.casic.ci.common.pipeline.pojo.BuildNo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo.template diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceUpdate.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceUpdate.java similarity index 87% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceUpdate.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceUpdate.java index f46d142..68b0850 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceUpdate.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstanceUpdate.java @@ -1,7 +1,11 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; +import cd.casic.ci.common.pipeline.pojo.BuildNo; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo.template diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstances.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstances.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstances.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateInstances.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateListModel.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateListModel.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateListModel.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateListModel.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModel.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModel.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModel.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModel.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModelDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModelDetail.java similarity index 93% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModelDetail.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModelDetail.java index 2b97b68..e6c845a 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModelDetail.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateModelDetail.java @@ -1,5 +1,7 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.Model; +import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateOperationMessage.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateOperationMessage.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateOperationMessage.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateOperationMessage.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateOperationRet.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateOperationRet.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateOperationRet.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateOperationRet.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipeline.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipeline.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipeline.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipeline.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipelineInfo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipelineInfo.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipelineInfo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipelineInfo.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipelineStatus.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipelineStatus.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipelineStatus.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePipelineStatus.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePreviewDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePreviewDetail.java similarity index 83% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePreviewDetail.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePreviewDetail.java index ca088dd..c68f1b1 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePreviewDetail.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplatePreviewDetail.java @@ -1,8 +1,13 @@ package cd.casic.ci.process.api.process.pojo.template; +import cd.casic.ci.common.pipeline.Model; +import cd.casic.ci.common.pipeline.pojo.setting.PipelineSetting; +import cd.casic.ci.common.pipeline.pojo.transfer.TransferMark; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; + /** * @Author:mianbin * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo.template diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateVersion.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateVersion.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateVersion.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateVersion.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateWithPermission.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateWithPermission.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateWithPermission.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/template/TemplateWithPermission.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerDetail.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerDetail.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerDetail.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerDetailBuilder.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerDetailBuilder.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerDetailBuilder.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerDetailBuilder.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEvent.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEvent.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEvent.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEvent.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEventBuilder.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEventBuilder.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEventBuilder.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEventBuilder.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEventVo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEventVo.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEventVo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerEventVo.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedErrorCode.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedErrorCode.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedErrorCode.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedErrorCode.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedFix.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedFix.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedFix.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedFix.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMatch.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMatch.java similarity index 50% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMatch.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMatch.java index 268487a..d829291 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMatch.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMatch.java @@ -2,7 +2,6 @@ package cd.casic.ci.process.api.process.pojo.trigger; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import lombok.NoArgsConstructor; import java.util.List; @@ -16,15 +15,32 @@ import java.util.List; * @description:Todo */ @Data -@NoArgsConstructor @Schema(title = "流水线触发事件原因详情-触发匹配失败") public class PipelineTriggerFailedMatch implements PipelineTriggerReasonDetail { - @Schema(title = "匹配失败的插件列表") + @Schema(title = "匹配失败的插件") private List elements; + public static final String classType = "match"; + @Override public List getReasonDetailList() { - // 实现逻辑 - return null; + return elements.stream() + .map(it -> { + return it.getElementName() + " | " + "chinese"; + }) + .toList(); } } + +@Data +@Schema(title = "流水线触发匹配失败") +class PipelineTriggerFailedMatchElement { + @Schema(title = "触发插件ID") + private String elementId; + @Schema(title = "触发插件Code") + private String elementAtomCode; + @Schema(title = "触发插件名称") + private String elementName; + @Schema(title = "触发原因,JSON字符串,便于国际化") + private String reasonMsg; +} diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMsg.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMsg.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMsg.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerFailedMsg.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReason.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReason.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReason.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReason.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReasonDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReasonDetail.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReasonDetail.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReasonDetail.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReasonStatistics.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReasonStatistics.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReasonStatistics.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerReasonStatistics.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerStatus.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerStatus.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerStatus.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerStatus.java diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerType.java new file mode 100644 index 0000000..1d7a833 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/PipelineTriggerType.java @@ -0,0 +1,88 @@ +package cd.casic.ci.process.api.process.pojo.trigger; + +import cd.casic.ci.common.pipeline.pojo.IdValue; +import cd.casic.ci.log.scm.enums.ScmType; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.text.MessageFormat; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author:mianbin + * @Package:cd.casic.ci.pipelineciprocessapi.process.pojo.trigger + * @Project:ops-pro + * @name:PipelineTriggerType + * @Date:2025/03/24 17:27 + * @Filename:PipelineTriggerType + * @description:Todo + */ +public enum PipelineTriggerType { + @Schema(title = "SVN 代码库") + CODE_SVN, + @Schema(title = "GIT 代码库") + CODE_GIT, + @Schema(title = "Gitlab 代码库") + CODE_GITLAB, + @Schema(title = "Github 代码库") + GITHUB, + @Schema(title = "TGIT 代码库") + CODE_TGIT, + @Schema(title = "P4 代码库") + CODE_P4, + @Schema(title = "手动触发") + MANUAL, + @Schema(title = "定时触发") + TIME_TRIGGER, + @Schema(title = "服务触发") + OPENAPI, + @Schema(title = "流水线触发") + PIPELINE, + @Schema(title = "远程触发") + REMOTE; + + // 通用触发类型 + private static final List commonTriggerTypes = List.of(MANUAL, TIME_TRIGGER, REMOTE); + + public static List toMap(ScmType scmType, String userId) { + List triggerTypes; + if (scmType == null) { + triggerTypes = Arrays.asList(PipelineTriggerType.values()); + } else { + triggerTypes = Arrays.stream(PipelineTriggerType.values()) + .filter(it -> scmType.name().equals(it.name())) + .collect(Collectors.toList()); + triggerTypes.addAll(commonTriggerTypes); + } + return triggerTypes.stream() + .map(it -> new IdValue( + it.name(), + MessageFormat.format( + "TRIGGER_TYPE_" + it.name(), + it.name(), + userId + ) + )) + .collect(Collectors.toList()); + } + + public static ScmType toScmType(String triggerType) { + return Arrays.stream(ScmType.values()) + .map(Enum::name) + .anyMatch(triggerType::equals) + ? ScmType.valueOf(triggerType) + : null; + } + + public static boolean webhookTrigger(String triggerType) { + return List.of( + CODE_SVN.name(), + CODE_GIT.name(), + CODE_GITLAB.name(), + GITHUB.name(), + CODE_TGIT.name(), + CODE_P4.name() + ).contains(triggerType); + } +} diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/RepoTriggerEventDetail.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/RepoTriggerEventDetail.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/RepoTriggerEventDetail.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/RepoTriggerEventDetail.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/RepoTriggerEventVo.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/RepoTriggerEventVo.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/RepoTriggerEventVo.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/trigger/RepoTriggerEventVo.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/PipelineWebhook.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/PipelineWebhook.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/PipelineWebhook.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/PipelineWebhook.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/PipelineWebhookVersion.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/PipelineWebhookVersion.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/PipelineWebhookVersion.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/PipelineWebhookVersion.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookEventType.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookEventType.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookEventType.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookEventType.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerParams.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerParams.java similarity index 94% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerParams.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerParams.java index 564a3de..a460d7d 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerParams.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerParams.java @@ -1,5 +1,6 @@ package cd.casic.ci.process.api.process.pojo.webhook; +import cd.casic.ci.common.pipeline.pojo.BuildParameters; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerPipeline.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerPipeline.java similarity index 100% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerPipeline.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/webhook/WebhookTriggerPipeline.java diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/Constants.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/Constants.java similarity index 97% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/Constants.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/Constants.java index ceef36e..361c2fe 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/Constants.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/Constants.java @@ -126,9 +126,9 @@ public class Constants { public static final int PIPELINE_CONDITION_EXPRESSION_LENGTH_MAX = 512; public static final int PIPELINE_VARIABLES_STRING_LENGTH_MAX = 4000; - public static final String PIPELINE_TIME_START = "BK_CI_BUILD_START_TIME"; - public static final String PIPELINE_TIME_END = "BK_CI_BUILD_END_TIME"; - public static final String PIPELINE_BUILD_MSG = "BK_CI_BUILD_MSG"; + public static final String PIPELINE_TIME_START = "CI_BUILD_START_TIME"; + public static final String PIPELINE_TIME_END = "CI_BUILD_END_TIME"; + public static final String PIPELINE_BUILD_MSG = "CI_BUILD_MSG"; public static final int PIPELINE_RES_NUM_MIN = 50; diff --git a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/CredentialUtils.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/CredentialUtils.java similarity index 91% rename from modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/CredentialUtils.java rename to modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/CredentialUtils.java index e4ca3f5..66e2067 100644 --- a/modules/ci-process/pipeline-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/CredentialUtils.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/CredentialUtils.java @@ -1,7 +1,9 @@ package cd.casic.ci.process.api.process.utils; + import cd.casic.ci.log.scm.dal.pojo.CodeP4Repository; import cd.casic.ci.log.scm.dal.pojo.CodeSvnRepository; +import cd.casic.ci.log.scm.dal.pojo.Repository; import cd.casic.ci.ticket.dal.enums.CredentialType; import cd.casic.framework.commons.util.encrypt.DHUtil; import lombok.Data; @@ -10,6 +12,7 @@ import org.springframework.util.StringUtils; import java.util.Base64; import java.util.List; +import java.util.Optional; /** * @Author:mianbin @@ -37,8 +40,8 @@ public class CredentialUtils { case TOKEN_USERNAME_PASSWORD -> { yield new Credential( credentials.get(0), - credentials.getOrDefault(1, ""), - credentials.getOrDefault(2, ""), + Optional.of(credentials.get(1)).orElse(""), + Optional.of(credentials.get(2)).orElse(""), null ); } @@ -47,9 +50,9 @@ public class CredentialUtils { } else if (repository instanceof CodeSvnRepository && credentialType == CredentialType.TOKEN_SSH_PRIVATEKEY) { return new Credential( credentials.get(0), - credentials.getOrDefault(1, ""), + Optional.of(credentials.get(1)).orElse(""), repository.getUserName(), - credentials.getOrDefault(2, "") + Optional.of(credentials.get(2)).orElse("") ); } else if (repository instanceof CodeP4Repository && credentialType == CredentialType.USERNAME_PASSWORD) { return new Credential(credentials.get(0), "", credentials.get(1)); diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/DependOnUtils.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/DependOnUtils.java new file mode 100644 index 0000000..2cc3cf4 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/DependOnUtils.java @@ -0,0 +1,208 @@ +package cd.casic.ci.process.api.process.utils; + +import cd.casic.ci.common.constant.HttpStatus; +import cd.casic.ci.common.pipeline.container.Container; +import cd.casic.ci.common.pipeline.container.NormalContainer; +import cd.casic.ci.common.pipeline.container.Stage; +import cd.casic.ci.common.pipeline.container.VMBuildContainer; +import cd.casic.ci.common.pipeline.enums.DependOnType; +import cd.casic.ci.common.pipeline.option.JobControlOption; +import cd.casic.ci.common.pipeline.pojo.DependOnConfig; +import cd.casic.ci.common.pipeline.utils.EnvUtils; +import cd.casic.ci.process.api.process.constant.ProcessMessageCode; +import lombok.extern.slf4j.Slf4j; + +import java.util.*; +import java.util.regex.Pattern; + +/** + * @Author:mianbin + * @Package:cd.casic.ci.process.api.process.utils + * @Project:ops-pro + * @name:DependOnUtils + * @Date:2025/03/27 14:39 + * @Filename:DependOnUtils + * @description:Todo + */ +@Slf4j +public class DependOnUtils { + + private static final Pattern regex = Pattern.compile("[,;]"); + + public static void checkRepeatedJobId(Stage stage) { + Set jobIdSet = new HashSet<>(); + for (Container c : stage.getContainers()) { + String jobId = c.getJobId(); + if (jobId == null || jobId.isEmpty()) { + continue; + } + if (jobIdSet.contains(jobId)) { + String jobName = getContainerName(stage, c, jobId); + log.error( + HttpStatus.CONFLICT.getReasonPhrase(), + ProcessMessageCode.ERROR_PIPELINE_JOBID_EXIST, + new String[]{jobName, jobId}, + jobName + " 的jobId(" + jobId + ")已存在" + ); + } + jobIdSet.add(jobId); + } + removeNonexistentJob(stage, jobIdSet); + } + + private static void removeNonexistentJob(Stage stage, Set jobIdSet) { + for (Container c : stage.getContainers()) { + JobControlOption jobControlOption = getJobControlOption(c); + if (jobControlOption == null) { + continue; + } + boolean isEmpty = jobControlOption.getDependOnId() == null || jobControlOption.getDependOnId().isEmpty(); + if (jobControlOption.getDependOnType() != DependOnType.ID || isEmpty) { + continue; + } + List existJobIds = new ArrayList<>(); + for (String jobId : jobControlOption.getDependOnId()) { + if (jobIdSet.contains(jobId)) { + existJobIds.add(jobId); + } + } + jobControlOption.setDependOnId(existJobIds); + } + } + + public static void initDependOn(Stage stage, Map params) { + Map allJobId2JobMap = new HashMap<>(); + for (Container c : stage.getContainers()) { + String jobId = c.getJobId(); + if (jobId == null || jobId.isEmpty()) { + continue; + } + allJobId2JobMap.put(jobId, c); + } + if (allJobId2JobMap.isEmpty()) { + return; + } + + Map> cycleCheckJobMap = new HashMap<>(); + for (Container c : stage.getContainers()) { + JobControlOption jobControlOption = getJobControlOption(c); + if (jobControlOption == null) { + continue; + } + List dependOnJobIds = getDependOnJobIds( + new DependOnConfig( + jobControlOption.getDependOnType(), + jobControlOption.getDependOnId(), + jobControlOption.getDependOnName() + ), + params + ); + if (dependOnJobIds.isEmpty()) { + continue; + } + String jobId = c.getJobId(); + if (jobId != null && !jobId.isEmpty()) { + cycleCheckJobMap.put(jobId, dependOnJobIds); + } + Map containerId2JobIds = new HashMap<>(); + for (String dependOnJobId : dependOnJobIds) { + Container dependOnJob = allJobId2JobMap.get(dependOnJobId); + if (dependOnJob == null) { + continue; + } + containerId2JobIds.put(dependOnJob.getId(), dependOnJobId); + } + if (!containerId2JobIds.isEmpty()) { + jobControlOption.setDependOnContainerId2JobIds(containerId2JobIds); + } + } + + Map visited = new HashMap<>(); + for (String jobId : cycleCheckJobMap.keySet()) { + dsf(jobId, cycleCheckJobMap, visited, stage, allJobId2JobMap); + } + } + + public static boolean enableDependOn(Container container) { + JobControlOption jobControlOption = getJobControlOption(container); + if (jobControlOption == null) { + return false; + } + switch (jobControlOption.getDependOnType()) { + case ID: + return jobControlOption.getDependOnId() != null && !jobControlOption.getDependOnId().isEmpty(); + case NAME: + return jobControlOption.getDependOnName() != null && !jobControlOption.getDependOnName().isEmpty(); + default: + return false; + } + } + + private static List getDependOnJobIds(DependOnConfig dependOnConfig, Map params) { + switch (dependOnConfig.getDependOnType()) { + case ID: + if (dependOnConfig.getDependOnId() == null || dependOnConfig.getDependOnId().isEmpty()) { + return new ArrayList<>(); + } + return dependOnConfig.getDependOnId(); + case NAME: + if (dependOnConfig.getDependOnName() == null || dependOnConfig.getDependOnName().isEmpty()) { + return new ArrayList<>(); + } + String[] dependONames = regex.split(dependOnConfig.getDependOnName()); + List result = new ArrayList<>(); + for (String name : dependONames) { + result.add(EnvUtils.parseEnv(name, params)); + } + return result; + default: + return new ArrayList<>(); + } + } + + private static boolean dsf(String jobId, Map> dependOnMap, Map visited, Stage stage, Map allJobId2JobMap) { + if (visited.getOrDefault(jobId, 0) == 1) { + return true; + } + if (visited.getOrDefault(jobId, 0) == 2) { + return false; + } + + visited.put(jobId, 1); + List dependOnJobIds = dependOnMap.get(jobId); + if (dependOnJobIds != null) { + for (String dependOnJobId : dependOnJobIds) { + if (dsf(dependOnJobId, dependOnMap, visited, stage, allJobId2JobMap)) { + String jobName = getContainerName(stage, allJobId2JobMap.get(jobId), jobId); + String dependJobName = getContainerName(stage, allJobId2JobMap.get(dependOnJobId), dependOnJobId); + log.error( + ProcessMessageCode.ERROR_PIPELINE_DEPENDON_CYCLE, + new String[]{jobName, dependJobName} + ); + } + } + } + visited.put(jobId, 2); + return false; + } + + private static String getContainerName(Stage stage, Container container, String jobId) { + if (container == null) { + return jobId; + } + String namePrefix = stage.getName(); + if (namePrefix != null && namePrefix.startsWith("stage-")) { + namePrefix = namePrefix.substring("stage-".length()); + } + return namePrefix + "-" + container.getId(); + } + + private static JobControlOption getJobControlOption(Container container) { + if (container instanceof VMBuildContainer) { + return ((VMBuildContainer) container).getJobControlOption(); + } else if (container instanceof NormalContainer) { + return ((NormalContainer) container).getJobControlOption(); + } + return null; + } +} \ No newline at end of file diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/PipelineVarUtil.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/PipelineVarUtil.java new file mode 100644 index 0000000..dbeb5ba --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/PipelineVarUtil.java @@ -0,0 +1,343 @@ +package cd.casic.ci.process.api.process.utils; + +import cd.casic.ci.common.constant.StringConstant; +import cd.casic.ci.common.pipeline.enums.BuildFormPropertyType; +import cd.casic.ci.common.pipeline.pojo.BuildParameters; +import cn.hutool.core.lang.Pair; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.regex.Pattern; + +/** + * @author by mianbin + * @Classname PipelineVarUtil + * @Description TODO + * @Date 2025/4/1 16:52 + */ +@Slf4j +@Component +public class PipelineVarUtil { + + private static final Pattern tPattern = Pattern.compile("\\$[{]{2}(?[^$^{}]+)[}]{2}"); + public static final String CONTEXT_PREFIX = "variables."; + public static final int MAX_VERSION_LEN = 64; + + // 前置拼接映射 + private static final Map oldPrefixMappingNew = new HashMap<>(); + private static final Map newPrefixMappingOld = new HashMap<>(); + + // 旧变量到新变量的映射 + private static final Map oldVarMappingNewVar = new HashMap<>(); + private static final Map newVarMappingOldVar = new HashMap<>(); + + // CI 预置上下文转换映射关系 + private static final Map contextVarMappingBuildVar = new HashMap<>(); + private static final Map contextVarMappingBuildVarRevert = new HashMap<>(); + private static final Map reverseContextVarMappingBuildVar = new HashMap<>(); + + static { + // 初始化 oldPrefixMappingNew + oldPrefixMappingNew.put("pipeline.material.url", "PIPELINE_MATERIAL_URL"); + oldPrefixMappingNew.put("pipeline.material.branchName", "PIPELINE_MATERIAL_BRANCHNAME"); + // 其他旧前缀到新前缀的映射... + + // 初始化 newPrefixMappingOld + for (Map.Entry entry : oldPrefixMappingNew.entrySet()) { + newPrefixMappingOld.put(entry.getValue(), entry.getKey()); + } + + // 初始化 oldVarMappingNewVar + oldVarMappingNewVar.put("pipeline.start.isMobile", "PIPELINE_START_MOBILE"); + oldVarMappingNewVar.put("repoName", "PIPELINE_REPO_NAME"); + // 其他旧变量到新变量的映射... + + // 初始化 newVarMappingOldVar + for (Map.Entry entry : oldVarMappingNewVar.entrySet()) { + newVarMappingOldVar.put(entry.getValue(), entry.getKey()); + } + + // 初始化 contextVarMappingBuildVar + contextVarMappingBuildVar.put("ci.project_name", "PROJECT_NAME_CHINESE"); + contextVarMappingBuildVar.put("ci.build_msg", "PIPELINE_BUILD_MSG"); + // 其他 CI 预置上下文到构建变量的映射... + + // 初始化 contextVarMappingBuildVarRevert + contextVarMappingBuildVarRevert.put("PIPELINE_START_USER_NAME", "ci.actor"); + + // 初始化 reverseContextVarMappingBuildVar + for (Map.Entry entry : contextVarMappingBuildVar.entrySet()) { + reverseContextVarMappingBuildVar.put(entry.getValue(), entry.getKey()); + } + } + + /** + * 检查[keyword]字符串是不是一个变量语法, ${{ varName }}, 如果不是则返回false + * 注意:已不再支持 ${ var } 旧的语法定义变量,只支持全新 ${{ var }} 的语法 + */ + public static boolean isVar(String keyword) { + return keyword != null && !keyword.isEmpty() && tPattern.matcher(keyword).matches(); + } + + /** + * 检查[keyword]串中有没有变量,比如 "abc_${{ varName }} is true" 将识别出存在 varName变量,会返回true + */ + public boolean haveVar(String keyword) { + return tPattern.matcher(keyword).find(); + } + + /** + * 获取反向变量名 + */ + public String fetchReverseVarName(String contextKey) { + Map varMap = new HashMap<>(reverseContextVarMappingBuildVar); + varMap.putAll(contextVarMappingBuildVarRevert); + return varMap.get(contextKey); + } + + /** + * 填充CI预置变量 + */ + public static void fillContextVarMap(Map varMap, Map buildVar) { + for (Map.Entry entry : contextVarMappingBuildVar.entrySet()) { + String varKey = entry.getValue(); + if (buildVar.containsKey(varKey) && buildVar.get(varKey) != null && !buildVar.get(varKey).isEmpty()) { + varMap.put(entry.getKey(), buildVar.get(varKey)); + } + } + } + + /** + * 填充CI预置变量 + */ + public static Map fillContextVarMap(Map buildVar) { + Map varMap = new HashMap<>(); + fillContextVarMap(varMap, buildVar); + varMap.putAll(buildVar); + return varMap; + } + + /** + * 获取CI预置变量 + */ + public String fetchContextInBuildVars(String contextKey, Map buildVar) { + String varKey = contextVarMappingBuildVar.get(contextKey); + return buildVar.get(varKey); + } + + /** + * 获取CI预置变量名 + */ + public String fetchVarName(String contextKey) { + return contextVarMappingBuildVar.get(contextKey); + } + + /** + * 填充旧变量名,兼容用户在流水线中旧的写法 + */ + public void fillOldVarWithType(Map> varMaps) { + turningWithType(newVarMappingOldVar, varMaps, false); + prefixTurningWithType(newPrefixMappingOld, varMaps, false); + } + + /** + * 填充旧变量名,兼容用户在流水线中旧的写法 + */ + public void fillOldVar(Map vars) { + turning(newVarMappingOldVar, vars, false); + prefixTurning(newPrefixMappingOld, vars, false); + } + + /** + * 填充variable变量 + */ + public Map fillVariableMap(Map pipelineParamMap) { + Map allVars = new HashMap<>(); + for (Map.Entry entry : pipelineParamMap.entrySet()) { + String name = entry.getKey(); + String value = entry.getValue(); + allVars.put(name, value); + if (!name.startsWith(CONTEXT_PREFIX)) { + allVars.put(CONTEXT_PREFIX + name, value); + } + } + return allVars; + } + + /** + * 从新变量前缀的变量中查出并增加旧变量,会做去重 + */ + public Map mixOldVarAndNewVar(Map vars) { + prefixTurning(newPrefixMappingOld, vars, false); + Map allVars = new HashMap<>(); + for (Map.Entry entry : vars.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + String oldVarName = newVarToOldVar(key); + if (oldVarName != null && !oldVarName.isEmpty()) { + allVars.put(oldVarName, value); + allVars.put(key, value); + } else { + String newVarName = oldVarToNewVar(key); + if (newVarName != null && !newVarName.isEmpty() && !vars.containsKey(newVarName)) { + allVars.put(newVarName, value); + } + if (!allVars.containsKey(key) || "BuildNo".equals(key)) { + allVars.put(key, value); + } + } + } + return allVars; + } + + /** + * 将[varMaps]找到旧变量并替换成新变量,并删除掉旧变量 + */ + public void replaceOldByNewVar(Map> varMaps) { + turningWithType(oldVarMappingNewVar, varMaps, true); + prefixTurningWithType(oldPrefixMappingNew, varMaps, true); + } + + /** + * 遍历[varMaps]中的fullKey,与[mapping]中的key做完成匹配,匹配成功后从[mapping]取出value作newKey + * 并写入到[varMaps],最后根据[replace]值为true决定要删除[varMaps]中的fullKey + */ + private void turningWithType(Map mapping, Map> varMaps, boolean replace) { + for (Map.Entry entry : mapping.entrySet()) { + String oldKey = entry.getKey(); + String newKey = entry.getValue(); + if (varMaps.containsKey(oldKey) && !varMaps.containsKey(newKey)) { + varMaps.put(newKey, varMaps.get(oldKey)); + if (replace && !"BuildNo".equals(oldKey)) { + varMaps.remove(oldKey); + } + } + } + } + + /** + * 遍历[vars]中的fullKey,与[mapping]中的key做完成匹配,匹配成功后从[mapping]取出value作newKey + * 并写入到[vars],最后根据[replace]值为true决定要删除[vars]中的fullKey + */ + private void turning(Map mapping, Map vars, boolean replace) { + for (Map.Entry entry : mapping.entrySet()) { + String oldKey = entry.getKey(); + String newKey = entry.getValue(); + if (vars.containsKey(oldKey) && !vars.containsKey(newKey)) { + vars.put(newKey, vars.get(oldKey)); + if (replace) { + vars.remove(oldKey); + } + } + } + } + + /** + * 遍历[vars]中的fullKey,与[mapping]中的key做前缀匹配,匹配成功后从[mapping]取出value,替换掉fullKey的前缀key,组成newKey + * 并写入到[vars],最后根据[replace]值为true决定要删除[vars]中的fullKey + */ + private void prefixTurning(Map mapping, Map vars, boolean replace) { + Set keys = new HashSet<>(vars.keySet()); + for (String fullKey : keys) { + for (Map.Entry entry : mapping.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + if (fullKey.startsWith(key)) { + String newKey = value + fullKey.substring(key.length()); + vars.put(newKey, vars.get(fullKey)); + if (replace) { + vars.remove(fullKey); + } + break; + } + } + } + } + + /** + * 遍历[varMaps]中的fullKey,与[mapping]中的key做前缀匹配,匹配成功后从[mapping]取出value,替换掉fullKey的前缀key,组成newKey + * 并写入到[varMaps],最后根据[replace]值为true决定要删除[varMaps]中的fullKey + */ + private void prefixTurningWithType(Map mapping, Map> varMaps, boolean replace) { + Set keys = new HashSet<>(varMaps.keySet()); + for (String fullKey : keys) { + for (Map.Entry entry : mapping.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + if (fullKey.startsWith(key)) { + String newKey = value + fullKey.substring(key.length()); + varMaps.put(newKey, varMaps.get(fullKey)); + if (replace) { + varMaps.remove(fullKey); + } + break; + } + } + } + } + + public String oldVarToNewVar(String oldVarName) { + return oldVarMappingNewVar.get(oldVarName); + } + + public String newVarToOldVar(String newVarName) { + return newVarMappingOldVar.get(newVarName); + } + + public Map contextVarMap() { + return contextVarMappingBuildVar; + } + + /** + * 从流水线启动参数[buildParameters]中找出推荐版本号,由[MAJORVERSION].[MINORVERSION].[FIXVERSION].[BUILD_NO]组成 + * 需要注意的是,旧的参数命名继续兼容有效,由{MarjorVersion}.{MinorVersion}.{FixVersion}.{BuildNo} 组成,所以启动参数切记 + * 不要与此命名相同造成了冲突 + */ + public String getRecommendVersion(List buildParameters) { + String recommendVersionPrefix = getRecommendVersionPrefix(buildParameters); + if (recommendVersionPrefix == null) { + return null; + } + String buildNo = null; + for (BuildParameters param : buildParameters) { + if ("BUILD_NO".equals(param.getKey()) || "BuildNo".equals(param.getKey())) { + buildNo = param.getValue() != null ? param.getValue().toString() : null; + break; + } + } + if (buildNo == null) { + return null; + } + return StringConstant.coerceAtMaxLength(recommendVersionPrefix + "." + buildNo, MAX_VERSION_LEN); + } + + /** + * 从流水线启动参数[buildParameters]中找出版本号前缀,由[MAJORVERSION].[MINORVERSION].[FIXVERSION] 组成, + * 如果[buildParameters]中不存在上述3类参数,则返回空 + * 需要注意的是,旧的参数命名继续兼容有效,由{MarjorVersion}.{MinorVersion}.{FixVersion} 组成,所以启动参数切记 + * 不要与此命名相同造成了冲突 + */ + public String getRecommendVersionPrefix(List buildParameters) { + String majorVersion = null; + String minorVersion = null; + String fixVersion = null; + for (BuildParameters param : buildParameters) { + if ("MAJORVERSION".equals(param.getKey()) || "MajorVersion".equals(param.getKey())) { + majorVersion = param.getValue() != null ? param.getValue().toString() : null; + } else if ("MINORVERSION".equals(param.getKey()) || "MinorVersion".equals(param.getKey())) { + minorVersion = param.getValue() != null ? param.getValue().toString() : null; + } else if ("FIXVERSION".equals(param.getKey()) || "FixVersion".equals(param.getKey())) { + fixVersion = param.getValue() != null ? param.getValue().toString() : null; + } + } + if (majorVersion == null || minorVersion == null || fixVersion == null) { + return null; + } + return majorVersion + "." + minorVersion + "." + fixVersion; + } + + public boolean recommendVersionKey(String key) { + return "MAJORVERSION".equals(key) || "MINORVERSION".equals(key) || "FIXVERSION".equals(key); + } +} \ No newline at end of file diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/PipelineVersionUtils.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/PipelineVersionUtils.java new file mode 100644 index 0000000..a89a2b4 --- /dev/null +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/utils/PipelineVersionUtils.java @@ -0,0 +1,187 @@ +package cd.casic.ci.process.api.process.utils; + +import cd.casic.ci.common.pipeline.Model; +import cd.casic.ci.common.pipeline.container.*; +import cd.casic.ci.common.pipeline.pojo.BuildFormProperty; +import cd.casic.ci.common.pipeline.pojo.element.Element; +import cd.casic.ci.process.api.process.pojo.setting.PipelineSettingVersion; +import cn.hutool.core.collection.CollUtil; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * @author by mianbin + * @Classname PipelineVersionUtils + * @Description TODO + * @Date 2025/4/1 19:52 + */ +public class PipelineVersionUtils { + + public String getVersionNameByModel( + int currPipelineVersion, + int currTriggerVersion, + int settingVersion, + int versionNum, + Model originModel, + Model newModel + ) { + int pipelineVersion = getPipelineVersion(currPipelineVersion, originModel, newModel); + pipelineVersion = Math.max(pipelineVersion, 1); + int triggerVersion = getTriggerVersion(currTriggerVersion, originModel, newModel); + triggerVersion = Math.max(triggerVersion, 1); + return "V" + versionNum + "(P" + pipelineVersion + ".T" + triggerVersion + "." + settingVersion + ")"; + } + + public static String getVersionName(Integer versionNum, Integer pipelineVersion, Integer triggerVersion, Integer settingVersion) { + boolean isNull = versionNum == null || pipelineVersion == null || triggerVersion == null || settingVersion == null; + return isNull ? null : "V" + versionNum + "(P" + pipelineVersion + ".T" + triggerVersion + "." + settingVersion + ")"; + } + + public int getTriggerVersion(int currVersion, Model originModel, Model newModel) { + try { + boolean changed = false; + TriggerContainer originTrigger = (TriggerContainer) originModel.getStages().get(0).getContainers().get(0); + originTrigger.setParams(Collections.emptyList()); + TriggerContainer newTrigger = (TriggerContainer) newModel.getStages().get(0).getContainers().get(0); + newTrigger.setParams(Collections.emptyList()); + if (originTrigger.equals(newTrigger)) { + List originElements = originTrigger.getElements(); + List newElements = newTrigger.getElements(); + for (int i = 0; i < originElements.size(); i++) { + Element origin = originElements.get(i); + Element newElement = newElements.get(i); + if (!origin.equals(newElement)) { + changed = true; + } + if (origin.elementEnabled() != newElement.elementEnabled()) { + changed = true; + } + } + } else { + changed = true; + } + return changed ? currVersion + 1 : currVersion; + } catch (Throwable ignore) { + return currVersion + 1; + } + } + + public int getPipelineVersion( + int currVersion, + Model originModel, + Model newModel + ) { + List originStages = originModel.getStages().subList(1, originModel.getStages().size()); + List newStages = newModel.getStages().subList(1, newModel.getStages().size()); + List originParams = ((TriggerContainer) originModel.getStages().get(0).getContainers().get(0)).getParams(); + List newParams = ((TriggerContainer) newModel.getStages().get(0).getContainers().get(0)).getParams(); + return CollUtil.disjunction(originStages, newStages).size() == 0 && originParams.equals(newParams) ? currVersion : currVersion + 1; + } + + public int getSettingVersion( + int currVersion, + PipelineSettingVersion originSetting, + PipelineSettingVersion newSetting + ) { + return originSetting.equals(newSetting) ? currVersion : currVersion + 1; + } + + private boolean differ(List thisStages, List otherStages) { + if (!thisStages.equals(otherStages) && thisStages.size() != otherStages.size()) { + return false; + } + for (int sIndex = 0; sIndex < thisStages.size(); sIndex++) { + Stage thisStage = thisStages.get(sIndex); + Stage otherStage = otherStages.get(sIndex); + if (!thisStage.equals(otherStage) || thisStage.getContainers().size() != otherStage.getContainers().size() + || !thisStage.getCheckIn().equals(otherStage.getCheckIn()) + || !thisStage.getCheckOut().equals(otherStage.getCheckOut()) + || !thisStage.getStageControlOption().equals(otherStage.getStageControlOption())) { + return false; + } + List thisContainers = thisStage.getContainers(); + List otherContainers = otherStage.getContainers(); + for (int cIndex = 0; cIndex < thisContainers.size(); cIndex++) { + Container thisContainer = thisContainers.get(cIndex); + Container otherContainer = otherContainers.get(cIndex); + if (!thisContainer.equals(otherContainer) && thisContainer.getElements().size() != otherContainer.getElements().size()) { + return false; + } + if (thisContainer instanceof VMBuildContainer && otherContainer instanceof VMBuildContainer) { + VMBuildContainer thisVMBuild = (VMBuildContainer) thisContainer; + VMBuildContainer otherVMBuild = (VMBuildContainer) otherContainer; + if (!thisVMBuild.equals(otherVMBuild) || !thisVMBuild.getDispatchType().equals(otherVMBuild.getDispatchType()) + || !thisVMBuild.getJobControlOption().equals(otherVMBuild.getJobControlOption())) { + return false; + } + } else if (thisContainer instanceof NormalContainer && otherContainer instanceof NormalContainer) { + NormalContainer thisNormal = (NormalContainer) thisContainer; + NormalContainer otherNormal = (NormalContainer) otherContainer; + if (!thisNormal.equals(otherNormal) || !thisNormal.getJobControlOption().equals(otherNormal.getJobControlOption())) { + return false; + } + } else { + return false; + } + List thisElements = thisContainer.getElements(); + List otherElements = otherContainer.getElements(); + for (int eIndex = 0; eIndex < thisElements.size(); eIndex++) { + Element thisElement = thisElements.get(eIndex); + Element otherElement = otherElements.get(eIndex); + if (!thisElement.equals(otherElement)) { + return false; + } + if (!thisElement.getAdditionalOptions().equals(otherElement.getAdditionalOptions())) { + return false; + } + + if (CollUtil.disjunction(thisElements, otherElements).size() == 0) { + return false; + } + } + } + } + return true; + } + + public boolean differ(Element thisElement, Element otherElement) { + if (thisElement.getClass() != otherElement.getClass()) { + return true; + } + java.lang.reflect.Field[] v1Fields = thisElement.getClass().getDeclaredFields(); + java.lang.reflect.Field[] v2Fields = otherElement.getClass().getDeclaredFields(); + if (v1Fields.length != v2Fields.length) { + return true; + } + java.util.Map v1Map = new java.util.HashMap<>(); + java.util.Map v2Map = new java.util.HashMap<>(); + try { + for (java.lang.reflect.Field field : v1Fields) { + field.setAccessible(true); + v1Map.put(field.getName(), field.get(thisElement)); + } + for (java.lang.reflect.Field field : v2Fields) { + field.setAccessible(true); + v2Map.put(field.getName(), field.get(otherElement)); + } + if (v1Map.size() != v2Map.size()) { + return true; + } + for (Map.Entry entry : v1Map.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + if (!v2Map.containsKey(key)) { + return true; + } + if (!v2Map.get(key).equals(value)) { + return true; + } + } + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + return false; + } +} diff --git a/modules/ci-log/pom.xml b/modules/module-ci-project/pom.xml similarity index 86% rename from modules/ci-log/pom.xml rename to modules/module-ci-project/pom.xml index b10eeba..6a335b8 100644 --- a/modules/ci-log/pom.xml +++ b/modules/module-ci-project/pom.xml @@ -10,15 +10,14 @@ ../pom.xml - cd.casic.ci - ci-log + module-ci-project ${revision} - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common-pipeline @@ -36,5 +35,4 @@ spring-boot-starter-monitor - \ No newline at end of file diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/constant/ProjectConstants.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/constant/ProjectConstants.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/constant/ProjectConstants.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/constant/ProjectConstants.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/controller/UserProjectResourceController.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/controller/UserProjectResourceController.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/controller/UserProjectResourceController.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/controller/UserProjectResourceController.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/dao/ProjectMapper.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/dao/ProjectMapper.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/dao/ProjectMapper.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/dao/ProjectMapper.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/dto/Project.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/dto/Project.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/dto/Project.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/dto/Project.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/AuthProjectCreateInfo.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/AuthProjectCreateInfo.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/AuthProjectCreateInfo.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/AuthProjectCreateInfo.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/PipelineAsCodeSettings.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/PipelineAsCodeSettings.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/PipelineAsCodeSettings.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/PipelineAsCodeSettings.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectCreateExtInfo.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectCreateExtInfo.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectCreateExtInfo.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectCreateExtInfo.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectCreateInfo.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectCreateInfo.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectCreateInfo.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectCreateInfo.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectProperties.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectProperties.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectProperties.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectProperties.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectVO.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectVO.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectVO.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ProjectVO.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ResourceRegisterInfo.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ResourceRegisterInfo.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ResourceRegisterInfo.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/ResourceRegisterInfo.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/SubjectScopeInfo.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/SubjectScopeInfo.java similarity index 93% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/SubjectScopeInfo.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/SubjectScopeInfo.java index b6cfe2c..fd43468 100644 --- a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/SubjectScopeInfo.java +++ b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/SubjectScopeInfo.java @@ -1,6 +1,6 @@ package cd.casic.ci.project.dal.pojo; -import cd.casic.ci.commons.enums.SubjectScopeType; +import cd.casic.ci.common.enums.SubjectScopeType; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/user/UserDeptDetail.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/user/UserDeptDetail.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/dal/pojo/user/UserDeptDetail.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/dal/pojo/user/UserDeptDetail.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/enums/ProjectApproveStatus.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/enums/ProjectApproveStatus.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/enums/ProjectApproveStatus.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/enums/ProjectApproveStatus.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/enums/ProjectAuthSecrecyStatus.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/enums/ProjectAuthSecrecyStatus.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/enums/ProjectAuthSecrecyStatus.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/enums/ProjectAuthSecrecyStatus.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/enums/ProjectChannelCode.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/enums/ProjectChannelCode.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/enums/ProjectChannelCode.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/enums/ProjectChannelCode.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/enums/ProjectValidateType.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/enums/ProjectValidateType.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/enums/ProjectValidateType.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/enums/ProjectValidateType.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/service/ProjectExtService.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/service/ProjectExtService.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/service/ProjectExtService.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/service/ProjectExtService.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/service/ProjectPermissionService.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/service/ProjectPermissionService.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/service/ProjectPermissionService.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/service/ProjectPermissionService.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/service/UserProjectResourceService.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/service/UserProjectResourceService.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/service/UserProjectResourceService.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/service/UserProjectResourceService.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/BluekingProjectPermissionServiceImpl.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/BluekingProjectPermissionServiceImpl.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/BluekingProjectPermissionServiceImpl.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/BluekingProjectPermissionServiceImpl.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectExtServiceImpl.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectExtServiceImpl.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectExtServiceImpl.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectExtServiceImpl.java diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectServiceImpl.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectServiceImpl.java similarity index 99% rename from modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectServiceImpl.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectServiceImpl.java index c82c9ab..2f930be 100644 --- a/modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectServiceImpl.java +++ b/modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/ProjectServiceImpl.java @@ -1,20 +1,20 @@ package cd.casic.ci.project.service.impl; -import cd.casic.ci.project.dal.pojo.*; -import cd.casic.framework.commons.exception.ServiceException; -import cd.casic.framework.commons.util.json.JsonUtils; -import cd.casic.framework.redis.core.RedisTemplateUtils; -import cd.casic.ci.commons.constant.BaseConstant; +import cd.casic.ci.common.constant.BaseConstant; import cd.casic.ci.project.constant.ProjectConstants; import cd.casic.ci.project.dal.dao.ProjectMapper; import cd.casic.ci.project.dal.dto.Project; +import cd.casic.ci.project.dal.pojo.*; import cd.casic.ci.project.dal.pojo.user.UserDeptDetail; import cd.casic.ci.project.enums.ProjectApproveStatus; import cd.casic.ci.project.enums.ProjectAuthSecrecyStatus; import cd.casic.ci.project.enums.ProjectChannelCode; import cd.casic.ci.project.enums.ProjectValidateType; import cd.casic.ci.project.service.ProjectExtService; +import cd.casic.framework.commons.exception.ServiceException; +import cd.casic.framework.commons.util.json.JsonUtils; +import cd.casic.framework.redis.core.RedisTemplateUtils; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; diff --git a/modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/UserProjectResourceServiceImpl.java b/modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/UserProjectResourceServiceImpl.java similarity index 100% rename from modules/ci-project/src/main/java/cd/casic/ci/project/service/impl/UserProjectResourceServiceImpl.java rename to modules/module-ci-project/src/main/java/cd/casic/ci/project/service/impl/UserProjectResourceServiceImpl.java diff --git a/modules/ci-quality/pom.xml b/modules/module-ci-quality/pom.xml similarity index 79% rename from modules/ci-quality/pom.xml rename to modules/module-ci-quality/pom.xml index a39021e..d9c777e 100644 --- a/modules/ci-quality/pom.xml +++ b/modules/module-ci-quality/pom.xml @@ -10,15 +10,14 @@ ../pom.xml - cd.casic.ci - ci-quality + module-ci-quality ${revision} - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common-pipeline diff --git a/modules/ci-quality/src/main/java/cd/casic/ci/api/ServiceQualityRuleResource.java b/modules/module-ci-quality/src/main/java/cd/casic/ci/api/ServiceQualityRuleResource.java similarity index 100% rename from modules/ci-quality/src/main/java/cd/casic/ci/api/ServiceQualityRuleResource.java rename to modules/module-ci-quality/src/main/java/cd/casic/ci/api/ServiceQualityRuleResource.java diff --git a/modules/ci-quality/src/main/java/cd/casic/ci/constants/QualityConstants.java b/modules/module-ci-quality/src/main/java/cd/casic/ci/constants/QualityConstants.java similarity index 100% rename from modules/ci-quality/src/main/java/cd/casic/ci/constants/QualityConstants.java rename to modules/module-ci-quality/src/main/java/cd/casic/ci/constants/QualityConstants.java diff --git a/modules/ci-quality/src/main/java/cd/casic/ci/dal/package-info.java b/modules/module-ci-quality/src/main/java/cd/casic/ci/dal/package-info.java similarity index 100% rename from modules/ci-quality/src/main/java/cd/casic/ci/dal/package-info.java rename to modules/module-ci-quality/src/main/java/cd/casic/ci/dal/package-info.java diff --git a/modules/ci-quality/src/main/java/cd/casic/ci/dal/pojo/RuleCheckResult.java b/modules/module-ci-quality/src/main/java/cd/casic/ci/dal/pojo/RuleCheckResult.java similarity index 100% rename from modules/ci-quality/src/main/java/cd/casic/ci/dal/pojo/RuleCheckResult.java rename to modules/module-ci-quality/src/main/java/cd/casic/ci/dal/pojo/RuleCheckResult.java diff --git a/modules/ci-quality/src/main/java/cd/casic/ci/dal/pojo/RuleCheckSingleResult.java b/modules/module-ci-quality/src/main/java/cd/casic/ci/dal/pojo/RuleCheckSingleResult.java similarity index 100% rename from modules/ci-quality/src/main/java/cd/casic/ci/dal/pojo/RuleCheckSingleResult.java rename to modules/module-ci-quality/src/main/java/cd/casic/ci/dal/pojo/RuleCheckSingleResult.java diff --git a/modules/ci-quality/src/main/java/cd/casic/ci/dal/v2/ControlPointPosition.java b/modules/module-ci-quality/src/main/java/cd/casic/ci/dal/v2/ControlPointPosition.java similarity index 100% rename from modules/ci-quality/src/main/java/cd/casic/ci/dal/v2/ControlPointPosition.java rename to modules/module-ci-quality/src/main/java/cd/casic/ci/dal/v2/ControlPointPosition.java diff --git a/modules/ci-quality/src/main/java/cd/casic/ci/dal/v3/package-info.java b/modules/module-ci-quality/src/main/java/cd/casic/ci/dal/v3/package-info.java similarity index 100% rename from modules/ci-quality/src/main/java/cd/casic/ci/dal/v3/package-info.java rename to modules/module-ci-quality/src/main/java/cd/casic/ci/dal/v3/package-info.java diff --git a/modules/ci-quality/src/main/java/cd/casic/ci/dal/v3/request/BuildCheckParamsV3.java b/modules/module-ci-quality/src/main/java/cd/casic/ci/dal/v3/request/BuildCheckParamsV3.java similarity index 100% rename from modules/ci-quality/src/main/java/cd/casic/ci/dal/v3/request/BuildCheckParamsV3.java rename to modules/module-ci-quality/src/main/java/cd/casic/ci/dal/v3/request/BuildCheckParamsV3.java diff --git a/modules/ci-scm-repository/pom.xml b/modules/module-ci-repository/pom.xml similarity index 86% rename from modules/ci-scm-repository/pom.xml rename to modules/module-ci-repository/pom.xml index 52a14ae..94d0c05 100644 --- a/modules/ci-scm-repository/pom.xml +++ b/modules/module-ci-repository/pom.xml @@ -10,15 +10,14 @@ ../pom.xml - cd.casic.ci - ci-scm-repository + module-ci-repository ${revision} - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common-pipeline diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceGithubResource.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceGithubResource.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceGithubResource.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceGithubResource.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceGithubResourceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceGithubResourceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceGithubResourceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceGithubResourceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceOauthResource.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceOauthResource.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceOauthResource.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceOauthResource.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceOauthResourceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceOauthResourceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceOauthResourceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceOauthResourceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceRepositoryResource.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceRepositoryResource.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceRepositoryResource.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceRepositoryResource.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceRepositoryResourceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceRepositoryResourceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceRepositoryResourceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/ServiceRepositoryResourceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmOauthResource.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmOauthResource.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmOauthResource.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmOauthResource.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmOauthResourceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmOauthResourceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmOauthResourceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmOauthResourceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmResource.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmResource.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmResource.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmResource.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmResourceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmResourceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmResourceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/api/scm/ServiceScmResourceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/config/GitConfig.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/config/GitConfig.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/config/GitConfig.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/config/GitConfig.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/config/P4Config.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/config/P4Config.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/config/P4Config.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/config/P4Config.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/config/SVNConfig.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/config/SVNConfig.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/config/SVNConfig.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/config/SVNConfig.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryGitTokenMapper.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryGitTokenMapper.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryGitTokenMapper.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryGitTokenMapper.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryGitlabTokenMapper.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryGitlabTokenMapper.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryGitlabTokenMapper.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryGitlabTokenMapper.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryRecordMapper.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryRecordMapper.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryRecordMapper.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryRecordMapper.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryTGitTokenMapper.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryTGitTokenMapper.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryTGitTokenMapper.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dao/RepositoryTGitTokenMapper.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryGitToken.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryGitToken.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryGitToken.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryGitToken.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryGitlabToken.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryGitlabToken.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryGitlabToken.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryGitlabToken.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryRecord.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryRecord.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryRecord.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryRecord.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryTGitToken.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryTGitToken.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryTGitToken.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/dto/RepositoryTGitToken.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeGitRepository.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeGitRepository.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeGitRepository.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeGitRepository.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeGitlabRepository.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeGitlabRepository.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeGitlabRepository.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeGitlabRepository.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeP4Repository.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeP4Repository.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeP4Repository.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeP4Repository.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeSvnRepository.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeSvnRepository.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeSvnRepository.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeSvnRepository.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeTGitRepository.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeTGitRepository.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeTGitRepository.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/CodeTGitRepository.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/Credential.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/Credential.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/Credential.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/Credential.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/GithubRepository.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/GithubRepository.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/GithubRepository.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/GithubRepository.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/IScm.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/IScm.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/IScm.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/IScm.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/Repository.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/Repository.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/Repository.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/Repository.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/RevisionInfo.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/RevisionInfo.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/RevisionInfo.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/RevisionInfo.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/ScmFactory.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/ScmFactory.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/ScmFactory.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/ScmFactory.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/ScmOauthFactory.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/ScmOauthFactory.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/ScmOauthFactory.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/ScmOauthFactory.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitApi.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitApi.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitApi.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitApi.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitOauthApi.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitOauthApi.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitOauthApi.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitOauthApi.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitUserInfo.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitUserInfo.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitUserInfo.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/git/GitUserInfo.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubBranch.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubBranch.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubBranch.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubBranch.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommit.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommit.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommit.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommit.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommitAuthor.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommitAuthor.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommitAuthor.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommitAuthor.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommitData.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommitData.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommitData.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubCommitData.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubObject.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubObject.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubObject.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubObject.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubTag.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubTag.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubTag.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubTag.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubToken.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubToken.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubToken.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/github/GithubToken.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/oauth/GitToken.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/oauth/GitToken.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/oauth/GitToken.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/oauth/GitToken.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeGitScmImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeGitScmImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeGitScmImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeGitScmImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeGitlabScmImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeGitlabScmImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeGitlabScmImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeGitlabScmImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeP4ScmImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeP4ScmImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeP4ScmImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeP4ScmImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeSvnScmImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeSvnScmImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeSvnScmImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeSvnScmImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeTGitScmImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeTGitScmImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeTGitScmImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/dal/pojo/svn/CodeTGitScmImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/CodeGitWebhookEvent.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/CodeGitWebhookEvent.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/CodeGitWebhookEvent.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/CodeGitWebhookEvent.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/CodeSvnRegion.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/CodeSvnRegion.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/CodeSvnRegion.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/CodeSvnRegion.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/GitHubTokenType.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/GitHubTokenType.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/GitHubTokenType.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/GitHubTokenType.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RepoAuthType.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RepoAuthType.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RepoAuthType.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RepoAuthType.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryConfig.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryConfig.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryConfig.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryConfig.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryType.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryType.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryType.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryType.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryTypeNew.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryTypeNew.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryTypeNew.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RepositoryTypeNew.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RequestChannelTypeEnum.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RequestChannelTypeEnum.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/RequestChannelTypeEnum.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/RequestChannelTypeEnum.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/ScmType.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/ScmType.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/ScmType.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/ScmType.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/TokenTypeEnum.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/TokenTypeEnum.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/enums/TokenTypeEnum.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/enums/TokenTypeEnum.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/CodeRepositoryServiceRegistrar.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/CodeRepositoryServiceRegistrar.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/CodeRepositoryServiceRegistrar.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/CodeRepositoryServiceRegistrar.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/IGitOauthService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/IGitOauthService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/IGitOauthService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/IGitOauthService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/code/CodeRepositoryService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/code/CodeRepositoryService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/code/CodeRepositoryService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/code/CodeRepositoryService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubService.java similarity index 98% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubService.java index 8d3e5f8..989a698 100644 --- a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubService.java +++ b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubService.java @@ -1,6 +1,6 @@ package cd.casic.ci.log.scm.service.github; -import cd.casic.ci.commons.commonapi.constant.CommonMessageCode; +import cd.casic.ci.common.constant.CommonMessageCode; import cd.casic.ci.log.scm.dal.pojo.github.GithubBranch; import cd.casic.ci.log.scm.dal.pojo.github.GithubTag; import cd.casic.framework.commons.exception.ServiceException; diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubTokenService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubTokenService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubTokenService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubTokenService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubTokenServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubTokenServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubTokenServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/GithubTokenServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/IGithubService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/IGithubService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/github/IGithubService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/github/IGithubService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/impl/GitOauthServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/impl/GitOauthServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/impl/GitOauthServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/impl/GitOauthServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/impl/RepositoryServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/impl/RepositoryServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/impl/RepositoryServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/impl/RepositoryServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/GitServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/GitServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/GitServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/GitServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IGitService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IGitService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IGitService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IGitService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IScmOauthService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IScmOauthService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IScmOauthService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IScmOauthService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IScmService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IScmService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IScmService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/IScmService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/ScmOauthServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/ScmOauthServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/ScmOauthServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/ScmOauthServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/ScmServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/ScmServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/scm/ScmServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/scm/ScmServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/ITGitService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/ITGitService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/ITGitService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/ITGitService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitOauthService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitOauthService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitOauthService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitOauthService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitOauthServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitOauthServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitOauthServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitOauthServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitTokenService.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitTokenService.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitTokenService.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitTokenService.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitTokenServiceImpl.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitTokenServiceImpl.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitTokenServiceImpl.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/service/tgit/TGitTokenServiceImpl.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/utils/GitUtils.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/utils/GitUtils.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/utils/GitUtils.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/utils/GitUtils.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/utils/HashUtil.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/utils/HashUtil.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/utils/HashUtil.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/utils/HashUtil.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/utils/RepositoryConfigUtils.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/utils/RepositoryConfigUtils.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/utils/RepositoryConfigUtils.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/utils/RepositoryConfigUtils.java diff --git a/modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/utils/WebhookUtils.java b/modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/utils/WebhookUtils.java similarity index 100% rename from modules/ci-scm-repository/src/main/java/cd/casic/ci/log/scm/utils/WebhookUtils.java rename to modules/module-ci-repository/src/main/java/cd/casic/ci/log/scm/utils/WebhookUtils.java diff --git a/modules/ci-ticket/pom.xml b/modules/module-ci-ticket/pom.xml similarity index 74% rename from modules/ci-ticket/pom.xml rename to modules/module-ci-ticket/pom.xml index aa09741..2874ff9 100644 --- a/modules/ci-ticket/pom.xml +++ b/modules/module-ci-ticket/pom.xml @@ -10,21 +10,19 @@ ../pom.xml - cd.casic.ci - ci-ticket + module-ci-ticket jar ${revision} - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common-pipeline - cd.casic.ci - ci-market - 2.0.0-jdk17 + cd.casic.boot + module-ci-market diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/UserCredentialResource.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/UserCredentialResource.java similarity index 98% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/UserCredentialResource.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/UserCredentialResource.java index ac86f69..65b86d9 100644 --- a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/UserCredentialResource.java +++ b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/UserCredentialResource.java @@ -11,8 +11,8 @@ import org.springframework.web.bind.annotation.*; import java.security.Permission; import java.util.List; -import static cd.casic.ci.commons.constant.OpsHeader.AUTH_HEADER_USER_ID; -import static cd.casic.ci.commons.constant.OpsHeader.AUTH_HEADER_USER_ID_DEFAULT_VALUE; +import static cd.casic.ci.common.constant.OpsHeader.AUTH_HEADER_USER_ID; +import static cd.casic.ci.common.constant.OpsHeader.AUTH_HEADER_USER_ID_DEFAULT_VALUE; /** * @Author:mianbin diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildAgentCredentialApi.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildAgentCredentialApi.java similarity index 98% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildAgentCredentialApi.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildAgentCredentialApi.java index 619bc6c..56f8f4c 100644 --- a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildAgentCredentialApi.java +++ b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildAgentCredentialApi.java @@ -11,7 +11,8 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import static cd.casic.ci.commons.constant.OpsHeader.*; +import static cd.casic.ci.common.constant.OpsHeader.*; + /** * @Author:mianbin diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildCredentialApi.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildCredentialApi.java similarity index 98% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildCredentialApi.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildCredentialApi.java index b5060d1..d28aa24 100644 --- a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildCredentialApi.java +++ b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/BuildCredentialApi.java @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import static cd.casic.ci.commons.constant.OpsHeader.*; +import static cd.casic.ci.common.constant.OpsHeader.*; /** * @Author:mianbin diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/OpCredentialApi.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/OpCredentialApi.java similarity index 96% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/OpCredentialApi.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/OpCredentialApi.java index 4d7a937..e5a210b 100644 --- a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/OpCredentialApi.java +++ b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/OpCredentialApi.java @@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; -import static cd.casic.ci.commons.constant.OpsHeader.AUTH_HEADER_USER_ID; +import static cd.casic.ci.common.constant.OpsHeader.AUTH_HEADER_USER_ID; /** * @Author:mianbin diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/ServiceCredentialApi.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/ServiceCredentialApi.java similarity index 96% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/ServiceCredentialApi.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/ServiceCredentialApi.java index c940be2..f35d1e0 100644 --- a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/ServiceCredentialApi.java +++ b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/ServiceCredentialApi.java @@ -14,8 +14,7 @@ import org.springframework.web.bind.annotation.*; import java.security.Permission; -import static cd.casic.ci.commons.constant.OpsHeader.AUTH_HEADER_USER_ID; -import static cd.casic.ci.commons.constant.OpsHeader.AUTH_HEADER_USER_ID_DEFAULT_VALUE; +import static cd.casic.ci.common.constant.OpsHeader.*; @RestController diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/UserCredentialApi.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/UserCredentialApi.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/UserCredentialApi.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/UserCredentialApi.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/impl/ServiceCredentialApiImpl.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/impl/ServiceCredentialApiImpl.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/api/impl/ServiceCredentialApiImpl.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/api/impl/ServiceCredentialApiImpl.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/constant/TicketMessageCode.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/constant/TicketMessageCode.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/constant/TicketMessageCode.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/constant/TicketMessageCode.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/dao/CredentialRecordMapper.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/dao/CredentialRecordMapper.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/dao/CredentialRecordMapper.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/dao/CredentialRecordMapper.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/dataobject/CredentialRecord.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/dataobject/CredentialRecord.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/dataobject/CredentialRecord.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/dataobject/CredentialRecord.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/enums/CredentialType.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/enums/CredentialType.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/enums/CredentialType.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/enums/CredentialType.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/Cert.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/Cert.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/Cert.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/Cert.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/Credential.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/Credential.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/Credential.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/Credential.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialCreate.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialCreate.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialCreate.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialCreate.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialInfo.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialInfo.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialInfo.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialInfo.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialPermissions.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialPermissions.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialPermissions.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialPermissions.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialSettingUpdate.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialSettingUpdate.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialSettingUpdate.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialSettingUpdate.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialUpdate.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialUpdate.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialUpdate.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialUpdate.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialWithPermission.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialWithPermission.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialWithPermission.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/dal/pojo/CredentialWithPermission.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialHelper.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialHelper.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialHelper.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialHelper.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialService.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialService.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialService.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialService.java diff --git a/modules/ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialServiceImpl.java b/modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialServiceImpl.java similarity index 100% rename from modules/ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialServiceImpl.java rename to modules/module-ci-ticket/src/main/java/cd/casic/ci/ticket/service/CredentialServiceImpl.java diff --git a/modules/ci-worker/pom.xml b/modules/module-ci-worker/pom.xml similarity index 91% rename from modules/ci-worker/pom.xml rename to modules/module-ci-worker/pom.xml index b5dc4e5..47fd3cc 100644 --- a/modules/ci-worker/pom.xml +++ b/modules/module-ci-worker/pom.xml @@ -10,24 +10,12 @@ ../pom.xml - cd.casic.devops - ci-worker - + module-ci-worker - - - - - - - - - - - cd.casic.ci - ci-commons + cd.casic.boot + module-ci-common-pipeline @@ -76,12 +64,6 @@ - - org.apache.commons - commons-compress - - - com.googlecode.plist diff --git a/modules/ci-environment/src/main/java/cd/casic/pipeline/Main.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/Main.java similarity index 100% rename from modules/ci-environment/src/main/java/cd/casic/pipeline/Main.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/Main.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/BkProcessTree.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/BkProcessTree.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/BkProcessTree.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/BkProcessTree.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/CyclicGraphDetector.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/CyclicGraphDetector.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/CyclicGraphDetector.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/CyclicGraphDetector.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/EnvVars.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/EnvVars.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/EnvVars.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/EnvVars.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/Platform.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/Platform.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/Platform.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/Platform.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/ProcessKiller.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/ProcessKiller.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/ProcessKiller.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/ProcessKiller.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/ProcessTreeRemoting.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/ProcessTreeRemoting.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/ProcessTreeRemoting.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/ProcessTreeRemoting.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/QuotedStringTokenizer.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/QuotedStringTokenizer.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/QuotedStringTokenizer.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/QuotedStringTokenizer.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/Util.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/Util.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/Util.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/Util.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/VariableResolver.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/VariableResolver.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/VariableResolver.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/VariableResolver.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/process/jna/GNUCLibrary.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/jna/GNUCLibrary.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/process/jna/GNUCLibrary.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/process/jna/GNUCLibrary.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/Constants.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/Constants.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/worker/Constants.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/Constants.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/constant/WorkerMessageCode.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/constant/WorkerMessageCode.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/worker/constant/WorkerMessageCode.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/constant/WorkerMessageCode.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/AgentEnv.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/AgentEnv.java similarity index 96% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/AgentEnv.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/AgentEnv.java index 728e06b..0c64d25 100644 --- a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/AgentEnv.java +++ b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/AgentEnv.java @@ -12,10 +12,10 @@ package cd.casic.devops.common.worker.env; +import cd.casic.ci.common.enums.OSType; import lombok.SneakyThrows; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sun.awt.OSInfo; import java.io.File; import java.io.FileInputStream; @@ -46,7 +46,7 @@ public class AgentEnv { private static String secretKey; private static String gateway; private static String fileGateway; - private static OSInfo.OSType os; + private static OSType os; // private static Env env; // private static LogStorageMode logStorageMode; private static String bkTag; @@ -114,11 +114,11 @@ public class AgentEnv { return fileGateway; } - public static OSInfo.OSType getOs() { + public static OSType getOs() { if (os == null) { synchronized (AgentEnv.class) { if (os == null) { - os = OSInfo.OSType.valueOf(System.getProperty("os.name").toUpperCase(Locale.ROOT)); + os = OSType.valueOf(System.getProperty("os.name").toUpperCase(Locale.ROOT)); logger.info("Get the OS type({})", os); } } diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/BuildEnv.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/BuildEnv.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/BuildEnv.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/BuildEnv.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/BuildType.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/BuildType.java similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/BuildType.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/BuildType.java diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/DockerEnv.java b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/DockerEnv.java similarity index 88% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/DockerEnv.java rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/DockerEnv.java index 1291609..c00a679 100644 --- a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/env/DockerEnv.java +++ b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/env/DockerEnv.java @@ -12,7 +12,8 @@ package cd.casic.devops.common.worker.env; -import com.tencent.devops.worker.common.exception.PropertyNotExistException; +import cd.casic.framework.commons.exception.ServerException; +import cd.casic.framework.commons.exception.ServiceException; import lombok.SneakyThrows; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,7 +52,7 @@ public class DockerEnv { if (projectId == null) { projectId = getProperty(PROJECT_ID); if (projectId == null || projectId.isEmpty()) { - throw new Exception(PROJECT_ID+ "Empty project Id"); + throw new Exception(PROJECT_ID + "Empty project Id"); // throw new PropertyNotExistException(PROJECT_ID, "Empty project Id"); } logger.info("Get the project ID({})", projectId); @@ -72,7 +73,7 @@ public class DockerEnv { if (buildId == null) { buildId = getProperty(BUILD_ID); if (buildId == null || buildId.isEmpty()) { - throw new Exception(BUILD_ID+ "Empty build Id"); + throw new Exception(BUILD_ID + "Empty build Id"); // throw new PropertyNotExistException(BUILD_ID, "Empty build Id"); } logger.info("Get the build ID({})", buildId); @@ -88,7 +89,7 @@ public class DockerEnv { if (agentId == null) { agentId = getProperty(AGENT_ID); if (agentId == null || agentId.isEmpty()) { - throw new PropertyNotExistException(AGENT_ID, "Empty agent Id"); + throw new ServerException(-1000, AGENT_ID + "Empty agent Id"); } logger.info("Get the agent ID({})", agentId); } @@ -107,7 +108,7 @@ public class DockerEnv { if (secretKey == null) { secretKey = getProperty(AGENT_SECRET_KEY); if (secretKey == null || secretKey.isEmpty()) { - throw new PropertyNotExistException(AGENT_SECRET_KEY, "Empty agent secret key"); + throw new ServiceException(-1000, AGENT_SECRET_KEY + "Empty agent secret key"); } logger.info("Get the agent secret key({})", secretKey); } @@ -122,7 +123,7 @@ public class DockerEnv { if (gateway == null) { gateway = getProperty(AGENT_GATEWAY); if (gateway == null || gateway.isEmpty()) { - throw new PropertyNotExistException(AGENT_GATEWAY, "Empty agent gateway"); + throw new ServiceException(-1000, AGENT_GATEWAY + "Empty agent gateway"); } logger.info("Get the gateway({})", gateway); } @@ -149,7 +150,7 @@ public class DockerEnv { if (dockerHostIp == null) { dockerHostIp = getProperty(DOCKER_HOST_IP); if (dockerHostIp == null || dockerHostIp.isEmpty()) { - throw new PropertyNotExistException(DOCKER_HOST_IP, "Empty dockerHostIp"); + throw new ServiceException(-1000, DOCKER_HOST_IP + "Empty dockerHostIp"); } logger.info("Get the dockerHostIp({})", dockerHostIp); } @@ -164,7 +165,7 @@ public class DockerEnv { if (dockerHostPort == null) { dockerHostPort = getProperty(DOCKER_HOST_PORT); if (dockerHostPort == null || dockerHostPort.isEmpty()) { - throw new PropertyNotExistException(DOCKER_HOST_PORT, "Empty dockerHostPort"); + throw new ServiceException(-1000, DOCKER_HOST_PORT + "Empty dockerHostPort"); } logger.info("Get the dockerHostPort({})", dockerHostPort); } @@ -179,7 +180,7 @@ public class DockerEnv { if (hostname == null) { hostname = getProperty(HOSTNAME); if (hostname == null || hostname.isEmpty()) { - throw new PropertyNotExistException(HOSTNAME, "Empty hostname"); + throw new ServiceException(-1000, HOSTNAME + "Empty hostname"); } logger.info("Get the hostname({})", hostname); } diff --git a/modules/ci-worker/src/main/java/cd/casic/devops/common/worker/exception/TaskExecuteExceptionDecorator.kt b/modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/exception/TaskExecuteExceptionDecorator.kt similarity index 100% rename from modules/ci-worker/src/main/java/cd/casic/devops/common/worker/exception/TaskExecuteExceptionDecorator.kt rename to modules/module-ci-worker/src/main/java/cd/casic/devops/common/worker/exception/TaskExecuteExceptionDecorator.kt diff --git a/modules/ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/ApiNotExistException.kt b/modules/module-ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/ApiNotExistException.kt similarity index 100% rename from modules/ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/ApiNotExistException.kt rename to modules/module-ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/ApiNotExistException.kt diff --git a/modules/ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/PropertyNotExistException.kt b/modules/module-ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/PropertyNotExistException.kt similarity index 100% rename from modules/ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/PropertyNotExistException.kt rename to modules/module-ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/PropertyNotExistException.kt diff --git a/modules/ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/TaskExecuteExceptionDecorator.kt b/modules/module-ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/TaskExecuteExceptionDecorator.kt similarity index 100% rename from modules/ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/TaskExecuteExceptionDecorator.kt rename to modules/module-ci-worker/src/main/kotlin/cd.casic.devops.common.worker.exception/TaskExecuteExceptionDecorator.kt diff --git a/modules/ci-worker/src/main/resources/logback.xml b/modules/module-ci-worker/src/main/resources/logback.xml similarity index 100% rename from modules/ci-worker/src/main/resources/logback.xml rename to modules/module-ci-worker/src/main/resources/logback.xml diff --git a/modules/pom.xml b/modules/pom.xml index cb8c2c6..c711789 100644 --- a/modules/pom.xml +++ b/modules/pom.xml @@ -14,17 +14,19 @@ module-infra-biz module-system-api module-system-biz - ci-commons - ci-event - ci-log - ci-market - ci-process - ci-quality - ci-project - ci-scm-repository - ci-ticket - ci-worker - ci-environment + module-ci-event + module-ci-log + module-ci-market + module-ci-quality + module-ci-project + module-ci-repository + module-ci-ticket + module-ci-worker + module-ci-environment + module-ci-common + module-ci-common-pipeline + module-ci-process-api + modules @@ -36,7 +38,7 @@ infra 模块,主要提供两块能力: 1. 我们放基础设施的运维与管理,支撑上层的通用与核心业务。 例如说:定时任务的管理、服务器的信息等等 - 2. 研发工具,提升研发效率与质量。 例如:代码生成器、接口文档等等 + 2. 研发工具,提升研发效率与质量。 例如:接口文档等等 diff --git a/pom.xml b/pom.xml index 133c2eb..f07fea4 100644 --- a/pom.xml +++ b/pom.xml @@ -17,15 +17,6 @@ system-framework app-plugins ops-server - modules/ci-commons - modules/ci-log - modules/ci-event - modules/ci-ticket - modules/ci-quality - modules/ci-scm-repository - modules/ci-project - modules/ci-process - modules/ci-market @@ -165,10 +156,10 @@ org.apache.maven.plugins maven-compiler-plugin - - - - + + + +