From a92027c25e8fbbcb3040c69fcb40d72772fafb3f Mon Sep 17 00:00:00 2001 From: mianbin Date: Wed, 9 Apr 2025 11:06:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=99=E6=98=AF=E8=83=BD=E5=A4=9F=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E7=9A=84=EF=BC=8C=E4=B8=BB=E8=A6=81=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=98=AFprocess=20=EF=BC=8C=20work=20=EF=BC=8C=20dispatch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/CopilotChatHistory.xml | 180 +++++++++++ .idea/compiler.xml | 8 +- .idea/encodings.xml | 14 +- .idea/misc.xml | 6 +- dependencies/.flattened-pom.xml | 10 +- dependencies/pom.xml | 12 +- modules/module-ci-common-pipeline/pom.xml | 18 +- .../common/pipeline/EnvReplacementParser.java | 6 +- .../pipeline/ExprReplacementOptions.java | 6 +- .../pipeline}/constant/BaseConstant.java | 2 +- .../pipeline}/constant/CommonConstants.java | 2 +- .../pipeline}/constant/CommonMessageCode.java | 2 +- .../common/pipeline}/constant/HttpStatus.java | 2 +- .../pipeline}/constant/LeafAllocConstant.java | 2 +- .../common/pipeline}/constant/OpsHeader.java | 2 +- .../pipeline}/constant/PipelineConstants.java | 2 +- .../pipeline}/constant/StringConstant.java | 2 +- .../pipeline}/constant/WebhookConstant.java | 2 +- .../pipeline/container/AgentReuseMutex.java | 2 +- .../common/pipeline}/enums/AgentAction.java | 2 +- .../common/pipeline}/enums/AgentStatus.java | 2 +- .../common/pipeline}/enums/BkStyleEnum.java | 2 +- .../pipeline}/enums/BuildReviewType.java | 2 +- .../common/pipeline}/enums/BusTypeEnum.java | 2 +- .../enums/CheckoutRepositoryType.java | 2 +- .../pipeline}/enums/CommonStatusEnum.java | 2 +- .../ci/common/pipeline}/enums/CrudEnum.java | 2 +- .../pipeline}/enums/DateIntervalEnum.java | 2 +- .../ci/common/pipeline}/enums/EnumLoader.java | 2 +- .../common/pipeline}/enums/EnumModifier.java | 2 +- .../ci/common/pipeline}/enums/ErrorCode.java | 2 +- .../pipeline}/enums/FrontendTypeEnum.java | 2 +- .../ci/common/pipeline}/enums/OSType.java | 2 +- .../enums/RepoYamlSyncStatusEnum.java | 2 +- .../pipeline}/enums/RepositoryConfig.java | 2 +- .../pipeline}/enums/RepositoryType.java | 2 +- .../enums/RequestChannelTypeEnum.java | 2 +- .../ci/common/pipeline}/enums/ScmCode.java | 2 +- .../ci/common/pipeline}/enums/ScmType.java | 2 +- .../pipeline}/enums/SubjectScopeType.java | 2 +- .../pipeline}/enums/SystemModuleEnum.java | 2 +- .../pipeline}/enums/TaskStatusEnum.java | 2 +- .../enums/TriggerRepositoryType.java | 2 +- .../common/pipeline}/enums/UserTypeEnum.java | 2 +- .../pipeline}/functions/ExpressionOutput.java | 2 +- .../pipeline}/functions/IFunctionInfo.java | 2 +- .../pipeline}/functions/INamedValueInfo.java | 2 +- .../pipeline}/functions/Preconditions.java | 2 +- .../common/pipeline/matrix/MatrixConfig.java | 2 +- .../ci/common/pipeline}/pojo/BuildEnv.java | 2 +- .../pipeline/pojo/BuildFormProperty.java | 2 +- .../ci/common/pipeline}/pojo/ErrorInfo.java | 2 +- .../ci/common/pipeline}/pojo/ErrorType.java | 2 +- .../common/pipeline}/pojo/NamedValueInfo.java | 4 +- .../cd/casic/ci/common/pipeline}/pojo/OS.java | 2 +- .../pojo/PipelineAsCodeSettings.java | 2 +- .../casic/ci/common/pipeline}/pojo/Zone.java | 2 +- .../pipeline/pojo/agent/AgentArchType.java | 34 ++ .../pojo/agent/AgentErrorExitData.java | 17 + .../pipeline/pojo/agent/AgentPropsInfo.java | 31 ++ .../{type => pojo}/agent/AgentType.java | 2 +- .../pipeline/pojo/agent/Credential.java | 25 ++ .../pojo/agent/DockerInitFileInfo.java | 25 ++ .../pipeline/pojo/agent/DockerOptions.java | 25 ++ .../pipeline/pojo/agent/NewHeartbeatInfo.java | 79 +++++ .../agent/ThirdPartyAgentDispatch.java | 2 +- .../agent/ThirdPartyAgentDockerInfo.java | 61 +--- .../ThirdPartyAgentDockerInfoDispatch.java | 34 ++ .../ThirdPartyAgentDockerInfoStoreImage.java | 22 ++ .../agent/ThirdPartyAgentEnvDispatchType.java | 2 +- .../agent/ThirdPartyAgentIDDispatchType.java | 2 +- .../ThirdPartyAgentUpgradeByVersionInfo.java | 27 ++ .../pojo/agent/ThirdPartyBuildInfo.java | 29 ++ .../pojo/agent/ThirdPartyDockerBuildInfo.java | 27 ++ .../pipeline/pojo/agent/UpgradeItem.java | 32 ++ .../pojo/cascade/RepoRefCascadeParam.java | 5 +- .../pojo/element/agent/CodeGitElement.java | 2 +- .../pojo/element/agent/CodeGitlabElement.java | 2 +- .../pojo/element/agent/CodeSvnElement.java | 2 +- .../pojo/element/agent/GithubElement.java | 2 +- .../element/quality/QualityGateInElement.java | 2 +- .../quality/QualityGateOutElement.java | 4 +- .../trigger/CodeGitWebHookTriggerElement.java | 2 +- .../CodeGithubWebHookTriggerElement.java | 2 +- .../CodeGitlabWebHookTriggerElement.java | 2 +- .../trigger/CodeP4WebHookTriggerElement.java | 2 +- .../trigger/CodeSVNWebHookTriggerElement.java | 2 +- .../CodeTGitWebHookTriggerElement.java | 2 +- .../element/trigger/TimerTriggerElement.java | 2 +- .../element/trigger/enums/CodeEventType.java | 3 +- .../pojo/setting/PipelineSetting.java | 2 +- .../ci/common/pipeline/type/BuildType.java | 2 +- .../ci/common/pipeline/type/DispatchType.java | 4 +- .../pipeline/utils/MatrixContextUtils.java | 1 - .../ci/common/pipeline}/utils/YamlUtil.java | 2 +- .../common/operationid/LeafAllocMapper.java | 15 - .../common/operationid/LeafAllocService.java | 28 -- .../operationid/LeafAllocServiceImpl.java | 80 ----- .../operationid/SegmentIdGeneratorImpl.java | 303 ------------------ .../common/operationid/entity/LeafAlloc.java | 62 ---- .../ci/common/operationid/entity/Segment.java | 28 -- .../operationid/entity/SegmentBuffer.java | 73 ----- .../ci/common/operationid/entity/Status.java | 11 - .../pom.xml | 29 +- .../dispatch/api/BuildAgentBuildResource.java | 69 ++++ .../api/BuildJobQuotaBusinessResource.java | 56 ++++ .../dispatch/api/BuildScriptResource.java | 35 ++ .../dispatch/api/BuildWorkerResource.java | 34 ++ .../dispatch/api/OpAgentResource.java | 30 ++ .../api/OpJobQuotaProjectResource.java | 84 +++++ .../api/OpJobQuotaSystemResource.java | 76 +++++ .../dispatch/api/ServiceAgentResource.java | 59 ++++ .../api/ServiceDispatchJobResource.java | 29 ++ .../api/ServiceJobQuotaBusinessResource.java | 57 ++++ .../dispatch/constants/Constants.java | 60 ++++ .../dispatch/pojo/AgentStartMonitor.java | 25 ++ .../dispatch/pojo/BuildAbortMessage.java | 25 ++ .../dispatch/pojo/BuildNeedEndMessage.java | 23 ++ .../dispatch/pojo/JobQuotaProject.java | 39 +++ .../dispatch/pojo/JobQuotaStatus.java | 31 ++ .../dispatch/pojo/JobQuotaSystem.java | 45 +++ .../dispatch/pojo/JobRunningCountProject.java | 30 ++ .../dispatch/pojo/JobRunningCountSystem.java | 26 ++ .../casic/pipeline/dispatch/pojo/Machine.java | 37 +++ .../pipeline/dispatch/pojo/MachineCreate.java | 31 ++ .../pipeline/dispatch/pojo/PipelineBuild.java | 24 ++ .../dispatch/pojo/PipelineBuildCreate.java | 22 ++ .../pipeline/dispatch/pojo/RunningJobVO.java | 36 +++ .../cd/casic/pipeline/dispatch/pojo/Task.java | 31 ++ .../pipeline/dispatch/pojo/TaskCreate.java | 29 ++ .../pipeline/dispatch/pojo/TaskDetail.java | 31 ++ .../pipeline/dispatch/pojo/TaskMessage.java | 32 ++ .../cd/casic/pipeline/dispatch/pojo/VM.java | 51 +++ .../pipeline/dispatch/pojo/VMCreate.java | 47 +++ .../pipeline/dispatch/pojo/VMResponse.java | 55 ++++ .../pipeline/dispatch/pojo/VMTaskResult.java | 25 ++ .../casic/pipeline/dispatch/pojo/VMType.java | 27 ++ .../pipeline/dispatch/pojo/VMTypeCreate.java | 21 ++ .../pipeline/dispatch/pojo/VMWithPage.java | 25 ++ .../dispatch/pojo/VMWithPrivateProject.java | 31 ++ .../dispatch/pojo/enums/JobQuotaVmType.java | 48 +++ .../pojo/enums/PipelineTaskStatus.java | 39 +++ .../dispatch/pojo/enums/TaskPhase.java | 40 +++ .../dispatch/pojo/reids/RedisBuild.java | 51 +++ .../pojo/thirdpartyagent/AgentBuildInfo.java | 43 +++ .../pojo/thirdpartyagent/AskEnable.java | 23 ++ .../pojo/thirdpartyagent/BuildJobType.java | 32 ++ .../thirdpartyagent/ThirdPartyAskInfo.java | 24 ++ .../thirdpartyagent/ThirdPartyAskResp.java | 25 ++ .../ThirdPartyBuildDockerInfo.java | 39 +++ .../ThirdPartyBuildDockerInfoCredential.java | 30 ++ .../thirdpartyagent/ThirdPartyBuildInfo.java | 35 ++ .../ThirdPartyBuildWithStatus.java | 37 +++ .../ThirdPartyDockerDebugDoneInfo.java | 31 ++ .../ThirdPartyDockerDebugInfo.java | 37 +++ modules/module-ci-environment/pom.xml | 2 +- .../main/java/cd/casic/ci/common/Main.java | 7 - .../environment/constant/Constants.java | 36 +++ .../constant/EnvironmentMessageCode.java | 83 +++++ .../pojo/AddSharedProjectInfo.java | 41 +++ .../pojo/AgentPipelineRefInfo.java | 23 ++ .../pojo/AgentPipelineRefRequest.java | 21 ++ .../environment/pojo/AgentUpgradeType.java | 29 ++ .../pipeline/environment/pojo/CcNode.java | 35 ++ .../pipeline/environment/pojo/CmdbNode.java | 55 ++++ .../environment/pojo/DevCloudImageParam.java | 19 ++ .../environment/pojo/DevCloudModel.java | 31 ++ .../environment/pojo/DevCloudVmParam.java | 26 ++ .../environment/pojo/DisplayName.java | 11 + .../environment/pojo/EnvCreateInfo.java | 32 ++ .../environment/pojo/EnvUpdateInfo.java | 25 ++ .../pipeline/environment/pojo/EnvVar.java | 21 ++ .../environment/pojo/EnvWithNode.java | 22 ++ .../environment/pojo/EnvWithNodeCount.java | 36 +++ .../environment/pojo/EnvWithPermission.java | 55 ++++ .../environment/pojo/EnvironmentId.java | 11 + .../environment/pojo/NodeBaseInfo.java | 61 ++++ .../environment/pojo/NodeDevCloudInfo.java | 41 +++ .../pipeline/environment/pojo/NodePage.java | 18 ++ .../environment/pojo/NodeWithPermission.java | 112 +++++++ .../environment/pojo/ProjectConfig.java | 35 ++ .../environment/pojo/ProjectConfigPage.java | 18 ++ .../environment/pojo/ProjectConfigParam.java | 32 ++ .../environment/pojo/ProjectInfo.java | 35 ++ .../environment/pojo/SharedProjectInfo.java | 33 ++ .../pojo/SharedProjectInfoWrap.java | 17 + .../pojo/TEnvShareProjectInfo.java | 35 ++ .../environment/pojo/enums/EnvType.java | 17 + .../environment/pojo/enums/NodeSource.java | 16 + .../environment/pojo/enums/NodeStatus.java | 67 ++++ .../environment/pojo/enums/NodeType.java | 47 +++ .../environment/pojo/enums/OsType.java | 20 ++ .../environment/pojo/enums/SharedEnvType.java | 12 + .../thirdpartyagent/AgentBuildDetail.java | 44 +++ .../thirdpartyagent/AgentPipelineRef.java | 36 +++ .../pojo/thirdpartyagent/AgentShared.java | 19 ++ .../pojo/thirdpartyagent/AgentTask.java | 16 + .../thirdpartyagent/AskHeartbeatResponse.java | 36 +++ .../thirdpartyagent/BatchFetchAgentData.java | 20 ++ .../pojo/thirdpartyagent/EnvNodeAgent.java | 16 + .../pojo/thirdpartyagent/HeartbeatInfo.java | 56 ++++ .../thirdpartyagent/HeartbeatResponse.java | 36 +++ .../pojo/thirdpartyagent/JDKInfo.java | 20 ++ .../ThirdPartAgentUpdateType.java | 13 + .../pojo/thirdpartyagent/ThirdPartyAgent.java | 41 +++ .../ThirdPartyAgentAction.java | 22 ++ .../ThirdPartyAgentCreate.java | 20 ++ .../ThirdPartyAgentDetail.java | 73 +++++ .../ThirdPartyAgentHeartbeatInfo.java | 15 + .../thirdpartyagent/ThirdPartyAgentInfo.java | 28 ++ .../thirdpartyagent/ThirdPartyAgentLink.java | 18 ++ .../ThirdPartyAgentPipeline.java | 27 ++ .../ThirdPartyAgentStartInfo.java | 24 ++ .../ThirdPartyAgentStaticInfo.java | 38 +++ .../pipeline/CommandPipeline.java | 14 + .../pipeline/CommandPipelineCreate.java | 22 ++ .../pipeline/FilePipeline.java | 21 ++ .../pipeline/FilePipelineCreate.java | 21 ++ .../pipeline/PipelineCreate.java | 22 ++ .../pipeline/PipelineResponse.java | 23 ++ .../pipeline/PipelineSeqId.java | 12 + .../pipeline/PipelineStatus.java | 27 ++ .../pipeline/PipelineType.java | 9 + .../cd/casic/ci/log/api/AppLogResource.java | 3 +- .../ci/log/api/BuildLogPrintResource.java | 2 +- .../ci/log/api/ServiceLogPrintResource.java | 2 +- .../casic/ci/log/api/ServiceLogResource.java | 2 +- .../cd/casic/ci/log/api/UserLogResource.java | 2 +- .../process/api/engine/BuildJobResource.java | 4 +- .../ci/process/api/engine/atom/IAtomTask.java | 4 +- .../ci/process/api/engine/pojo/BuildInfo.java | 2 +- .../api/engine/pojo/PipelineBuildTask.java | 2 +- .../api/process/pojo/BuildHistory.java | 2 +- .../process/pojo/BuildHistoryWithVars.java | 2 +- .../api/process/pojo/BuildVariables.java | 2 +- .../process/pojo/app/StartBuildContext.java | 6 +- .../mq/PipelineBuildLessStartupEvent.java | 2 +- .../process/pojo/pipeline/ModelRecord.java | 2 +- .../pojo/pipeline/PipelineYamlSyncInfo.java | 2 +- .../process/pojo/pipeline/PipelineYamlVo.java | 2 +- .../pipeline/record/BuildRecordModel.java | 2 +- .../api/process/utils/DependOnUtils.java | 2 +- .../api/process/utils/PipelineVarUtil.java | 2 +- modules/module-ci-process-biz/pom.xml | 22 ++ .../java/cd/casic/ci/process/command/Cmd.java | 38 +++ .../cd/casic/ci/process/command/CmdChain.java | 35 ++ .../casic/ci/process/command/CmdContext.java | 27 ++ .../process/engine/BuildJobResourceImpl.java | 64 ++++ .../process/process/dal/BuildDetailDao.java | 11 + .../ci/process/process/package-info.java | 7 + .../ci/project/dal/pojo/SubjectScopeInfo.java | 2 +- .../service/impl/ProjectServiceImpl.java | 2 +- .../log/scm/service/github/GithubService.java | 2 +- .../ci/ticket/UserCredentialResource.java | 4 +- .../ticket/api/BuildAgentCredentialApi.java | 2 +- .../ci/ticket/api/BuildCredentialApi.java | 2 +- .../casic/ci/ticket/api/OpCredentialApi.java | 2 +- .../ci/ticket/api/ServiceCredentialApi.java | 2 +- .../devops/common/worker/env/AgentEnv.java | 2 +- modules/pom.xml | 3 +- 260 files changed, 4908 insertions(+), 826 deletions(-) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/BaseConstant.java (86%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/CommonConstants.java (99%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/CommonMessageCode.java (99%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/HttpStatus.java (98%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/LeafAllocConstant.java (98%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/OpsHeader.java (99%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/PipelineConstants.java (98%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/StringConstant.java (94%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/constant/WebhookConstant.java (99%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/AgentAction.java (88%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/AgentStatus.java (97%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/BkStyleEnum.java (96%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/BuildReviewType.java (91%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/BusTypeEnum.java (88%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/CheckoutRepositoryType.java (93%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/CommonStatusEnum.java (94%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/CrudEnum.java (89%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/DateIntervalEnum.java (95%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/EnumLoader.java (96%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/EnumModifier.java (85%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/ErrorCode.java (97%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/FrontendTypeEnum.java (94%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/OSType.java (88%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/RepoYamlSyncStatusEnum.java (90%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/RepositoryConfig.java (98%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/RepositoryType.java (92%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/RequestChannelTypeEnum.java (90%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/ScmCode.java (95%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/ScmType.java (95%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/SubjectScopeType.java (92%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/SystemModuleEnum.java (97%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/TaskStatusEnum.java (91%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/TriggerRepositoryType.java (94%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/enums/UserTypeEnum.java (95%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/functions/ExpressionOutput.java (79%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/functions/IFunctionInfo.java (90%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/functions/INamedValueInfo.java (89%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/functions/Preconditions.java (90%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/pojo/BuildEnv.java (93%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/pojo/ErrorInfo.java (96%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/pojo/ErrorType.java (97%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/pojo/NamedValueInfo.java (75%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/pojo/OS.java (90%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/pojo/PipelineAsCodeSettings.java (97%) rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/pojo/Zone.java (90%) create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentArchType.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentErrorExitData.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentPropsInfo.java rename modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/{type => pojo}/agent/AgentType.java (91%) create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/Credential.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/DockerInitFileInfo.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/DockerOptions.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/NewHeartbeatInfo.java rename modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/{type => pojo}/agent/ThirdPartyAgentDispatch.java (97%) rename modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/{type => pojo}/agent/ThirdPartyAgentDockerInfo.java (57%) create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentDockerInfoDispatch.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentDockerInfoStoreImage.java rename modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/{type => pojo}/agent/ThirdPartyAgentEnvDispatchType.java (97%) rename modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/{type => pojo}/agent/ThirdPartyAgentIDDispatchType.java (97%) create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentUpgradeByVersionInfo.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyBuildInfo.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyDockerBuildInfo.java create mode 100644 modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/UpgradeItem.java rename modules/{module-ci-common/src/main/java/cd/casic/ci/common => module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline}/utils/YamlUtil.java (98%) delete mode 100644 modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocMapper.java delete mode 100644 modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocService.java delete mode 100644 modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocServiceImpl.java delete mode 100644 modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/SegmentIdGeneratorImpl.java delete mode 100644 modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/LeafAlloc.java delete mode 100644 modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Segment.java delete mode 100644 modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/SegmentBuffer.java delete mode 100644 modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Status.java rename modules/{module-ci-common => module-ci-dispatch-api}/pom.xml (60%) create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildAgentBuildResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildJobQuotaBusinessResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildScriptResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildWorkerResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpAgentResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpJobQuotaProjectResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpJobQuotaSystemResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceAgentResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceDispatchJobResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceJobQuotaBusinessResource.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/constants/Constants.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/AgentStartMonitor.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/BuildAbortMessage.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/BuildNeedEndMessage.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaProject.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaStatus.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaSystem.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobRunningCountProject.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobRunningCountSystem.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/Machine.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/MachineCreate.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/PipelineBuild.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/PipelineBuildCreate.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/RunningJobVO.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/Task.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskCreate.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskDetail.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskMessage.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VM.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMCreate.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMResponse.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMTaskResult.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMType.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMTypeCreate.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMWithPage.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMWithPrivateProject.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/JobQuotaVmType.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/PipelineTaskStatus.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/TaskPhase.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/reids/RedisBuild.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/AgentBuildInfo.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/AskEnable.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/BuildJobType.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyAskInfo.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyAskResp.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildDockerInfo.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildDockerInfoCredential.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildInfo.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildWithStatus.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyDockerDebugDoneInfo.java create mode 100644 modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyDockerDebugInfo.java delete mode 100644 modules/module-ci-environment/src/main/java/cd/casic/ci/common/Main.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/constant/Constants.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/constant/EnvironmentMessageCode.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AddSharedProjectInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentPipelineRefInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentPipelineRefRequest.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentUpgradeType.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/CcNode.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/CmdbNode.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudImageParam.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudModel.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudVmParam.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DisplayName.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvCreateInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvUpdateInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvVar.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithNode.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithNodeCount.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithPermission.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvironmentId.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeBaseInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeDevCloudInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodePage.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeWithPermission.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfig.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfigPage.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfigParam.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/SharedProjectInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/SharedProjectInfoWrap.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/TEnvShareProjectInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/EnvType.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeSource.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeStatus.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeType.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/OsType.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/SharedEnvType.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentBuildDetail.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentPipelineRef.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentShared.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentTask.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AskHeartbeatResponse.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/BatchFetchAgentData.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/EnvNodeAgent.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/HeartbeatInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/HeartbeatResponse.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/JDKInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartAgentUpdateType.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgent.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentAction.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentCreate.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentDetail.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentHeartbeatInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentLink.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentPipeline.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentStartInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentStaticInfo.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/CommandPipeline.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/CommandPipelineCreate.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/FilePipeline.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/FilePipelineCreate.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineCreate.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineResponse.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineSeqId.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineStatus.java create mode 100644 modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineType.java create mode 100644 modules/module-ci-process-biz/pom.xml create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/Cmd.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/CmdChain.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/CmdContext.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/BuildJobResourceImpl.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/BuildDetailDao.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/package-info.java diff --git a/.idea/CopilotChatHistory.xml b/.idea/CopilotChatHistory.xml index b357f4c..73431fb 100644 --- a/.idea/CopilotChatHistory.xml +++ b/.idea/CopilotChatHistory.xml @@ -3,6 +3,186 @@ - - + + diff --git a/dependencies/.flattened-pom.xml b/dependencies/.flattened-pom.xml index ff50801..9e16730 100644 --- a/dependencies/.flattened-pom.xml +++ b/dependencies/.flattened-pom.xml @@ -195,11 +195,6 @@ module-system-biz ${revision} - - cd.casic.boot - module-ci-common - ${revision} - cd.casic.boot module-ci-common-pipeline @@ -260,6 +255,11 @@ module-ci-worker ${revision} + + cd.casic.pipeline + module-ci-dispatch-api + ${revision} + io.github.mouzt bizlog-sdk diff --git a/dependencies/pom.xml b/dependencies/pom.xml index d6af30f..fef3b60 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -220,12 +220,6 @@ - - cd.casic.boot - module-ci-common - ${revision} - - cd.casic.boot module-ci-common-pipeline @@ -298,6 +292,12 @@ ${revision} + + cd.casic.pipeline + module-ci-dispatch-api + ${revision} + + io.github.mouzt diff --git a/modules/module-ci-common-pipeline/pom.xml b/modules/module-ci-common-pipeline/pom.xml index bee7d1b..c6cd71c 100644 --- a/modules/module-ci-common-pipeline/pom.xml +++ b/modules/module-ci-common-pipeline/pom.xml @@ -17,7 +17,23 @@ cd.casic.boot - module-ci-common + commons + + + cd.casic.boot + spring-boot-starter-mybatis + + + com.networknt + json-schema-validator + + + org.json + json + + + cd.casic.boot + spring-boot-starter-test diff --git a/modules/module-ci-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 index fff9b70..e76490f 100644 --- a/modules/module-ci-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,8 +1,8 @@ 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 cd.casic.ci.common.pipeline.functions.ExpressionOutput; +import cd.casic.ci.common.pipeline.functions.IFunctionInfo; +import cd.casic.ci.common.pipeline.pojo.NamedValueInfo; import cd.casic.ci.common.pipeline.dialect.IPipelineDialect; import cd.casic.ci.common.pipeline.utils.ObjectReplaceEnvVarUtil; import cn.hutool.core.lang.Pair; diff --git a/modules/module-ci-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 index 51042b3..21af73d 100644 --- a/modules/module-ci-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,8 +1,8 @@ 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 cd.casic.ci.common.pipeline.functions.ExpressionOutput; +import cd.casic.ci.common.pipeline.functions.IFunctionInfo; +import cd.casic.ci.common.pipeline.pojo.NamedValueInfo; import cn.hutool.core.lang.Pair; import com.networknt.schema.ExecutionContext; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/BaseConstant.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/BaseConstant.java similarity index 86% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/BaseConstant.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/BaseConstant.java index 6ce5159..6a70f42 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/BaseConstant.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/BaseConstant.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.constant; /** * @Classname BaseConstant diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonConstants.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/CommonConstants.java similarity index 99% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonConstants.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/CommonConstants.java index f7b5fd8..c1b967d 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonConstants.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/CommonConstants.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.constant; /** * @Author:mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonMessageCode.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/CommonMessageCode.java similarity index 99% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonMessageCode.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/CommonMessageCode.java index a8e9994..8a10398 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/CommonMessageCode.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/CommonMessageCode.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.constant; /** * @Author:mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/HttpStatus.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/HttpStatus.java similarity index 98% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/HttpStatus.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/HttpStatus.java index a22fcd6..14307ac 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/HttpStatus.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/HttpStatus.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.constant; /** * @Author:mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/LeafAllocConstant.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/LeafAllocConstant.java similarity index 98% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/LeafAllocConstant.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/LeafAllocConstant.java index f8253fe..8de5e7e 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/LeafAllocConstant.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/LeafAllocConstant.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.constant; /** * @Classname LeafAllocConstant diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/OpsHeader.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/OpsHeader.java similarity index 99% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/OpsHeader.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/OpsHeader.java index 6560129..ef021d7 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/OpsHeader.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/OpsHeader.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.constant; /** diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/PipelineConstants.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/PipelineConstants.java similarity index 98% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/PipelineConstants.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/PipelineConstants.java index c18634e..a709c9a 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/PipelineConstants.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/PipelineConstants.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.constant; /** * @Author:mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/StringConstant.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/StringConstant.java similarity index 94% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/StringConstant.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/StringConstant.java index dd31230..cfdc259 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/StringConstant.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/StringConstant.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.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-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/WebhookConstant.java similarity index 99% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/WebhookConstant.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/WebhookConstant.java index 5995532..9ab99da 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/constant/WebhookConstant.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/constant/WebhookConstant.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.constant; +package cd.casic.ci.common.pipeline.constant; /** * @author by mianbin diff --git a/modules/module-ci-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 index 197f443..6620e18 100644 --- a/modules/module-ci-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 @@ -1,6 +1,6 @@ package cd.casic.ci.common.pipeline.container; -import cd.casic.ci.common.pipeline.type.agent.AgentType; +import cd.casic.ci.common.pipeline.pojo.agent.AgentType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentAction.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/AgentAction.java similarity index 88% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentAction.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/AgentAction.java index cf4766c..c3518a1 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentAction.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/AgentAction.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentStatus.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/AgentStatus.java similarity index 97% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentStatus.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/AgentStatus.java index 6b9b09b..617c3ba 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/AgentStatus.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/AgentStatus.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BkStyleEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BkStyleEnum.java similarity index 96% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BkStyleEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BkStyleEnum.java index 7ab1d04..db540e4 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BkStyleEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BkStyleEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; /** * @Classname StyleEnum diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BuildReviewType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildReviewType.java similarity index 91% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BuildReviewType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildReviewType.java index 943aec0..7027cce 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BuildReviewType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BuildReviewType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BusTypeEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BusTypeEnum.java similarity index 88% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BusTypeEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BusTypeEnum.java index 29086e1..a98ed2c 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/BusTypeEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/BusTypeEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CheckoutRepositoryType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CheckoutRepositoryType.java similarity index 93% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CheckoutRepositoryType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CheckoutRepositoryType.java index 0db1964..18e3216 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CheckoutRepositoryType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CheckoutRepositoryType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CommonStatusEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CommonStatusEnum.java similarity index 94% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CommonStatusEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CommonStatusEnum.java index 8ec9aed..70418d2 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CommonStatusEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CommonStatusEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import cd.casic.framework.commons.core.IntArrayValuable; import lombok.AllArgsConstructor; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CrudEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CrudEnum.java similarity index 89% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CrudEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CrudEnum.java index 540e7cc..3c54092 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/CrudEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/CrudEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/DateIntervalEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DateIntervalEnum.java similarity index 95% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/DateIntervalEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DateIntervalEnum.java index fd3a14b..a640591 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/DateIntervalEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/DateIntervalEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.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/enums/EnumLoader.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnumLoader.java similarity index 96% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumLoader.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnumLoader.java index 609cf11..7098f80 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumLoader.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnumLoader.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.extern.slf4j.Slf4j; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumModifier.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnumModifier.java similarity index 85% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumModifier.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnumModifier.java index ab27ba7..44c61c7 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/EnumModifier.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/EnumModifier.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.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-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ErrorCode.java similarity index 97% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ErrorCode.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ErrorCode.java index 905b22f..6a4a535 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ErrorCode.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ErrorCode.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; /** * @author by mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/FrontendTypeEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/FrontendTypeEnum.java similarity index 94% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/FrontendTypeEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/FrontendTypeEnum.java index 4a71a37..80d9286 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/FrontendTypeEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/FrontendTypeEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/OSType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/OSType.java similarity index 88% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/OSType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/OSType.java index 0c9b1a7..de43b64 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/OSType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/OSType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.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-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepoYamlSyncStatusEnum.java similarity index 90% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepoYamlSyncStatusEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepoYamlSyncStatusEnum.java index 131d5d4..44cc172 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepoYamlSyncStatusEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepoYamlSyncStatusEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryConfig.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepositoryConfig.java similarity index 98% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryConfig.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepositoryConfig.java index c0d6ef5..2646d88 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryConfig.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepositoryConfig.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import cd.casic.framework.commons.exception.ServerException; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepositoryType.java similarity index 92% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepositoryType.java index 9fad104..947c669 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RepositoryType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RepositoryType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RequestChannelTypeEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RequestChannelTypeEnum.java similarity index 90% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RequestChannelTypeEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RequestChannelTypeEnum.java index 8feac49..7dad7f6 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/RequestChannelTypeEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/RequestChannelTypeEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmCode.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ScmCode.java similarity index 95% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmCode.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ScmCode.java index e1598bb..d6a8653 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmCode.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ScmCode.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ScmType.java similarity index 95% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ScmType.java index 9b33db1..416937c 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/ScmType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/ScmType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SubjectScopeType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SubjectScopeType.java similarity index 92% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SubjectScopeType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SubjectScopeType.java index 70cd3f9..63f3686 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SubjectScopeType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SubjectScopeType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; /** diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SystemModuleEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SystemModuleEnum.java similarity index 97% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SystemModuleEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SystemModuleEnum.java index 4f309c7..6436819 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/SystemModuleEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/SystemModuleEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; /** * @author mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TaskStatusEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TaskStatusEnum.java similarity index 91% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TaskStatusEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TaskStatusEnum.java index 3c6bfff..6dd402f 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TaskStatusEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TaskStatusEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TriggerRepositoryType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TriggerRepositoryType.java similarity index 94% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TriggerRepositoryType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TriggerRepositoryType.java index 3cfcf4b..4357690 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/TriggerRepositoryType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/TriggerRepositoryType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/UserTypeEnum.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/UserTypeEnum.java similarity index 95% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/UserTypeEnum.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/UserTypeEnum.java index 76ca06c..508a908 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/enums/UserTypeEnum.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/enums/UserTypeEnum.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.enums; +package cd.casic.ci.common.pipeline.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-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/ExpressionOutput.java similarity index 79% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/ExpressionOutput.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/ExpressionOutput.java index 7d0adc8..92f29e3 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/ExpressionOutput.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/ExpressionOutput.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.functions; +package cd.casic.ci.common.pipeline.functions; /** * @author by mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/IFunctionInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/IFunctionInfo.java similarity index 90% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/IFunctionInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/IFunctionInfo.java index c21b703..a32794c 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/IFunctionInfo.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/IFunctionInfo.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.functions; +package cd.casic.ci.common.pipeline.functions; import java.util.function.Function; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/INamedValueInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/INamedValueInfo.java similarity index 89% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/INamedValueInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/INamedValueInfo.java index a27687f..6e71738 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/INamedValueInfo.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/INamedValueInfo.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.functions; +package cd.casic.ci.common.pipeline.functions; /** * @author by mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/Preconditions.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/Preconditions.java similarity index 90% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/Preconditions.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/Preconditions.java index 9d6ef7b..1ceb928 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/functions/Preconditions.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/functions/Preconditions.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.functions; +package cd.casic.ci.common.pipeline.functions; import lombok.SneakyThrows; 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 index 0cf3a26..b991c51 100644 --- 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 @@ -1,5 +1,5 @@ package cd.casic.ci.common.pipeline.matrix; -import cd.casic.ci.common.utils.YamlUtil; +import cd.casic.ci.common.pipeline.utils.YamlUtil; import cd.casic.ci.common.pipeline.utils.MatrixContextUtils; import cn.hutool.core.lang.Pair; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/BuildEnv.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildEnv.java similarity index 93% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/BuildEnv.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildEnv.java index 6f087dc..fa80dcf 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/BuildEnv.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/BuildEnv.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pojo; +package cd.casic.ci.common.pipeline.pojo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/module-ci-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 index 6a4393d..2b03cc0 100644 --- a/modules/module-ci-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,7 +1,7 @@ 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.enums.ScmType; import cd.casic.ci.common.pipeline.pojo.cascade.BuildCascadeProps; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/ErrorInfo.java similarity index 96% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/ErrorInfo.java index 2a44eee..8da4392 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorInfo.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/ErrorInfo.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pojo; +package cd.casic.ci.common.pipeline.pojo; /** * @author by mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/ErrorType.java similarity index 97% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorType.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/ErrorType.java index a6275f3..601a8b7 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/ErrorType.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/ErrorType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pojo; +package cd.casic.ci.common.pipeline.pojo; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/NamedValueInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/NamedValueInfo.java similarity index 75% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/NamedValueInfo.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/NamedValueInfo.java index b6a46e8..9b0b478 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/NamedValueInfo.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/NamedValueInfo.java @@ -1,6 +1,6 @@ -package cd.casic.ci.common.pojo; +package cd.casic.ci.common.pipeline.pojo; -import cd.casic.ci.common.functions.INamedValueInfo; +import cd.casic.ci.common.pipeline.functions.INamedValueInfo; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/OS.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/OS.java similarity index 90% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/OS.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/OS.java index a252669..237fbe4 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/OS.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/OS.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pojo; +package cd.casic.ci.common.pipeline.pojo; /** * @author by mianbin diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/PipelineAsCodeSettings.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineAsCodeSettings.java similarity index 97% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/PipelineAsCodeSettings.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineAsCodeSettings.java index b8a4ee0..c3a9f4b 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/PipelineAsCodeSettings.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/PipelineAsCodeSettings.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pojo; +package cd.casic.ci.common.pipeline.pojo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/Zone.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/Zone.java similarity index 90% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/Zone.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/Zone.java index 665f194..8556e7a 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/pojo/Zone.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/Zone.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pojo; +package cd.casic.ci.common.pipeline.pojo; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentArchType.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentArchType.java new file mode 100644 index 0000000..acf39b7 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentArchType.java @@ -0,0 +1,34 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author by mianbin + * @Classname AgentArchType + * @Description TODO + * @Date 2025/4/8 19:25 + */ +@Getter +@AllArgsConstructor +public enum AgentArchType { + ARM64("arm64"), + MIPS64("mips64"), + AMD64("amd64"); + + private final String arch; + + public static AgentArchType parse(String arch) { + if (AMD64.arch.equals(arch)) { + return AMD64; + } + if (ARM64.arch.equals(arch)) { + return ARM64; + } + if (MIPS64.arch.equals(arch)) { + return MIPS64; + } + return null; + } +} + diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentErrorExitData.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentErrorExitData.java new file mode 100644 index 0000000..99cce0b --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentErrorExitData.java @@ -0,0 +1,17 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname AgentErrorExitData + * @Description TODO + * @Date 2025/4/8 19:27 + */ +@Data +@AllArgsConstructor +public class AgentErrorExitData { + private final String errorEnum; + private final String message; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentPropsInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentPropsInfo.java new file mode 100644 index 0000000..2b99a1c --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/AgentPropsInfo.java @@ -0,0 +1,31 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author by mianbin + * @Classname AgentPropsInfo + * @Description TODO + * @Date 2025/4/8 19:28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "Agent属性信息") +public class AgentPropsInfo { + @Schema(description = "agent运行系统的架构信息") + private String arch; + + @Schema(description = "jdk版本信息") + private List jdkVersion; + + @Schema(description = "docker init 文件升级信息") + private DockerInitFileInfo dockerInitFileInfo; +} diff --git a/modules/module-ci-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/pojo/agent/AgentType.java similarity index 91% rename from modules/module-ci-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/pojo/agent/AgentType.java index d70392d..b25b15c 100644 --- a/modules/module-ci-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/pojo/agent/AgentType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pipeline.type.agent; +package cd.casic.ci.common.pipeline.pojo.agent; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/Credential.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/Credential.java new file mode 100644 index 0000000..6ae5db3 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/Credential.java @@ -0,0 +1,25 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Getter; +import lombok.Setter; + +/** + * @author by mianbin + * @Classname Credential + * @Description TODO + * @Date 2025/4/8 16:30 + */ +@Getter +@Setter +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Credential { + private String user; + private String password; + private String credentialId; + private String acrossTemplateId; + private String jobId; + private String credentialProjectId; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/DockerInitFileInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/DockerInitFileInfo.java new file mode 100644 index 0000000..6b5a5d8 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/DockerInitFileInfo.java @@ -0,0 +1,25 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname DockerInitFileInfo + * @Description TODO + * @Date 2025/4/8 19:30 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "docker init 文件升级信息") +public class DockerInitFileInfo { + @Schema(description = "文件md5值") + private String fileMd5; + @Schema(description = "目前只支持linux机器,所以其他系统不需要检查") + private boolean needUpgrade; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/DockerOptions.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/DockerOptions.java new file mode 100644 index 0000000..a8e4c4f --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/DockerOptions.java @@ -0,0 +1,25 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * @author by mianbin + * @Classname DockerOptions + * @Description TODO + * @Date 2025/4/8 16:30 + */ +@Getter +@Setter +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DockerOptions { + private List volumes; + private List mounts; + private String gpus; + private Boolean privileged; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/NewHeartbeatInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/NewHeartbeatInfo.java new file mode 100644 index 0000000..763dbc9 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/NewHeartbeatInfo.java @@ -0,0 +1,79 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.assertj.core.util.Lists; + +import java.util.List; + +/** + * @author by mianbin + * @Classname NewHeartbeatInfo + * @Description TODO + * @Date 2025/4/8 19:31 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "心跳信息模型") +public class NewHeartbeatInfo { + @Schema(description = "主版本") + private String masterVersion; + @Schema(description = "从属版本") + private String slaveVersion; + @Schema(description = "主机名") + private String hostName; + @Schema(description = "构建机模型") + private String agentIp; + @Schema(description = "并行任务计数") + private int parallelTaskCount; + @Schema(description = "构建机安装路径") + private String agentInstallPath; + @Schema(description = "启动者") + private String startedUser; + @Schema(description = "第三方构建信息列表") + private List taskList; + @Schema(description = "Agent属性信息") + private AgentPropsInfo props; + @Schema(description = "构建机id") + private Long agentId; + @Schema(description = "项目id") + private String projectId; + @Schema(description = "心跳时间戳") + private Long heartbeatTime; + @Schema(description = "忙碌运行中任务数量") + @Builder.Default + private int busyTaskSize = 0; + @Schema(description = "docker并行任务计数") + private Integer dockerParallelTaskCount; + @Schema(description = "docker构建信息列表") + private List dockerTaskList; + @Schema(description = "忙碌运行docker中任务数量") + @Builder.Default + private int dockerBusyTaskSize = 0; + @Schema(description = "Agent退出的错误信息") + private AgentErrorExitData errorExitData; + + public static NewHeartbeatInfo dummyHeartbeat(String projectId, Long agentId) { + return NewHeartbeatInfo.builder() + .masterVersion("") + .slaveVersion("") + .hostName("") + .agentIp("") + .parallelTaskCount(0) + .agentInstallPath("") + .startedUser("") + .taskList(Lists.emptyList()) + .props(new AgentPropsInfo("", null, null)) + .agentId(agentId) + .projectId(projectId) + .heartbeatTime(System.currentTimeMillis()) + .dockerParallelTaskCount(0) + .dockerTaskList(List.of()) + .build(); + } +} diff --git a/modules/module-ci-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/pojo/agent/ThirdPartyAgentDispatch.java similarity index 97% rename from modules/module-ci-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/pojo/agent/ThirdPartyAgentDispatch.java index c798d8d..c32c1ce 100644 --- a/modules/module-ci-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/pojo/agent/ThirdPartyAgentDispatch.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pipeline.type.agent; +package cd.casic.ci.common.pipeline.pojo.agent; import cd.casic.ci.common.pipeline.type.DispatchType; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/modules/module-ci-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/pojo/agent/ThirdPartyAgentDockerInfo.java similarity index 57% rename from modules/module-ci-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/pojo/agent/ThirdPartyAgentDockerInfo.java index 4ee15c5..c1c4744 100644 --- a/modules/module-ci-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/pojo/agent/ThirdPartyAgentDockerInfo.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pipeline.type.agent; +package cd.casic.ci.common.pipeline.pojo.agent; import cd.casic.ci.common.pipeline.type.docker.ImageType; import cd.casic.ci.common.pipeline.utils.EnvUtils; @@ -7,7 +7,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Getter; import lombok.Setter; -import java.util.List; import java.util.Map; /** @@ -53,60 +52,4 @@ public class ThirdPartyAgentDockerInfo { imagePullPolicy = EnvUtils.parseEnv(imagePullPolicy, variables); } } -} - -@Getter -@Setter -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -class Credential { - private String user; - private String password; - private String credentialId; - private String acrossTemplateId; - private String jobId; - private String credentialProjectId; -} - -@Getter -@Setter -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -class DockerOptions { - private List volumes; - private List mounts; - private String gpus; - private Boolean privileged; -} - -@Getter -@Setter -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -class ThirdPartyAgentDockerInfoStoreImage { - private String imageName; - private String imageCode; - private String imageVersion; -} - -@Getter -@Setter -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -class ThirdPartyAgentDockerInfoDispatch { - private String agentId; - private String secretKey; - private String image; - private Credential credential; - private DockerOptions options; - private String imagePullPolicy; - - public ThirdPartyAgentDockerInfoDispatch(String agentId, String secretKey, ThirdPartyAgentDockerInfo info) { - this.agentId = agentId; - this.secretKey = secretKey; - this.image = info.getImage(); - this.credential = info.getCredential(); - this.options = info.getOptions(); - this.imagePullPolicy = info.getImagePullPolicy(); - } -} +} \ No newline at end of file diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentDockerInfoDispatch.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentDockerInfoDispatch.java new file mode 100644 index 0000000..b7a65c8 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentDockerInfoDispatch.java @@ -0,0 +1,34 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Getter; +import lombok.Setter; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentDockerInfoDispatch + * @Description TODO + * @Date 2025/4/8 16:31 + */ +@Getter +@Setter +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ThirdPartyAgentDockerInfoDispatch { + private String agentId; + private String secretKey; + private String image; + private Credential credential; + private DockerOptions options; + private String imagePullPolicy; + + public ThirdPartyAgentDockerInfoDispatch(String agentId, String secretKey, ThirdPartyAgentDockerInfo info) { + this.agentId = agentId; + this.secretKey = secretKey; + this.image = info.getImage(); + this.credential = info.getCredential(); + this.options = info.getOptions(); + this.imagePullPolicy = info.getImagePullPolicy(); + } +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentDockerInfoStoreImage.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentDockerInfoStoreImage.java new file mode 100644 index 0000000..ddddb8b --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentDockerInfoStoreImage.java @@ -0,0 +1,22 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Getter; +import lombok.Setter; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentDockerInfoStoreImage + * @Description TODO + * @Date 2025/4/8 16:31 + */ +@Getter +@Setter +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ThirdPartyAgentDockerInfoStoreImage { + private String imageName; + private String imageCode; + private String imageVersion; +} diff --git a/modules/module-ci-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/pojo/agent/ThirdPartyAgentEnvDispatchType.java similarity index 97% rename from modules/module-ci-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/pojo/agent/ThirdPartyAgentEnvDispatchType.java index 5b9abb0..c29fd1c 100644 --- a/modules/module-ci-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/pojo/agent/ThirdPartyAgentEnvDispatchType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pipeline.type.agent; +package cd.casic.ci.common.pipeline.pojo.agent; import cd.casic.ci.common.pipeline.type.BuildType; import cd.casic.ci.common.pipeline.utils.EnvUtils; diff --git a/modules/module-ci-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/pojo/agent/ThirdPartyAgentIDDispatchType.java similarity index 97% rename from modules/module-ci-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/pojo/agent/ThirdPartyAgentIDDispatchType.java index 091ca8b..a258757 100644 --- a/modules/module-ci-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/pojo/agent/ThirdPartyAgentIDDispatchType.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.pipeline.type.agent; +package cd.casic.ci.common.pipeline.pojo.agent; import cd.casic.ci.common.pipeline.type.BuildType; import cd.casic.ci.common.pipeline.utils.EnvUtils; diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentUpgradeByVersionInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentUpgradeByVersionInfo.java new file mode 100644 index 0000000..d1dd0e7 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyAgentUpgradeByVersionInfo.java @@ -0,0 +1,27 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentUpgradeByVersionInfo + * @Description TODO + * @Date 2025/4/9 10:58 + */ +@Data +public class ThirdPartyAgentUpgradeByVersionInfo { + @Schema(description = "worker版本") + private String workerVersion; + + @Schema(description = "go agent 版本") + private String goAgentVersion; + + @Schema(description = "jdk版本") + private List jdkVersion; + + @Schema(description = "docker init 文件升级信息") + private DockerInitFileInfo dockerInitFileInfo; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyBuildInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyBuildInfo.java new file mode 100644 index 0000000..cb0f664 --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyBuildInfo.java @@ -0,0 +1,29 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyBuildInfo + * @Description TODO + * @Date 2025/4/8 19:41 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "第三方构建信息") +public class ThirdPartyBuildInfo { + @Schema(description = "项目id") + private String projectId; + @Schema(description = "构建id") + private String buildId; + @Schema(description = "构建机编排序号") + private String vmSeqId; + @Schema(description = "工作空间") + private String workspace; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyDockerBuildInfo.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyDockerBuildInfo.java new file mode 100644 index 0000000..397b83c --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/ThirdPartyDockerBuildInfo.java @@ -0,0 +1,27 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyDockerBuildInfo + * @Description TODO + * @Date 2025/4/8 19:42 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "第三方构建Docker信息") +public class ThirdPartyDockerBuildInfo { + @Schema(description = "项目id") + private String projectId; + @Schema(description = "构建id") + private String buildId; + @Schema(description = "构建机编排序号") + private String vmSeqId; +} diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/UpgradeItem.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/UpgradeItem.java new file mode 100644 index 0000000..f9c37de --- /dev/null +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/pojo/agent/UpgradeItem.java @@ -0,0 +1,32 @@ +package cd.casic.ci.common.pipeline.pojo.agent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname UpgradeItem + * @Description TODO + * @Date 2025/4/8 19:42 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "需要升级的项") +public class UpgradeItem { + @Schema(description = "升级go agent") + private boolean agent; + + @Schema(description = "升级worker") + private boolean worker; + + @Schema(description = "升级jdk") + private boolean jdk; + + @Schema(description = "升级docker init 脚本") + private boolean dockerInitFile; +} diff --git a/modules/module-ci-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 index 2670c00..01d1c21 100644 --- a/modules/module-ci-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,9 +1,8 @@ package cd.casic.ci.common.pipeline.pojo.cascade; -import cd.casic.ci.common.enums.ScmType; import cd.casic.ci.common.pipeline.enums.BuildFormPropertyType; +import cd.casic.ci.common.pipeline.enums.ScmType; import cd.casic.ci.common.pipeline.pojo.BuildFormValue; -import lombok.Data; import java.util.Arrays; import java.util.Collections; @@ -20,7 +19,7 @@ import java.util.stream.Collectors; * @Filename:RepoRefCascadeParam * @description:Todo */ -@Data + public class RepoRefCascadeParam extends CascadeParam { public static final String SELECTOR_KEY_REPO_NAME = "repo-name"; public static final String SELECTOR_KEY_BRANCH = "branch"; diff --git a/modules/module-ci-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 index 6011f13..2f21dea 100644 --- a/modules/module-ci-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,7 +1,7 @@ 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.RepositoryType; import cd.casic.ci.common.pipeline.pojo.element.Element; import cd.casic.ci.common.pipeline.pojo.git.GitPullMode; import cn.hutool.json.JSONUtil; diff --git a/modules/module-ci-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 index f0b9335..c2c7463 100644 --- a/modules/module-ci-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,7 +1,7 @@ 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.RepositoryType; import cd.casic.ci.common.pipeline.pojo.element.Element; import cd.casic.ci.common.pipeline.pojo.git.GitPullMode; import cn.hutool.json.JSONUtil; diff --git a/modules/module-ci-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 index b38ed23..403008a 100644 --- a/modules/module-ci-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,7 +1,7 @@ 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.RepositoryType; import cd.casic.ci.common.pipeline.enums.SVNVersion; import cd.casic.ci.common.pipeline.enums.SvnDepth; import cd.casic.ci.common.pipeline.pojo.element.Element; diff --git a/modules/module-ci-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 index 8084f94..efcd967 100644 --- a/modules/module-ci-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,7 +1,7 @@ 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.RepositoryType; import cd.casic.ci.common.pipeline.pojo.element.Element; import cd.casic.ci.common.pipeline.pojo.git.GitPullMode; import cn.hutool.json.JSONUtil; diff --git a/modules/module-ci-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 index 65c5a82..48ae157 100644 --- a/modules/module-ci-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,7 +9,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import static cd.casic.ci.common.constant.CommonConstants.*; +import static cd.casic.ci.common.pipeline.constant.CommonConstants.*; /** * @Author:mianbin diff --git a/modules/module-ci-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 index 9ac3e7d..295d59a 100644 --- a/modules/module-ci-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 @@ -8,8 +8,8 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import static cd.casic.ci.common.constant.CommonConstants.KEY_ELEMENT_ENABLE; -import static cd.casic.ci.common.constant.CommonConstants.KEY_TASK_ATOM; +import static cd.casic.ci.common.pipeline.constant.CommonConstants.KEY_ELEMENT_ENABLE; +import static cd.casic.ci.common.pipeline.constant.CommonConstants.KEY_TASK_ATOM; /** * @Author:mianbin diff --git a/modules/module-ci-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 index 1ab5c8e..dd46d93 100644 --- a/modules/module-ci-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,7 +1,7 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; +import cd.casic.ci.common.pipeline.enums.TriggerRepositoryType; 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; diff --git a/modules/module-ci-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 index 52e14f3..605b15b 100644 --- a/modules/module-ci-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,7 +1,7 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; +import cd.casic.ci.common.pipeline.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeEventType; import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.PathFilterType; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/modules/module-ci-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 index 59ba779..a9cd46a 100644 --- a/modules/module-ci-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,7 +1,7 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; +import cd.casic.ci.common.pipeline.enums.TriggerRepositoryType; 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; diff --git a/modules/module-ci-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 index 608eb3a..36d8a9c 100644 --- a/modules/module-ci-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,7 +1,7 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; +import cd.casic.ci.common.pipeline.enums.TriggerRepositoryType; 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.utils.TriggerElementPropUtils; diff --git a/modules/module-ci-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 index 0664a3b..03fca4f 100644 --- a/modules/module-ci-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,7 +1,7 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; +import cd.casic.ci.common.pipeline.enums.TriggerRepositoryType; 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; diff --git a/modules/module-ci-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 index 5e2b876..5beb029 100644 --- a/modules/module-ci-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,7 +1,7 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; +import cd.casic.ci.common.pipeline.enums.TriggerRepositoryType; 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; diff --git a/modules/module-ci-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 index 965a6c4..7110a88 100644 --- a/modules/module-ci-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,7 +1,7 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger; -import cd.casic.ci.common.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.enums.StartType; +import cd.casic.ci.common.pipeline.enums.TriggerRepositoryType; import cd.casic.ci.common.pipeline.pojo.element.Element; import io.swagger.v3.oas.annotations.media.Schema; import lombok.experimental.Accessors; diff --git a/modules/module-ci-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 index c8b443b..2a502f2 100644 --- a/modules/module-ci-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,7 @@ package cd.casic.ci.common.pipeline.pojo.element.trigger.enums; -import cd.casic.ci.common.enums.ScmType; + +import cd.casic.ci.common.pipeline.enums.ScmType; import java.util.ArrayList; import java.util.List; diff --git a/modules/module-ci-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 index 3f26235..4edda3d 100644 --- a/modules/module-ci-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.pojo.PipelineAsCodeSettings; +import cd.casic.ci.common.pipeline.pojo.PipelineAsCodeSettings; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.experimental.Accessors; diff --git a/modules/module-ci-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 index 40692b0..f3bbeb1 100644 --- a/modules/module-ci-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,7 +1,7 @@ package cd.casic.ci.common.pipeline.type; -import cd.casic.ci.common.pojo.OS; +import cd.casic.ci.common.pipeline.pojo.OS; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/modules/module-ci-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 index 74d043a..99d101b 100644 --- a/modules/module-ci-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 @@ -1,7 +1,7 @@ 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.pojo.agent.ThirdPartyAgentEnvDispatchType; +import cd.casic.ci.common.pipeline.pojo.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; 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 index ca3d6cd..d4980fb 100644 --- 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 @@ -1,6 +1,5 @@ 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; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/utils/YamlUtil.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/YamlUtil.java similarity index 98% rename from modules/module-ci-common/src/main/java/cd/casic/ci/common/utils/YamlUtil.java rename to modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/YamlUtil.java index f1fb2bf..4ec9271 100644 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/utils/YamlUtil.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/utils/YamlUtil.java @@ -1,4 +1,4 @@ -package cd.casic.ci.common.utils; +package cd.casic.ci.common.pipeline.utils; import cd.casic.framework.commons.util.reflect.ReflectUtil; import com.fasterxml.jackson.core.type.TypeReference; diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocMapper.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocMapper.java deleted file mode 100644 index a1c896f..0000000 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocMapper.java +++ /dev/null @@ -1,15 +0,0 @@ -package cd.casic.ci.common.operationid; - -import cd.casic.ci.common.operationid.entity.LeafAlloc; -import cd.casic.framework.mybatis.core.mapper.BaseMapperX; -import org.apache.ibatis.annotations.Mapper; - -/** - * @author by mianbin - * @Classname LeafAllocMapper - * @Description TODO - * @Date 2025/3/19 10:41 - */ -@Mapper -public interface LeafAllocMapper extends BaseMapperX { -} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocService.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocService.java deleted file mode 100644 index 03894c3..0000000 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocService.java +++ /dev/null @@ -1,28 +0,0 @@ -package cd.casic.ci.common.operationid; - - -import cd.casic.ci.common.operationid.entity.LeafAlloc; - -import java.util.List; -/** - * @author by mianbin - * @Classname LeafAllocService - * @Description TODO - * @Date 2025/3/19 10:41 - */ -public interface LeafAllocService { - - List getAllLeafAllocs(); - - LeafAlloc updateMaxIdAndGetLeafAlloc(String key); - - LeafAlloc updateMaxIdByCustomStepAndGetLeafAlloc(LeafAlloc leafAlloc); - - List getAllKeys(); - - boolean create(LeafAlloc leafAlloc); - - boolean update(LeafAlloc leafAlloc); - - boolean batchCreate(List leafAllocs); -} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocServiceImpl.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocServiceImpl.java deleted file mode 100644 index 395360a..0000000 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/LeafAllocServiceImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -package cd.casic.ci.common.operationid; - - -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; -import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import jakarta.annotation.Resource; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @author by mianbin - * @Classname LeafAllocServiceImpl - * @Description TODO - * @Date 2025/3/19 10:41 - */ -@Slf4j -@Service -public class LeafAllocServiceImpl implements LeafAllocService { - - @Resource - private LeafAllocMapper leafAllocMapper; - - @Override - public List getAllLeafAllocs() { - List leafAllocs = leafAllocMapper.selectList(); - return CollUtil.emptyIfNull(leafAllocs); - } - - @Override - public LeafAlloc updateMaxIdAndGetLeafAlloc(String key) { - LeafAlloc leafAlloc = leafAllocMapper.selectOne(LeafAlloc::getKey, key); - leafAlloc.setMaxId(leafAlloc.getMaxId() + leafAlloc.getStep()); - return leafAllocMapper.updateById(leafAlloc) > 0 ? leafAlloc : null; - } - - @Override - public LeafAlloc updateMaxIdByCustomStepAndGetLeafAlloc(LeafAlloc condition) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery().eq(LeafAlloc::getKey, condition.getKey()); - condition.setMaxId(condition.getMaxId() + condition.getStep()); - return leafAllocMapper.updateById(condition) > 0 ? condition : null; - } - - @Override - public List getAllKeys() { - return leafAllocMapper.selectList().stream().map(LeafAlloc::getKey).collect(Collectors.toList()); - } - - @Override - public boolean create(LeafAlloc leafAlloc) { - LeafAlloc one = leafAllocMapper.selectOne(LeafAlloc::getKey, leafAlloc.getKey()); - if (one != null) { - throw new ServiceException(GlobalErrorCodeConstants.ID_DUPLICATION); - } - return leafAllocMapper.insert(leafAlloc) > 0 ? true : false; - } - - @Override - public boolean update(LeafAlloc leafAlloc) { - LeafAlloc one = leafAllocMapper.selectOne(LeafAlloc::getKey, leafAlloc.getKey(), LeafAlloc::getId, leafAlloc.getId()); - if (one != null) { - throw new ServiceException(GlobalErrorCodeConstants.ID_DUPLICATION); - } - one.setUpdateTime(DateUtil.toLocalDateTime(new Date())); - return leafAllocMapper.updateById(one) > 0 ? true : false; - } - - @Override - public boolean batchCreate(List leafAllocs) { - return leafAllocMapper.insertBatch(leafAllocs); - } -} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/SegmentIdGeneratorImpl.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/SegmentIdGeneratorImpl.java deleted file mode 100644 index 8823947..0000000 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/SegmentIdGeneratorImpl.java +++ /dev/null @@ -1,303 +0,0 @@ -package cd.casic.ci.common.operationid; - - -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; -import lombok.extern.slf4j.Slf4j; - -import java.lang.reflect.Field; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicLong; - -/** - * @author by mianbin - * @Classname SegmentIdGeneratorImpl - * @Description TODO - * @Date 2025/3/19 10:41 - */ -@Slf4j -public class SegmentIdGeneratorImpl implements IdGenerator { - - /** - * IDCache未初始化成功时的异常码 - */ - private static final long EXCEPTION_ID_IDCACHE_INIT_FALSE = -1; - /** - * key不存在时的异常码 - */ - private static final long EXCEPTION_ID_KEY_NOT_EXISTS = -2; - /** - * SegmentBuffer中的两个Segment均未从DB中装载时的异常码 - */ - private static final long EXCEPTION_ID_TWO_SEGMENTS_ARE_NULL = -3; - /** - * 最大步长不超过100,0000 - */ - private static final int MAX_STEP = 1000000; - /** - * 一个Segment维持时间为15分钟 - */ - private static final long SEGMENT_DURATION = 15 * 60 * 1000L; - private volatile boolean initOK = false; - private final Map cache = new ConcurrentHashMap<>(); - - private LeafAllocService leafAllocService; - - private ThreadPoolExecutor threadPoolExecutor; - - private ScheduledExecutorService scheduledExecutorService; - - public SegmentIdGeneratorImpl(LeafAllocService leafAllocService, ThreadPoolExecutor threadPoolExecutor, - ScheduledExecutorService scheduledExecutorService) { - this.leafAllocService = leafAllocService; - this.threadPoolExecutor = threadPoolExecutor; - this.scheduledExecutorService = scheduledExecutorService; - } - - @Override - public boolean init() { - log.info("Init ..."); - // 确保加载到kv后才初始化成功 - updateCacheFromDb(); - initSave(); - initOK = true; - updateCacheFromDbAtEveryMinute(); - return initOK; - } - - private void initSave() { - try { - Class clazz = LeafAllocConstant.class; - Field[] fields = clazz.getFields(); - List notExist = new ArrayList<>(); - for (Field field : fields) { - String str = (String) field.get(null); - if (!cache.containsKey(str)) { - LeafAlloc leafAlloc = new LeafAlloc(); - leafAlloc.setKey(str); - leafAlloc.setMaxId(1L); - leafAlloc.setStep(50); - notExist.add(leafAlloc); - } - } - - if (!notExist.isEmpty()) { - leafAllocService.batchCreate(notExist); - } - } catch (IllegalAccessException e) { - e.printStackTrace(); - log.error(e.getMessage()); - } - } - - @Override - public List batchGenerateSegmentId(String key, Integer num) { - - List res = new ArrayList<>(); - while (num-- > 0) { - res.add(get(key)); - } - - return res; - } - - private void updateCacheFromDbAtEveryMinute() { - - scheduledExecutorService.scheduleWithFixedDelay(this::updateCacheFromDb, 60, 60, TimeUnit.SECONDS); - } - - private void updateCacheFromDb() { - log.info("update cache from db"); - try { - List dbTags = leafAllocService.getAllKeys(); - if (dbTags == null || dbTags.isEmpty()) { - return; - } - List cacheTags = new ArrayList<>(cache.keySet()); - Set insertTagsSet = new HashSet<>(dbTags); - Set removeTagsSet = new HashSet<>(cacheTags); - //db中新加的tags灌进cache - for (String tmp : cacheTags) { - insertTagsSet.remove(tmp); - } - for (String tag : insertTagsSet) { - SegmentBuffer buffer = new SegmentBuffer(); - buffer.setKey(tag); - Segment segment = buffer.getCurrent(); - segment.setValue(new AtomicLong(0)); - segment.setMax(0); - segment.setStep(0); - cache.put(tag, buffer); - log.info("Add tag {} from db to IdCache, SegmentBuffer {}", tag, buffer); - } - //cache中已失效的tags从cache删除 - for (String tmp : dbTags) { - removeTagsSet.remove(tmp); - } - for (String tag : removeTagsSet) { - cache.remove(tag); - log.info("Remove tag {} from IdCache", tag); - } - } catch (Exception e) { - log.warn("update cache from db exception", e); - } - } - - @Override - public Long get(final String key) { - if (!initOK) { - throw new ServiceException(ErrorCode.builder().msg("IDCache未初始化成功").code(0).build()); - } - if (cache.containsKey(key)) { - SegmentBuffer buffer = cache.get(key); - if (!buffer.isInitOk()) { - synchronized (buffer) { - if (!buffer.isInitOk()) { - try { - updateSegmentFromDb(key, buffer.getCurrent()); - log.info("Init buffer. Update leafkey {} {} from db", key, buffer.getCurrent()); - buffer.setInitOk(true); - } catch (Exception e) { - log.warn("Init buffer {} exception", buffer.getCurrent(), e); - } - } - } - } - return getIdFromSegmentBuffer(cache.get(key)); - } - log.warn("key({})不存在", key); - throw new ServiceException(ErrorCode.builder().msg(String.format("key(%s)不存在", key)).code(0).build()); - } - - public void updateSegmentFromDb(String key, Segment segment) { - SegmentBuffer buffer = segment.getBuffer(); - LeafAlloc leafAlloc; - if (!buffer.isInitOk()) { - leafAlloc = leafAllocService.updateMaxIdAndGetLeafAlloc(key); - buffer.setStep(leafAlloc.getStep()); - //leafAlloc中的step为DB中的step - buffer.setMinStep(leafAlloc.getStep()); - } else if (buffer.getUpdateTimestamp() == 0) { - leafAlloc = leafAllocService.updateMaxIdAndGetLeafAlloc(key); - buffer.setUpdateTimestamp(System.currentTimeMillis()); - buffer.setStep(leafAlloc.getStep()); - //leafAlloc中的step为DB中的step - buffer.setMinStep(leafAlloc.getStep()); - } else { - long duration = System.currentTimeMillis() - buffer.getUpdateTimestamp(); - int nextStep = buffer.getStep(); - if (duration < SEGMENT_DURATION) { - if (nextStep * 2 > MAX_STEP) { - //do nothing - } else { - nextStep = nextStep * 2; - } - } else if (duration < SEGMENT_DURATION * 2) { - //do nothing with nextStep - } else { - nextStep = nextStep / 2 >= buffer.getMinStep() ? nextStep / 2 : nextStep; - } - log.info("leafKey[{}], step[{}], duration[{}mins], nextStep[{}]", key, buffer.getStep(), String.format("%.2f", ((double) duration / (1000 * 60))), nextStep); - LeafAlloc temp = new LeafAlloc(); - temp.setKey(key); - temp.setStep(nextStep); - leafAlloc = leafAllocService.updateMaxIdByCustomStepAndGetLeafAlloc(temp); - buffer.setUpdateTimestamp(System.currentTimeMillis()); - buffer.setStep(nextStep); - //leafAlloc的step为DB中的step - buffer.setMinStep(leafAlloc.getStep()); - } - // must set value before set max - long value = leafAlloc.getMaxId() - buffer.getStep(); - segment.getValue().set(value); - segment.setMax(leafAlloc.getMaxId()); - segment.setStep(buffer.getStep()); - } - - public Long getIdFromSegmentBuffer(final SegmentBuffer buffer) { - while (true) { - buffer.rLock().lock(); - try { - final Segment segment = buffer.getCurrent(); - if (!buffer.isNextReady() && (segment.getIdle() < 0.9 * segment.getStep()) && buffer.getThreadRunning().compareAndSet(false, true)) { - threadPoolExecutor.execute(() -> { - Segment next = buffer.getSegments()[buffer.nextPos()]; - boolean updateOk = false; - try { - updateSegmentFromDb(buffer.getKey(), next); - updateOk = true; - log.info("update segment {} from db {}", buffer.getKey(), next); - } catch (Exception e) { - log.warn(buffer.getKey() + " updateSegmentFromDb exception", e); - } finally { - if (updateOk) { - buffer.wLock().lock(); - buffer.setNextReady(true); - buffer.getThreadRunning().set(false); - buffer.wLock().unlock(); - } else { - buffer.getThreadRunning().set(false); - } - } - }); - } - long value = segment.getValue().getAndIncrement(); - if (value < segment.getMax()) { - return value; - } - } finally { - buffer.rLock().unlock(); - } - waitAndSleep(buffer); - buffer.wLock().lock(); - try { - final Segment segment = buffer.getCurrent(); - long value = segment.getValue().getAndIncrement(); - if (value < segment.getMax()) { - return value; - } - if (buffer.isNextReady()) { - buffer.switchPos(); - buffer.setNextReady(false); - } else { - log.error("Both two segments in {} are not ready! ,请稍后再试", buffer); - } - } finally { - buffer.wLock().unlock(); - } - } - } - - private void waitAndSleep(SegmentBuffer buffer) { - int roll = 0; - while (buffer.getThreadRunning().get()) { - roll += 1; - if (roll > 10000) { - try { - TimeUnit.MILLISECONDS.sleep(10); - break; - } catch (InterruptedException e) { - log.warn("Thread {} Interrupted", Thread.currentThread().getName()); - break; - } - } - } - } - - public List getAllLeafAllocs() { - return leafAllocService.getAllLeafAllocs(); - } - - public Map getCache() { - return cache; - } -} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/LeafAlloc.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/LeafAlloc.java deleted file mode 100644 index f06f4c9..0000000 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/LeafAlloc.java +++ /dev/null @@ -1,62 +0,0 @@ -package cd.casic.ci.common.operationid.entity; - -import cd.casic.framework.commons.util.validation.ValidGroup; -import cd.casic.framework.mybatis.core.dataobject.BaseDO; -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotBlank; -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; - -/** - * @author mianbin - * @Classname LeafAlloc - * @Description 业务id实体 - * @Date 2025/3/18 14:16 - */ -@Data -@Accessors(chain = true) -@Schema(description = "生成唯一id的实体") -@EqualsAndHashCode(callSuper=false) -public class LeafAlloc extends BaseDO { - private static final long serialVersionUID = 1L; - - @Schema(description = "主键") - @Null(message = "新增id需为空", groups = ValidGroup.Create.class) - @NotNull(message = "修改id不能为空", groups = ValidGroup.Update.class) - private String id; - - /** - * 业务key - */ - @Schema(description = "业务key", requiredMode = Schema.RequiredMode.REQUIRED) - @NotBlank(message = "key不能为空") - private String key; - - /** - * 当前已分配的最大id - */ - @Schema(description = "当前已分配的最大id(新增建议从1开始)", requiredMode = Schema.RequiredMode.REQUIRED, defaultValue = "1") - @NotNull(message = "maxId不能为空") - @Size(min = 1, message = "最小为1") - private Long maxId; - - /** - * 初始步长,也是动态调整的最小步长 - */ - @Schema(description = "初始步长,也是动态调整的最小步长(从数据库一次获取的id数量)", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "step不能为空") - @Size(min = 1, message = "最小为1") - private Integer step; - - /** - * 业务key描述 - */ - @Schema(description = "业务key描述", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - private String description; - - -} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Segment.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Segment.java deleted file mode 100644 index 9aeab47..0000000 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Segment.java +++ /dev/null @@ -1,28 +0,0 @@ -package cd.casic.ci.common.operationid.entity; - -import lombok.Data; - -import java.util.concurrent.atomic.AtomicLong; - -/** - * @author mianbin - * @Classname Segment - * @Description - * @Date 2025/3/18 14:16 - */ -@Data -public class Segment { - private AtomicLong value = new AtomicLong(0); - private volatile long max; - private volatile int step; - private final SegmentBuffer buffer; - - public Segment(SegmentBuffer buffer) { - this.buffer = buffer; - } - - public long getIdle() { - return this.getMax() - getValue().get(); - } - -} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/SegmentBuffer.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/SegmentBuffer.java deleted file mode 100644 index c73292e..0000000 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/SegmentBuffer.java +++ /dev/null @@ -1,73 +0,0 @@ -package cd.casic.ci.common.operationid.entity; - -import lombok.Data; - -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; - -/** - * @author mianbin - * @Classname SegmentBuffer - * @Description - * @Date 2025/3/18 14:16 - */ -@Data -public class SegmentBuffer { - - private String key; - /** - * 双buffer - */ - private final Segment[] segments; - /** - * 当前的使用的segment的index - */ - private volatile int currentPos; - /** - * 下一个segment是否处于可切换状态 - */ - private volatile boolean nextReady; - /** - * 是否初始化完成 - */ - private volatile boolean initOk; - /** - * 线程是否在运行中 - */ - private final AtomicBoolean threadRunning; - private final ReadWriteLock lock; - private volatile int step; - private volatile int minStep; - private volatile long updateTimestamp; - - public SegmentBuffer() { - segments = new Segment[]{new Segment(this), new Segment(this)}; - currentPos = 0; - nextReady = false; - initOk = false; - threadRunning = new AtomicBoolean(false); - lock = new ReentrantReadWriteLock(); - } - - public Segment getCurrent() { - return segments[currentPos]; - } - - public int nextPos() { - return (currentPos + 1) % 2; - } - - public void switchPos() { - currentPos = nextPos(); - } - - public Lock rLock() { - return lock.readLock(); - } - - public Lock wLock() { - return lock.writeLock(); - } -} diff --git a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Status.java b/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Status.java deleted file mode 100644 index 42eb119..0000000 --- a/modules/module-ci-common/src/main/java/cd/casic/ci/common/operationid/entity/Status.java +++ /dev/null @@ -1,11 +0,0 @@ -package cd.casic.ci.common.operationid.entity; -/** - * @author mianbin - * @Classname Segment - * @Description 没想好干什么呢 - * @Date 2025/3/18 14:16 - */ -public enum Status { - SUCCESS, - EXCEPTION -} diff --git a/modules/module-ci-common/pom.xml b/modules/module-ci-dispatch-api/pom.xml similarity index 60% rename from modules/module-ci-common/pom.xml rename to modules/module-ci-dispatch-api/pom.xml index 509c139..c5007ac 100644 --- a/modules/module-ci-common/pom.xml +++ b/modules/module-ci-dispatch-api/pom.xml @@ -9,33 +9,30 @@ ${revision} - module-ci-common + cd.casic.pipeline - ${project.artifactId} + module-ci-dispatch-api + + ${revision} jar cd.casic.boot - commons + module-ci-common-pipeline + + + + cd.casic.boot + spring-boot-starter-web cd.casic.boot - spring-boot-starter-mybatis - - - com.networknt - json-schema-validator - - - org.json - json - - - cd.casic.boot - spring-boot-starter-test + module-ci-environment + + \ No newline at end of file diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildAgentBuildResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildAgentBuildResource.java new file mode 100644 index 0000000..0951c91 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildAgentBuildResource.java @@ -0,0 +1,69 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.framework.commons.pojo.CommonResult; +import cd.casic.pipeline.dispatch.pojo.thirdpartyagent.ThirdPartyBuildInfo; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; + +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*; + +/** + * @author by mianbin + * @Classname BuildAgentBuildResource + * @Description TODO + * @Date 2025/4/8 16:48 + */ +@Tag(name = "BUILD_AGENT_BUILD", description = "第三方接入agent资源") +@RestController +@RequestMapping(value = "/buildAgent/agent/thirdPartyAgent", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) +public interface BuildAgentBuildResource { + + @Operation(summary = "尝试启动构建") + @GetMapping("/startup") + CommonResult startBuild( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) + String projectId, + @Parameter(description = "Agent ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_AGENT_ID) + String agentId, + @Parameter(description = "秘钥", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_AGENT_SECRET_KEY) + String secretKey, + @Parameter(description = "尝试启动构建的类型", required = false) + @RequestParam("buildType") + String buildType + ); + + @Operation(summary = "是否更新") + @GetMapping("/upgrade") + CommonResult upgrade( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) + String projectId, + @Parameter(description = "Agent ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_AGENT_ID) + String agentId, + @Parameter(description = "秘钥", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_AGENT_SECRET_KEY) + String secretKey, + @Parameter(description = "Agent 版本号", required = false) + @RequestParam("version") + String version, + @Parameter(description = "masterAgent 版本号", required = false) + @RequestParam("masterVersion") + String masterVersion + ); + + // 由于原 Kotlin 代码中 upgradeNew 方法未完成,这里保留未完成状态 + @Operation(summary = "是否更新NEW") + @PostMapping("/upgradeNew") + CommonResult upgradeNew( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) + String projectId + ); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildJobQuotaBusinessResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildJobQuotaBusinessResource.java new file mode 100644 index 0000000..4f31b02 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildJobQuotaBusinessResource.java @@ -0,0 +1,56 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.framework.commons.pojo.CommonResult; +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.pipeline.constant.OpsHeader.*; + +/** + * @author by mianbin + * @Classname BuildJobQuotaBusinessResource + * @Description TODO + * @Date 2025/4/8 16:58 + */ +@Tag(name = "BUILD_JOBS_PROJECT_QUOTA", description = "Job配额管理") +@RestController +@RequestMapping("/build/quotas/running") +public interface BuildJobQuotaBusinessResource { + + @Operation(summary = "上报一个Agent启动") + @PostMapping("/agent/start") + CommonResult addRunningAgent( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) String projectId, + @Parameter(description = "流水线ID", 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 = "构建job序号", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) String vmSeqId, + @Parameter(description = "executeCount", required = true) + @RequestParam("executeCount") Integer executeCount + ); + + @Operation(summary = "上报一个Agent结束") + @DeleteMapping("/agent/shutdown") + Result removeRunningAgent( + @Parameter(description = "项目ID", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_PROJECT_ID) + String projectId, + @Parameter(description = "流水线ID", 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 = "构建job序号", required = true) + @RequestHeader(AUTH_HEADER_DEVOPS_VM_SEQ_ID) + String vmSeqId, + @Parameter(description = "executeCount", required = true) + @RequestParam("executeCount") + int executeCount); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildScriptResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildScriptResource.java new file mode 100644 index 0000000..5e58543 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildScriptResource.java @@ -0,0 +1,35 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.framework.commons.pojo.CommonResult; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author by mianbin + * @Classname BuildScriptResource + * @Date 2025/4/8 17:19 + */ +@Tag(name = "BUILD_CUSTOM_SCRIPT", description = "构建-自定义脚本资源") +@RestController +@RequestMapping("/build/scripts") +public interface BuildScriptResource { + + @Operation(summary = "下载插件") + @GetMapping("/") + @ApiResponses({ + @ApiResponse(responseCode = "304", description = "本地插件已是最新,无需下载") + }) + CommonResult download( + @Parameter(description = "插件标识符", required = true) + @RequestParam("scriptName") String scriptName, + @Parameter(description = "本地eTag标签", required = false) + @RequestParam("eTag") String eTag + ); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildWorkerResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildWorkerResource.java new file mode 100644 index 0000000..fddd57d --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/BuildWorkerResource.java @@ -0,0 +1,34 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.framework.commons.pojo.CommonResult; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author by mianbin + * @Classname BuildWorkerResource + * @Description TODO + * @Date 2025/4/8 17:21 + */ +@Tag(name = "BUILD_WORKER", description = "构建-构建执行器资源") +@RestController +@RequestMapping("/build/workers") +public interface BuildWorkerResource { + + @Operation(summary = "下载构建执行器") + @GetMapping("/") + @ApiResponses({ + @ApiResponse(responseCode = "304", description = "本地的构建执行器已是最新,无需下载") + }) + CommonResult download( + @Parameter(description = "本地eTag标签", required = false) + @RequestParam("eTag") String eTag + ); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpAgentResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpAgentResource.java new file mode 100644 index 0000000..a964af1 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpAgentResource.java @@ -0,0 +1,30 @@ +package cd.casic.pipeline.dispatch.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Set; + +/** + * @author by mianbin + * @Classname OpAgentResource + * @Description TODO + * @Date 2025/4/8 17:22 + */ +@Tag(name = "OP_AGENT", description = "agent相关") +@RestController +@RequestMapping("/op/agent") +public interface OpAgentResource { + + @Operation(summary = "修改灰度排队功能的项目或者流水线") + @PostMapping("/update_gray_queue") + void updateGrayQueue( + @RequestParam("projectId") String projectId, + @RequestParam("operate") String operate, + Set pipelineIds + ); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpJobQuotaProjectResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpJobQuotaProjectResource.java new file mode 100644 index 0000000..abde1cf --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpJobQuotaProjectResource.java @@ -0,0 +1,84 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.framework.commons.pojo.CommonResult; +import cd.casic.pipeline.dispatch.pojo.JobQuotaProject; +import cd.casic.pipeline.dispatch.pojo.enums.JobQuotaVmType; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.websocket.server.PathParam; +import org.springframework.web.bind.annotation.*; + +/** + * @author by mianbin + * @Classname OpJobQuotaProjectResource + * @Description TODO + * @Date 2025/4/8 17:23 + */ +@Tag(name = "OP_JOBS_PROJECT_QUOTA", description = "Job配额管理") +@RestController +@RequestMapping("/op/jobs/quota") +public interface OpJobQuotaProjectResource { + + @Operation(summary = "获取全部的JOB配额信息") + @GetMapping("/list/project/quota") + CommonResult> list( + @Parameter(description = "项目ID", required = false) + @RequestParam("projectId") String projectId + ); + + @Operation(summary = "获取项目的JOB配额信息") + @GetMapping("/{projectId}/{vmType}") + CommonResult get( + @Parameter(description = "项目ID", required = true) + @PathVariable("projectId") String projectId, + @Parameter(description = "构建机类型", required = true) + @PathVariable("vmType") JobQuotaVmType vmType, + @Parameter(description = "构建来源", required = false) + @RequestParam("channelCode") String channelCode + ); + + @Operation(summary = "添加项目的JOB配额信息") + @PutMapping("/{projectId}") + CommonResult add( + @Parameter(description = "项目ID", required = true) + @PathParam("projectId") String projectId, + @Parameter(description = "Job配额信息", required = true) + JobQuotaProject jobQuota + ); + + @Operation(summary = "删除项目的JOB配额信息") + @DeleteMapping("/{projectId}/{vmType}") + CommonResult delete( + @Parameter(description = "项目ID", required = true) + @PathVariable("projectId") String projectId, + @Parameter(description = "构建机类型", required = true) + @PathVariable("vmType") JobQuotaVmType vmType, + @Parameter(description = "构建来源", required = false) + @RequestParam("channelCode") String channelCode + ); + + @Operation(summary = "更新项目的JOB配额信息") + @PostMapping("/{projectId}/{vmType}") + CommonResult update( + @Parameter(description = "项目ID", required = true) + @PathVariable("projectId") String projectId, + @Parameter(description = "构建机类型", required = true) + @PathVariable("vmType") JobQuotaVmType vmType, + @Parameter(description = "Job配额信息", required = true) + JobQuotaProject jobQuota + ); + + @Operation(summary = "清零异常的构建配额记录") + @PostMapping("/project/{projectId}/vm/{vmType}") + CommonResult restoreProjectRunningJobs( + @Parameter(description = "项目ID", required = true) + @PathVariable("projectId") String projectId, + @Parameter(description = "构建机类型", required = true) + @PathVariable("vmType") JobQuotaVmType vmType, + @Parameter(description = "构建时间", required = true) + @RequestParam("createTime") String createTime, + @Parameter(description = "构建来源", required = false) + @RequestParam("channelCode") String channelCode + ); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpJobQuotaSystemResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpJobQuotaSystemResource.java new file mode 100644 index 0000000..a8d9794 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/OpJobQuotaSystemResource.java @@ -0,0 +1,76 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.framework.commons.pojo.CommonResult; +import cd.casic.pipeline.dispatch.pojo.JobQuotaSystem; +import cd.casic.pipeline.dispatch.pojo.enums.JobQuotaVmType; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.websocket.server.PathParam; +import org.springframework.web.bind.annotation.*; + +/** + * @author by mianbin + * @Classname OpJobQuotaSystemResource + * @Description TODO + * @Date 2025/4/8 17:26 + */ +@Tag(name = "OP_JOBS_SYSTEM_QUOTA", description = "Job默认配额管理") +@RestController +@RequestMapping("/op/jobs/system/quota") +public interface OpJobQuotaSystemResource { + + @Operation(summary = "统计已运行的配额信息") + @GetMapping("/all/statistics") + CommonResult> statistics( + @Parameter(description = "分页大小", required = false) + @RequestParam("limit") Integer limit, + @Parameter(description = "偏移", required = false) + @RequestParam("offset") Integer offset + ); + + @Operation(summary = "获取全部的JOB配额信息") + @GetMapping("/all/list") + CommonResult> list(); + + @Operation(summary = "获取系统默认JOB配额信息") + @GetMapping("/{jobQuotaVmType}") + CommonResult> get( + @Parameter(description = "构建机类型", required = false) + @PathParam("jobQuotaVmType") JobQuotaVmType jobQuotaVmType, + @Parameter(description = "构建来源", required = false) + @RequestParam("channelCode") String channelCode + ); + + @Operation(summary = "添加系统默认JOB配额信息") + @PutMapping("/") + CommonResult add( + @Parameter(description = "Job配额信息", required = true) + JobQuotaSystem jobQuota + ); + + @Operation(summary = "删除系统默认JOB配额信息") + @DeleteMapping("/{jobQuotaVmType}") + CommonResult delete( + @Parameter(description = "构建机类型", required = true) + @PathParam("jobQuotaVmType") JobQuotaVmType jobQuotaVmType, + @Parameter(description = "构建来源", required = false) + @RequestParam("channelCode") String channelCode + ); + + @Operation(summary = "更新系统的JOB配额信息") + @PostMapping("/{jobQuotaVmType}") + CommonResult update( + @Parameter(description = "构建机类型", required = true) + @PathParam("jobQuotaVmType") JobQuotaVmType jobQuotaVmType, + @Parameter(description = "Job配额信息", required = true) + JobQuotaSystem jobQuota + ); + + @Operation(summary = "清零当月已运行时间") + @PostMapping("/clear/vm/{vmType}") + CommonResult restore( + @Parameter(description = "构建机类型", required = true) + @PathParam("vmType") JobQuotaVmType vmType + ); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceAgentResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceAgentResource.java new file mode 100644 index 0000000..116a33f --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceAgentResource.java @@ -0,0 +1,59 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.framework.commons.pojo.CommonResult; +import cd.casic.framework.commons.pojo.PageResult; +import cd.casic.pipeline.dispatch.pojo.thirdpartyagent.AgentBuildInfo; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.websocket.server.PathParam; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author by mianbin + * @Classname ServiceAgentResource + * @Description TODO + * @Date 2025/4/8 17:30 + */ +@Tag(name = "SERVICE_AGENT", description = "服务-Agent") +@RestController +@RequestMapping("/service/agents") +public interface ServiceAgentResource { + + @Operation(summary = "获取agent构建信息") + @GetMapping("/{agentId}/listBuilds") + PageResult listAgentBuild( + @Parameter(description = "agent Hash ID", required = true) + @PathParam("agentId") String agentId, + @Parameter(description = "筛选此状态,支持4种输入(QUEUE,RUNNING,DONE,FAILURE)", required = false) + @RequestParam("status") String status, + @Parameter(description = "筛选此pipelineId", required = false) + @RequestParam("pipelineId") String pipelineId, + @Parameter(description = "第几页", required = false) + @RequestParam("page") Integer page, + @Parameter(description = "每页条数", required = false) + @RequestParam("pageSize") Integer pageSize + ); + + @Operation(summary = "批量获取构建机最近执行记录") + @GetMapping("listLatestBuildPipelines") + CommonResult> listLatestBuildPipelines( + @Parameter(description = "agent Hash ID", required = true) + @RequestParam("agentIds") List agentIds + ); + + @Operation(summary = "获取agent登录调试url") + @GetMapping("/docker/debug/url") + CommonResult getDockerDebugUrl( + @RequestParam("userId") String userId, + @RequestParam("projectId") String projectId, + @RequestParam("pipelineId") String pipelineId, + @RequestParam("buildId") String buildId, + @RequestParam("vmSeqId") String vmSeqId + ); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceDispatchJobResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceDispatchJobResource.java new file mode 100644 index 0000000..b893f63 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceDispatchJobResource.java @@ -0,0 +1,29 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.pipeline.dispatch.pojo.AgentStartMonitor; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author by mianbin + * @Classname ServiceDispatchJobResource + * @Description TODO + * @Date 2025/4/8 17:36 + */ +@Tag(name = "SERVICE_AGENT", description = "服务-Agent") +@RestController +@RequestMapping("/service/dispatch/jobs") +public interface ServiceDispatchJobResource { + + @Operation(summary = "监控") + @PostMapping("/monitor") + void monitor( + @Parameter(description = "agent 事件", required = true) + AgentStartMonitor agentStartMonitor + ); +} + diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceJobQuotaBusinessResource.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceJobQuotaBusinessResource.java new file mode 100644 index 0000000..8d5dfbd --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/api/ServiceJobQuotaBusinessResource.java @@ -0,0 +1,57 @@ +package cd.casic.pipeline.dispatch.api; + +import cd.casic.pipeline.dispatch.pojo.enums.JobQuotaVmType; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.websocket.server.PathParam; +import kotlin.Result; +import org.springframework.web.bind.annotation.*; + +/** + * @author by mianbin + * @Classname ServiceJobQuotaBusinessResource + * @Description TODO + * @Date 2025/4/8 17:37 + */ +@Tag(name = "BUILD_JOBS_PROJECT_QUOTA", description = "Job配额管理") +@RestController +@RequestMapping("/service/quotas/running") +public interface ServiceJobQuotaBusinessResource { + + @Operation(summary = "上报一个JOB启动") + @PostMapping("/job/projects/{projectId}/vmTypes/{vmType}/builds/{buildId}/vmSeqs/{vmSeqId}") + Result checkAndAddRunningJob( + @Parameter(description = "projectId", required = true) + @PathVariable("projectId") String projectId, + @Parameter(description = "vmType", required = true) + @PathVariable("vmType") JobQuotaVmType vmType, + @Parameter(description = "buildId", required = true) + @PathVariable("buildId") String buildId, + @Parameter(description = "vmSeqId", required = true) + @PathVariable("vmSeqId") String vmSeqId, + @Parameter(description = "executeCount", required = true) + @RequestParam("executeCount") Integer executeCount, + @Parameter(description = "containerId", required = true) + @RequestParam("containerId") String containerId, + @Parameter(description = "containerHashId", required = false) + @RequestParam("containerHashId") String containerHashId, + @Parameter(description = "channelCode", required = false) + @RequestParam("channelCode") String channelCode + ); + + @Operation(summary = "上报一个JOB结束") + @DeleteMapping("/job/projects/{projectId}/pipelines/{pipelineId}/builds/{buildId}/vmSeqs/{vmSeqId}") + Result removeRunningJob( + @Parameter(description = "projectId", required = true) + @PathVariable("projectId") String projectId, + @Parameter(description = "pipelineId", required = true) + @PathVariable("pipelineId") String pipelineId, + @Parameter(description = "buildId", required = true) + @PathParam("buildId") String buildId, + @Parameter(description = "vmSeqId", required = false) + @PathVariable("vmSeqId") String vmSeqId, + @Parameter(description = "executeCount", required = true) + @RequestParam("executeCount") Integer executeCount + ); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/constants/Constants.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/constants/Constants.java new file mode 100644 index 0000000..c50e9f6 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/constants/Constants.java @@ -0,0 +1,60 @@ +package cd.casic.pipeline.dispatch.constants; + +/** + * @author by mianbin + * @Classname Constants + * @Description TODO + * @Date 2025/4/8 16:46 + */ +public class Constants { + + public static final String QUEUE_BUILD = "queue_build"; + public static final String QUEUE_BUILD_NEED_END = "queue_build_need_end"; + public static final String EXCHANGE_BUILD = "exchange_build"; + public static final String ROUTE_BUILD = "build"; + public static final String ROUTE_BUILD_NEED_END = "build_need_end"; + public static final String EXCHANGE_BUILD_ABORT = "exchange_build_abort"; + public static final String ROUTE_BUILD_ABORT = "route_build_abort"; + public static final String QUEUE_BUILD_ABORT = "queue_build_abort"; + public static final String QUEUE_TASK_BEGIN = "queue_dispatch_vm_task_begin"; + public static final String QUEUE_TASK_END = "queue_dispatch_vm_task_end"; + public static final String QUEUE_TASK_NEDD_END = "queue_dispatch_vm_task_need_end"; + public static final String EXCHANGE_TASK = "exchange_vm_task"; + public static final String ROUTE_TASK_BEGIN = "dispatch_vm_task_begin"; + public static final String ROUTE_TASK_END = "dispatch_vm_task_end"; + public static final String ROUTE_TASK_NEDD_END = "dispatch_vm_task_need_end"; + public static final String ENV_PUBLIC_HOST_MAX_ATOM_FILE_CACHE_SIZE = "PUBLIC_HOST_MAX_ATOM_FILE_CACHE_SIZE"; + public static final String ENV_THIRD_HOST_MAX_ATOM_FILE_CACHE_SIZE = "THIRD_HOST_MAX_ATOM_FILE_CACHE_SIZE"; + // |Docker构建|最大并行构建量(maximum parallelism)/当前正在运行构建数量(Running): + public static final String OPS_DOCKER_BUILD_VOLUME = "OpsDockerBuildVolume"; + // |最大并行构建量(maximum parallelism)/当前正在运行构建数量(Running): + public static final String OPS_MAXIMUM_PARALLELISM = "OpsMaximumParallelism"; + public static final String OPS_UNLIMITED = "OpsUnlimited"; // 无限制(unlimited), 注意负载(Attention) + public static final String OPS_HEARTBEAT_TIME = "opsHeartbeatTime"; // 构建机最近心跳时间(heartbeat Time) + public static final String OPS_DOCKER_WAS_RECENTLY_BUILT = "opsDockerWasRecentlyBuilt"; // |Docker构建|最近{0}次运行中的构建: + public static final String OPS_WAS_RECENTLY_BUILT = "opsWasRecentlyBuilt"; // |最近{0}次运行中的构建: + public static final String OPS_TASK_FETCHING_TIMEOUT = "opsTaskFetchingTimeout"; // 任务领取超过{0} 分钟没有启动, 可能存在异常,开始重置 + public static final String OPS_SCHEDULING_SELECTED_AGENT = "opsSchedulingSelectedAgent"; // 调度构建机(Scheduling selected Agent): {0}/{1} + public static final String OPS_SEARCHING_AGENT = "opsSearchingAgent"; // 开始查找最近使用过并且当前没有任何任务的空闲构建机... + public static final String OPS_MAX_BUILD_SEARCHING_AGENT = "opsMaxBuildSearchingAgent"; // 查找最近使用过并且未达到最大构建数的构建机... + public static final String OPS_SEARCHING_AGENT_MOST_IDLE = "opsSearchingAgentMostIdle"; // 开始查找没有任何任务的空闲构建机... + public static final String OPS_SEARCHING_AGENT_PARALLEL_AVAILABLE = "opsSearchingAgentParallelAvailable"; // 开始查找当前构建任务还没到达最大并行数构建机... + public static final String OPS_NO_AGENT_AVAILABLE = "opsNoAgentAvailable"; // 没有可用Agent,等待Agent释放... + public static final String OPS_ENV_BUSY = "opsEnvBusy"; // 构建环境并发保护,稍后重试... + public static final String OPS_QUEUE_TIMEOUT_MINUTES = "opsQueueTimeoutMinutes"; // 构建环境无可分配构建机,等待超时(queue-timeout-minutes={0}) + public static final String OPS_AGENT_IS_BUSY = "opsAgentIsBusy"; // 构建机繁忙,继续重试(Agent is busy) + public static final String OPS_BUILD_AGENT_DETAIL_LINK_ERROR = "opsBuildAgentDetailLinkError"; // 构建机Agent详情链接 + public static final String OPS_ENV_WORKER_ERROR_IGNORE = "opsEnvWorkerErrorIgnore"; // 构建机环境中{0}节点启动构建进程失败,自动切换其他节点重试 + public static final String AGENT_REUSE_MUTEX_REDISPATCH = "agentReuseMuteXRedispatch"; // 构建机复用互斥,节点 {0} 已被 {1} 构建使用,重新调度 + // 构建机复用互斥,等待被依赖的节点 {0} 调度到具体节点后再进行复用调度 + public static final String AGENT_REUSE_MUTEX_WAIT_REUSED_ENV = "agentReuseMuteXWaitReusedEnv"; + public static final String OPS_ENV_NODE_DISABLE = "opsEnvNodeDisable"; + public static final String OPS_THIRD_JOB_ENV_CURR = "opsThirdJobEnvCurr"; // 当前环境下所有构建机并发{0}已经超过配置的{1},排队{2}分钟 + public static final String OPS_THIRD_JOB_NODE_CURR = "opsThirdJobNodeCurr"; // 当前环境下所有节点运行任务都超过了配置的{0},排队{1}分钟 + // 构建机复用互斥,节点 {0} 已被 {1} 构建使用,剩余可调度空间不足,重新调度 + public static final String AGENT_REUSE_MUTEX_RESERVE_REDISPATCH = "agentReuseMutexReserveRedispatch"; + // 构建环境调度结束,已选取节点 {0} + public static final String OPS_ENV_DISPATCH_AGENT = "opsEnvDispatchAgent"; + // 尝试下发任务至节点 {0} + public static final String TRY_AGENT_DISPATCH = "tryAgentDispatch"; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/AgentStartMonitor.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/AgentStartMonitor.java new file mode 100644 index 0000000..90c43f9 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/AgentStartMonitor.java @@ -0,0 +1,25 @@ +package cd.casic.pipeline.dispatch.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname AgentStartMonitor + * @Description TODO + * @Date 2025/4/8 16:36 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AgentStartMonitor { + private String projectId; + private String pipelineId; + private String userId; + private String buildId; + private String vmSeqId; + private String containerHashId; + private Integer executeCount; + private String stepId; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/BuildAbortMessage.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/BuildAbortMessage.java new file mode 100644 index 0000000..acdce31 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/BuildAbortMessage.java @@ -0,0 +1,25 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname BuildAbortMessage + * @Description TODO + * @Date 2025/4/8 16:36 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "停止构建信息") +public class BuildAbortMessage { + @Schema(title = "构建ID", required = true) + private String buildId; + @Schema(title = "用户ID", required = true) + private String userId; + @Schema(title = "虚拟Hash ID", required = true) + private String vmHashId; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/BuildNeedEndMessage.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/BuildNeedEndMessage.java new file mode 100644 index 0000000..169dede --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/BuildNeedEndMessage.java @@ -0,0 +1,23 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname BuildNeedEndMessage + * @Description TODO + * @Date 2025/4/8 16:37 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "构建结束信息") +public class BuildNeedEndMessage { + @Schema(title = "构建ID", required = true) + private String buildId; + @Schema(title = "构建开始时间", required = true) + private long startTime; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaProject.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaProject.java new file mode 100644 index 0000000..213db4c --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaProject.java @@ -0,0 +1,39 @@ +package cd.casic.pipeline.dispatch.pojo; + +import cd.casic.ci.common.pipeline.enums.ChannelCode; +import cd.casic.pipeline.dispatch.pojo.enums.JobQuotaVmType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname JobQuotaProject + * @Description TODO + * @Date 2025/4/8 16:38 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "项目的JOB配额") +public class JobQuotaProject { + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "构建机类型", required = true) + private JobQuotaVmType vmType; + @Schema(title = "构建来源,默认BS", required = true) + private String channelCode = ChannelCode.BS.name(); + @Schema(title = "项目最大并发JOB数, 默认50", required = false) + private int runningJobMax; + @Schema(title = "项目单JOB最大执行时间,默认8小时", required = false) + private int runningTimeJobMax; + @Schema(title = "项目所有JOB最大执行时间,默认40小时/月", required = false) + private int runningTimeProjectMax; + @Schema(title = "创建时间", required = false) + private Long createdTime; + @Schema(title = "修改时间", required = false) + private Long updatedTime; + @Schema(title = "操作人", required = false) + private String operator; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaStatus.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaStatus.java new file mode 100644 index 0000000..ae14303 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaStatus.java @@ -0,0 +1,31 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname JobQuotaStatus + * @Description TODO + * @Date 2025/4/8 16:38 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "项目的JOB状态") +public class JobQuotaStatus { + @Schema(title = "项目JOB数量配额", required = true) + private int jobQuota; + @Schema(title = "已运行JOB数量", required = true) + private int runningJobCount; + @Schema(title = "JOB告警阈值,百分比0-100", required = true) + private int jobThreshold; + @Schema(title = "项目job时间配额,单位:小时", required = true) + private long timeQuota; + @Schema(title = "当月已运行JOB时间, 单位:毫秒", required = true) + private long runningJobTime; + @Schema(title = "时间告警阈值,百分比0-100", required = true) + private int timeThreshold; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaSystem.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaSystem.java new file mode 100644 index 0000000..05d83a6 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobQuotaSystem.java @@ -0,0 +1,45 @@ +package cd.casic.pipeline.dispatch.pojo; + +import cd.casic.ci.common.pipeline.enums.ChannelCode; +import cd.casic.pipeline.dispatch.pojo.enums.JobQuotaVmType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname JobQuotaSystem + * @Description TODO + * @Date 2025/4/8 16:38 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "系统默认JOB配额") +public class JobQuotaSystem { + @Schema(title = "构建机类型", required = true) + private JobQuotaVmType vmType; + @Schema(title = "构建来源,默认BS", required = true) + private String channelCode = ChannelCode.BS.name(); + @Schema(title = "蓝盾系统最大并发JOB数,默认5000", required = false) + private int runningJobMaxSystem; + @Schema(title = "单项目默认最大并发JOB数, 默认500", required = false) + private int runningJobMaxProject; + @Schema(title = "系统默认所有单个JOB最大执行时间,默认24小时", required = false) + private int runningTimeJobMax; + @Schema(title = "默认单项目所有JOB最大执行时间,默认5000小时/月", required = false) + private int runningTimeJobMaxProject; + @Schema(title = "项目执行job数量告警阈值,百分比,默认80", required = false) + private int projectRunningJobThreshold; + @Schema(title = "项目执行job时间告警阈值,百分比,默认80", required = false) + private int projectRunningTimeThreshold; + @Schema(title = "系统执行job数量告警阈值,百分比,默认80", required = false) + private int systemRunningJobThreshold; + @Schema(title = "创建时间", required = false) + private String createdTime; + @Schema(title = "修改时间", required = false) + private String updatedTime; + @Schema(title = "操作人", required = false) + private String operator; +} \ No newline at end of file diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobRunningCountProject.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobRunningCountProject.java new file mode 100644 index 0000000..8e1a867 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobRunningCountProject.java @@ -0,0 +1,30 @@ +package cd.casic.pipeline.dispatch.pojo; + +import cd.casic.pipeline.dispatch.pojo.enums.JobQuotaVmType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname JobRunningCountProject + * @Description TODO + * @Date 2025/4/8 16:39 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "项目的JOB运行数量") +public class JobRunningCountProject { + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "构建机类型", required = true) + private JobQuotaVmType vmType; + @Schema(title = "项目当前并发JOB数", required = true) + private Integer runningJobs; + @Schema(title = "项目当前所有JOB当月已经执行时间,小时", required = true) + private Integer runningTimeProject; + @Schema(title = "工蜂CI当前并发JOB数量", required = true) + private Integer runningJobsGitCi; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobRunningCountSystem.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobRunningCountSystem.java new file mode 100644 index 0000000..dc63cef --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/JobRunningCountSystem.java @@ -0,0 +1,26 @@ +package cd.casic.pipeline.dispatch.pojo; + +import cd.casic.pipeline.dispatch.pojo.enums.JobQuotaVmType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname JobRunningCountSystem + * @Description TODO + * @Date 2025/4/8 16:39 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "系统的JOB运行数量") +public class JobRunningCountSystem { + @Schema(title = "构建机类型", required = true) + private JobQuotaVmType vmType; + @Schema(title = "系统当前并发JOB数", required = true) + private Integer runningJob; + @Schema(title = "工蜂CI当前并发JOB数量", required = true) + private Integer runningJobMaxGitCiSystem; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/Machine.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/Machine.java new file mode 100644 index 0000000..fc36966 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/Machine.java @@ -0,0 +1,37 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname Machine + * @Description TODO + * @Date 2025/4/8 16:39 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "虚拟机主机信息") +public class Machine { + @Schema(title = "主机 ID", required = true) + private int id; + @Schema(title = "主机 IP", required = true) + private String ip; + @Schema(title = "主机名", required = true) + private String name; + @Schema(title = "主机用户名", required = true) + private String username; + @Schema(title = "主机密码", required = true) + private String password; + @Schema(title = "当前运行数", required = true) + private int currentRunNum; + @Schema(title = "最大运行数", required = true) + private int maxVMRun; + @Schema(title = "创建时间", required = true) + private long createdTime; + @Schema(title = "修改时间", required = true) + private long updatedTime; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/MachineCreate.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/MachineCreate.java new file mode 100644 index 0000000..42b4540 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/MachineCreate.java @@ -0,0 +1,31 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname MachineCreate + * @Description TODO + * @Date 2025/4/8 16:39 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "虚拟机主机-创建信息") +public class MachineCreate { + @Schema(title = "主机 ID", required = true) + private int id; + @Schema(title = "主机 IP", required = true) + private String ip; + @Schema(title = "主机名", required = true) + private String name; + @Schema(title = "主机用户名", required = true) + private String username; + @Schema(title = "主机密码", required = true) + private String password; + @Schema(title = "最多允许允许的虚拟机台数", required = true) + private int maxVMRun; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/PipelineBuild.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/PipelineBuild.java new file mode 100644 index 0000000..95415a3 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/PipelineBuild.java @@ -0,0 +1,24 @@ +package cd.casic.pipeline.dispatch.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineBuild + * @Description TODO + * @Date 2025/4/8 16:40 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PipelineBuild { + private String projectId; + private String pipelineId; + private String buildId; + private String vmBuildId; + private Long vmId; + private Long createTime; + private Integer status; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/PipelineBuildCreate.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/PipelineBuildCreate.java new file mode 100644 index 0000000..1d9361f --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/PipelineBuildCreate.java @@ -0,0 +1,22 @@ +package cd.casic.pipeline.dispatch.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname PipelineBuildCreate + * @Description TODO + * @Date 2025/4/8 16:40 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PipelineBuildCreate { + private String projectId; + private String pipelineId; + private String buildId; + private String vmSeqId; + private Long vmId; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/RunningJobVO.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/RunningJobVO.java new file mode 100644 index 0000000..c091388 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/RunningJobVO.java @@ -0,0 +1,36 @@ +package cd.casic.pipeline.dispatch.pojo; + +import cd.casic.pipeline.dispatch.pojo.enums.JobQuotaVmType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname RunningJobVO + * @Description TODO + * @Date 2025/4/8 16:40 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "项目的JOB配额") +public class RunningJobVO { + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "构建机类型", required = true) + private JobQuotaVmType vmType; + @Schema(title = "项目最大并发JOB数, 默认50", required = false) + private Integer runningJobMax; + @Schema(title = "项目单JOB最大执行时间,默认8小时", required = false) + private Integer runningTimeJobMax; + @Schema(title = "项目所有JOB最大执行时间,默认40小时/月", required = false) + private Integer runningTimeProjectMax; + @Schema(title = "创建时间", required = false) + private Long createdTime; + @Schema(title = "修改时间", required = false) + private Long updatedTime; + @Schema(title = "操作人", required = false) + private String operator; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/Task.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/Task.java new file mode 100644 index 0000000..bfc568f --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/Task.java @@ -0,0 +1,31 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname Task + * @Description TODO + * @Date 2025/4/8 16:41 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "虚拟机主机任务信息") +public class Task { + @Schema(title = "主机任务 ID", required = true) + private Integer id; + @Schema(title = "主机任务名字", required = true) + private String name; + @Schema(title = "主机任务 脚本", required = true) + private String script; + @Schema(title = "主机任务 开始时间", required = true) + private Long beginTime; + @Schema(title = "主机任务 结束时间", required = true) + private Long endTime; + @Schema(title = "主机任务 状态", required = true) + private Byte status; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskCreate.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskCreate.java new file mode 100644 index 0000000..79a559f --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskCreate.java @@ -0,0 +1,29 @@ +package cd.casic.pipeline.dispatch.pojo; + +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 TaskCreate + * @Description TODO + * @Date 2025/4/8 16:41 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "虚拟机主机-创建任务") +public class TaskCreate { + @Schema(title = "用户id", required = true) + private String userid; + @Schema(title = "任务名", required = true) + private String name; + @Schema(title = "任务脚本", required = false) + private String script; + @Schema(title = "机器列表", required = true) + private List vmList; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskDetail.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskDetail.java new file mode 100644 index 0000000..b77fb29 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskDetail.java @@ -0,0 +1,31 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname TaskDetail + * @Description TODO + * @Date 2025/4/8 16:41 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "虚拟机主机-任务详情") +public class TaskDetail { + @Schema(title = "任务详情ID", required = true) + private Integer id; + @Schema(title = "任务详情对应的任务ID", required = true) + private Integer taskId; + @Schema(title = "任务详情对应的虚拟主机ID", required = true) + private Integer vmId; + @Schema(title = "任务详情对应的虚拟主机名字", required = true) + private String vmName; + @Schema(title = "任务详情内容", required = true) + private String message; + @Schema(title = "任务详情开始时间", required = true) + private Long time; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskMessage.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskMessage.java new file mode 100644 index 0000000..2bc7678 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/TaskMessage.java @@ -0,0 +1,32 @@ +package cd.casic.pipeline.dispatch.pojo; + +import cd.casic.pipeline.dispatch.pojo.enums.TaskPhase; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname TaskMessage + * @Description TODO + * @Date 2025/4/8 16:41 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "TASK信息") +public class TaskMessage { + @Schema(title = "TASK ID", required = true) + private Integer taskId; + @Schema(title = "TASK VM ID", required = true) + private Integer vmId; + @Schema(title = "TASK 执行的脚本", required = true) + private String script; + @Schema(title = "TASK 执行完信息", required = true) + private String message; + @Schema(title = "TASK 执行的脚本结果", required = true) + private TaskPhase status; + @Schema(title = "TASK 执行的脚本结果", required = true) + private Integer retryCount; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VM.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VM.java new file mode 100644 index 0000000..032e33d --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VM.java @@ -0,0 +1,51 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname VM + * @Description TODO + * @Date 2025/4/8 16:13 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "VM-基本信息") +public class VM { + @Schema(title = "VM ID", required = true) + private Long id; + @Schema(title = "VM 对应母机ID", required = true) + private Integer machineId; + @Schema(title = "VM 类型ID", required = true) + private Integer typeId; + @Schema(title = "VM IP地址", required = true) + private String ip; + @Schema(title = "VM 名称", required = true) + private String name; + @Schema(title = "VM 系统信息", required = true) + private String os; + @Schema(title = "VM 系统信息版本", required = true) + private String osVersion; + @Schema(title = "VM CPU信息", required = true) + private String cpu; + @Schema(title = "VM 内存信息", required = true) + private String memory; + @Schema(title = "VM 是否在维护状态", required = true) + private Boolean inMaintain; + @Schema(title = "VM 管理员用户名", required = true) + private String vmManagerUsername; + @Schema(title = "VM 管理员密码", required = true) + private String vmManagerPassword; + @Schema(title = "VM 非管理员用户名", required = true) + private String vmUsername; + @Schema(title = "VM 非管理员密码", required = true) + private String vmPassword; + @Schema(title = "创建时间", required = true) + private Long createdTime; + @Schema(title = "修改时间", required = true) + private Long updatedTime; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMCreate.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMCreate.java new file mode 100644 index 0000000..3580997 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMCreate.java @@ -0,0 +1,47 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname VMCreate + * @Description TODO + * @Date 2025/4/8 16:42 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "VM-创建-基本信息") +public class VMCreate { + @Schema(title = "VM ID", required = true) + private Long id; + @Schema(title = "VM 对应母机ID", required = true) + private Integer machineId; + @Schema(title = "VM 类型ID", required = true) + private Integer typeId; + @Schema(title = "VM IP地址", required = true) + private String ip; + @Schema(title = "VM 名称", required = true) + private String name; + @Schema(title = "VM 系统信息", required = true) + private String os; + @Schema(title = "VM 系统版本", required = true) + private String osVersion; + @Schema(title = "VM CPU信息", required = true) + private String cpu; + @Schema(title = "VM 内存信息", required = true) + private String memory; + @Schema(title = "VM 是否在维护状态", required = true) + private Boolean inMaintain; + @Schema(title = "VM 管理员用户名", required = true) + private String vmManagerUsername; + @Schema(title = "VM 管理员密码", required = true) + private String vmManagerPassword; + @Schema(title = "VM 非管理员用户名", required = true) + private String vmUsername; + @Schema(title = "VM 非管理员密码", required = true) + private String vmPassword; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMResponse.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMResponse.java new file mode 100644 index 0000000..9229974 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMResponse.java @@ -0,0 +1,55 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname VMResponse + * @Description TODO + * @Date 2025/4/8 16:42 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "VM-基本信息") +public class VMResponse { + @Schema(title = "VM ID", required = true) + private Integer id; + @Schema(title = "VM 对应母机ID", required = true) + private Integer machineId; + @Schema(title = "VM 对应母机名称", required = true) + private String machineName; + @Schema(title = "VM 类型ID", required = true) + private Integer typeId; + @Schema(title = "VM 类型名称", required = true) + private String typeName; + @Schema(title = "VM IP地址", required = true) + private String ip; + @Schema(title = "VM 名称", required = true) + private String name; + @Schema(title = "VM 系统信息", required = true) + private String os; + @Schema(title = "VM 系统信息版本", required = true) + private String osVersion; + @Schema(title = "VM CPU信息", required = true) + private String cpu; + @Schema(title = "VM 内存信息", required = true) + private String memory; + @Schema(title = "VM 是否在维护状态", required = true) + private Boolean inMaintain; + @Schema(title = "VM 管理员用户名", required = true) + private String vmManagerUsername; + @Schema(title = "VM 管理员密码", required = true) + private String vmManagerPassword; + @Schema(title = "VM 非管理员用户名", required = true) + private String vmUsername; + @Schema(title = "VM 非管理员密码", required = true) + private String vmPassword; + @Schema(title = "创建时间", required = true) + private Long createdTime; + @Schema(title = "修改时间", required = true) + private Long updatedTime; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMTaskResult.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMTaskResult.java new file mode 100644 index 0000000..c72f64a --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMTaskResult.java @@ -0,0 +1,25 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname VMTaskResult + * @Description TODO + * @Date 2025/4/8 16:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "虚拟机主机-任务结束后置处理") +public class VMTaskResult { + @Schema(title = "task id", required = true) + private Integer taskId; + @Schema(title = "脚本执行信息", required = true) + private String message; + @Schema(title = "脚本执行结果", required = true) + private Boolean success; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMType.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMType.java new file mode 100644 index 0000000..5257749 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMType.java @@ -0,0 +1,27 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname VMType + * @Description TODO + * @Date 2025/4/8 16:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "虚拟机类型") +public class VMType { + @Schema(title = "类型ID", required = true) + private Integer id; + @Schema(title = "类型名称", required = true) + private String typeName; + @Schema(title = "创建时间", required = true) + private Long createdTime; + @Schema(title = "修改时间", required = true) + private Long updatedTime; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMTypeCreate.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMTypeCreate.java new file mode 100644 index 0000000..62364cb --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMTypeCreate.java @@ -0,0 +1,21 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname VMTypeCreate + * @Description TODO + * @Date 2025/4/8 16:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "虚拟机创建类型") +public class VMTypeCreate { + @Schema(title = "类型名称", required = true) + private String typeName; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMWithPage.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMWithPage.java new file mode 100644 index 0000000..f97999d --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMWithPage.java @@ -0,0 +1,25 @@ +package cd.casic.pipeline.dispatch.pojo; + +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 VMWithPage + * @Description TODO + * @Date 2025/4/8 16:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "VM-分页-基本信息") +public class VMWithPage { + @Schema(title = "VM总数", required = true) + private Integer total; + @Schema(title = "VM列表", required = true) + private List vms; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMWithPrivateProject.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMWithPrivateProject.java new file mode 100644 index 0000000..3a183c0 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/VMWithPrivateProject.java @@ -0,0 +1,31 @@ +package cd.casic.pipeline.dispatch.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname VMWithPrivateProject + * @Description TODO + * @Date 2025/4/8 16:44 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(title = "VM-专机信息") +public class VMWithPrivateProject { + @Schema(title = "VM ID", required = true) + private long id; + @Schema(title = "VM 对应母机ID", required = true) + private int machineId; + @Schema(title = "VM 类型ID", required = true) + private int typeId; + @Schema(title = "VM IP地址", required = true) + private String ip; + @Schema(title = "VM 名称", required = true) + private String name; + @Schema(title = "工程ID", required = true) + private String projectId; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/JobQuotaVmType.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/JobQuotaVmType.java new file mode 100644 index 0000000..90b5f0c --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/JobQuotaVmType.java @@ -0,0 +1,48 @@ +package cd.casic.pipeline.dispatch.pojo.enums; + +import cd.casic.ci.common.pipeline.type.DispatchType; +import cd.casic.ci.common.pipeline.type.docker.DockerDispatchType; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author by mianbin + * @Classname JobQuotaVmType + * @Description TODO + * @Date 2025/4/8 16:14 + */ +@Getter +@AllArgsConstructor +public enum JobQuotaVmType { + DOCKER_VM("Docker on VM"), + KUBERNETES("kubernetes"), + DOCKER_DEVCLOUD("Docker on DevCloud"), + MACOS_DEVCLOUD("MacOS on DevCloud"), + WINDOWS_DEVCLOUD("Windows on DevCloud"), + OTHER("私有构建机或集群"), + BUILD_LESS("无编译环境"), + DOCKER_GITCI("工蜂CI构建机"), + DOCKER_STREAM("STREAM构建机"), + DOCKER_BCS("Docker on Bcs"), + DOCKER_PCG("PCG公共构建资源"), + ALL("所有类型"); + + private final String displayName; + + public static JobQuotaVmType parse(String vmType) { + for (JobQuotaVmType jobQuotaVmType : values()) { + if (jobQuotaVmType.name().equals(vmType)) { + return jobQuotaVmType; + } + } + return null; + } + + public static JobQuotaVmType parse(DispatchType dispatchType) { + if (dispatchType instanceof DockerDispatchType) { + return DOCKER_VM; + } + // 其他类型暂时不限制 + return null; + } +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/PipelineTaskStatus.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/PipelineTaskStatus.java new file mode 100644 index 0000000..3245867 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/PipelineTaskStatus.java @@ -0,0 +1,39 @@ +package cd.casic.pipeline.dispatch.pojo.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author by mianbin + * @Classname PipelineTaskStatus + * @Description TODO + * @Date 2025/4/8 16:15 + */ +@Getter +@AllArgsConstructor +public enum PipelineTaskStatus { + QUEUE(1), + RUNNING(2), + DONE(3), + FAILURE(4); + + private final int status; + + public static PipelineTaskStatus toStatus(int status) { + for (PipelineTaskStatus taskStatus : values()) { + if (taskStatus.getStatus() == status) { + return taskStatus; + } + } + throw new RuntimeException("Can't find the pipeline task status(" + status + ")"); + } + + public static PipelineTaskStatus parse(String input) { + for (PipelineTaskStatus taskStatus : values()) { + if (taskStatus.name().equals(input)) { + return taskStatus; + } + } + return DONE; + } +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/TaskPhase.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/TaskPhase.java new file mode 100644 index 0000000..c55b32c --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/enums/TaskPhase.java @@ -0,0 +1,40 @@ +package cd.casic.pipeline.dispatch.pojo.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.ToString; + +/** + * @author by mianbin + * @Classname TaskPhase + * @Description TODO + * @Date 2025/4/8 16:16 + */ +@Getter +@ToString +@AllArgsConstructor +public enum TaskPhase { + READY((byte) 0), + QUEUE((byte) 1), + RUNNING((byte) 3), + SUCCESS((byte) 101), + FAIL((byte) 102), + ABORT((byte) 104), + QUEUE_TIMEOUT((byte) 105), // 排队超时 + TASK_TIMEOUT((byte) 106); // 构建超时 + + private final byte value; + + public static TaskPhase fromShort(byte value) { + for (TaskPhase taskPhase : values()) { + if (taskPhase.getValue() == value) { + return taskPhase; + } + } + return null; + } + + public static boolean isFinish(byte value) { + return value >= SUCCESS.getValue(); + } +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/reids/RedisBuild.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/reids/RedisBuild.java new file mode 100644 index 0000000..b35ba91 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/reids/RedisBuild.java @@ -0,0 +1,51 @@ +package cd.casic.pipeline.dispatch.pojo.reids; + +import cd.casic.ci.common.pipeline.pojo.Zone; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname RedisBuild + * @Date 2025/4/8 16:17 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(description = "RedisBuild 对象,用于存储构建信息") +public class RedisBuild { + + @JsonProperty("vmName") + @Schema(description = "虚拟机名称", required = true) + private String vmName; + @JsonProperty("projectId") + @Schema(description = "项目ID", required = true) + private String projectId; + @JsonProperty("pipelineId") + @Schema(description = "流水线ID", required = true) + private String pipelineId; + @JsonProperty("buildId") + @Schema(description = "构建ID", required = true) + private String buildId; + @JsonProperty("vmSeqId") + @Schema(description = "虚拟机序列ID", required = true) + private String vmSeqId; + @JsonProperty("channelCode") + @Schema(description = "通道代码") + private String channelCode; + @JsonProperty("zone") + @Schema(description = "区域信息") + private Zone zone; + @JsonProperty("atoms") + @Schema(description = "用插件框架开发的插件信息,key为插件code,value为下载路径", defaultValue = "{}") + private Map atoms = Map.of(); +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/AgentBuildInfo.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/AgentBuildInfo.java new file mode 100644 index 0000000..35c365b --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/AgentBuildInfo.java @@ -0,0 +1,43 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname AgentBuildInfo + * @Description TODO + * @Date 2025/4/8 16:18 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "构建机构建信息") +public class AgentBuildInfo { + @Schema(title = "项目id") + private String projectId; + @Schema(title = "构建机id") + private String agentId; + @Schema(title = "流水线id") + private String pipelineId; + @Schema(title = "流水线名称") + private String pipelineName; + @Schema(title = "构建id") + private String buildId; + @Schema(title = "构建计数") + private int buildNum; + @Schema(title = "构建机编排序号") + private String vmSeqId; + @Schema(title = "任务名") + private String taskName; + @Schema(title = "状态") + private String status; + @Schema(title = "创建时间") + private long createdTime; + @Schema(title = "更新时间") + private long updatedTime; + @Schema(title = "工作空间") + private String workspace; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/AskEnable.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/AskEnable.java new file mode 100644 index 0000000..002ba70 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/AskEnable.java @@ -0,0 +1,23 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname AskEnable + * @Description TODO + * @Date 2025/4/8 16:28 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +class AskEnable { + private String build; + private boolean upgrade; + private boolean dockerDebug; + private boolean pipeline; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/BuildJobType.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/BuildJobType.java new file mode 100644 index 0000000..9b000dc --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/BuildJobType.java @@ -0,0 +1,32 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +/** + * @author by mianbin + * @Classname BuildJobType + * @Description TODO + * @Date 2025/4/8 16:24 + */ +public enum BuildJobType { + ALL, + DOCKER, + BINARY, + NONE; + + public static BuildJobType toEnum(String type) { + if (type == null) { + return ALL; + } + switch (type) { + case "ALL": + return ALL; + case "DOCKER": + return DOCKER; + case "BINARY": + return BINARY; + case "NONE": + return NONE; + default: + return ALL; + } + } +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyAskInfo.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyAskInfo.java new file mode 100644 index 0000000..0455f5d --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyAskInfo.java @@ -0,0 +1,24 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import cd.casic.ci.common.pipeline.pojo.agent.NewHeartbeatInfo; +import cd.casic.ci.common.pipeline.pojo.agent.ThirdPartyAgentUpgradeByVersionInfo; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyAskInfo + * @Description TODO + * @Date 2025/4/8 16:24 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class ThirdPartyAskInfo { + private AskEnable askEnable; + private NewHeartbeatInfo heartbeat; + private ThirdPartyAgentUpgradeByVersionInfo upgrade; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyAskResp.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyAskResp.java new file mode 100644 index 0000000..657f006 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyAskResp.java @@ -0,0 +1,25 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import cd.casic.ci.common.pipeline.pojo.agent.UpgradeItem; +import cd.casic.pipeline.environment.pojo.thirdpartyagent.AskHeartbeatResponse; +import cd.casic.pipeline.environment.pojo.thirdpartyagent.ThirdPartyAgentPipeline; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyAskResp + * @Description TODO + * @Date 2025/4/8 16:28 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +class ThirdPartyAskResp { + private AskHeartbeatResponse heartbeat; + private ThirdPartyBuildInfo build; + private UpgradeItem upgrade; + private ThirdPartyAgentPipeline pipeline; + private ThirdPartyDockerDebugInfo debug; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildDockerInfo.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildDockerInfo.java new file mode 100644 index 0000000..f79f02b --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildDockerInfo.java @@ -0,0 +1,39 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + + +import cd.casic.ci.common.pipeline.pojo.agent.DockerOptions; +import cd.casic.ci.common.pipeline.pojo.agent.ThirdPartyAgentDockerInfoDispatch; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyBuildDockerInfo + * @Description TODO + * @Date 2025/4/8 16:27 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ThirdPartyBuildDockerInfo { + private String agentId; + private String secretKey; + private String image; + private ThirdPartyBuildDockerInfoCredential credential; + private DockerOptions options; + private String imagePullPolicy; + + public ThirdPartyBuildDockerInfo(ThirdPartyAgentDockerInfoDispatch input) { + this.agentId = input.getAgentId(); + this.secretKey = input.getSecretKey(); + this.image = input.getImage(); + this.credential = new ThirdPartyBuildDockerInfoCredential(input.getCredential()); + this.options = input.getOptions(); + this.imagePullPolicy = input.getImagePullPolicy(); + } +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildDockerInfoCredential.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildDockerInfoCredential.java new file mode 100644 index 0000000..b306804 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildDockerInfoCredential.java @@ -0,0 +1,30 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import cd.casic.ci.common.pipeline.pojo.agent.Credential; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyBuildDockerInfoCredential + * @Date 2025/4/8 16:33 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +class ThirdPartyBuildDockerInfoCredential { + private String user; + private String password; + private String errMsg; + + public ThirdPartyBuildDockerInfoCredential(Credential input) { + this.user = input != null ? input.getUser() : null; + this.password = input != null ? input.getPassword() : null; + this.errMsg = null; + } +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildInfo.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildInfo.java new file mode 100644 index 0000000..a8f0b89 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildInfo.java @@ -0,0 +1,35 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyBuildInfo + * @Description TODO + * @Date 2025/4/8 16:35 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "第三方构建信息") +public class ThirdPartyBuildInfo { + @Schema(title = "项目id") + private String projectId; + @Schema(title = "构建id") + private String buildId; + @Schema(title = "构建机编排序号") + private String vmSeqId; + @Schema(title = "工作空间") + private String workspace; + @Schema(title = "流水线ID") + private String pipelineId; + @Schema(title = "docker构建相关信息") + private ThirdPartyBuildDockerInfo dockerBuildInfo; + @Schema(title = "流水线执行次数") + private Integer executeCount; + @Schema(title = "容器hashId日志使用") + private String containerHashId; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildWithStatus.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildWithStatus.java new file mode 100644 index 0000000..3188bee --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyBuildWithStatus.java @@ -0,0 +1,37 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyBuildWithStatus + * @Description TODO + * @Date 2025/4/8 16:35 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "第三方构建信息模型") +public class ThirdPartyBuildWithStatus { + @Schema(title = "项目id") + private String projectId; + @Schema(title = "构建id") + private String buildId; + @Schema(title = "构建环境id") + private String vmSeqId; + @Schema(title = "工作空间") + private String workspace; + @Schema(title = "流水线id") + private String pipelineId; + @Schema(title = "是否成功") + private boolean success; + @Schema(title = "message信息") + private String message; + @Schema(title = "错误信息") + private Error error; + @Schema(title = "流水线执行次数") + private Integer executeCount; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyDockerDebugDoneInfo.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyDockerDebugDoneInfo.java new file mode 100644 index 0000000..7727af3 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyDockerDebugDoneInfo.java @@ -0,0 +1,31 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyDockerDebugDoneInfo + * @Description TODO + * @Date 2025/4/8 16:35 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "第三方构建Docker登录调试完成信息") +public class ThirdPartyDockerDebugDoneInfo { + @Schema(title = "项目id") + private String projectId; + @Schema(title = "debugId") + private Long debugId; + @Schema(title = "流水线id") + private String pipelineId; + @Schema(title = "debug链接") + private String debugUrl; + @Schema(title = "是否成功") + private boolean success; + @Schema(title = "错误信息") + private Error error; +} diff --git a/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyDockerDebugInfo.java b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyDockerDebugInfo.java new file mode 100644 index 0000000..ee8cba6 --- /dev/null +++ b/modules/module-ci-dispatch-api/src/main/java/cd/casic/pipeline/dispatch/pojo/thirdpartyagent/ThirdPartyDockerDebugInfo.java @@ -0,0 +1,37 @@ +package cd.casic.pipeline.dispatch.pojo.thirdpartyagent; + +import cd.casic.ci.common.pipeline.pojo.agent.DockerOptions; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author by mianbin + * @Classname ThirdPartyDockerDebugInfo + * @Description TODO + * @Date 2025/4/8 16:36 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(title = "第三方构建Docker登录调试信息") +public class ThirdPartyDockerDebugInfo { + @Schema(title = "项目id") + private String projectId; + @Schema(title = "构建id") + private String buildId; + @Schema(title = "构建机编排序号") + private String vmSeqId; + @Schema(title = "工作空间") + private String workspace; + @Schema(title = "流水线ID") + private String pipelineId; + @Schema(title = "调试用户") + private String debugUserId; + @Schema(title = "debugId") + private Long debugId; + private String image; + private ThirdPartyBuildDockerInfoCredential credential; + private DockerOptions options; +} diff --git a/modules/module-ci-environment/pom.xml b/modules/module-ci-environment/pom.xml index 6594c21..0cc2ec9 100644 --- a/modules/module-ci-environment/pom.xml +++ b/modules/module-ci-environment/pom.xml @@ -18,7 +18,7 @@ cd.casic.boot - module-ci-common + module-ci-process-api diff --git a/modules/module-ci-environment/src/main/java/cd/casic/ci/common/Main.java b/modules/module-ci-environment/src/main/java/cd/casic/ci/common/Main.java deleted file mode 100644 index 0119f4f..0000000 --- a/modules/module-ci-environment/src/main/java/cd/casic/ci/common/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package cd.casic.ci.common; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/constant/Constants.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/constant/Constants.java new file mode 100644 index 0000000..fc96178 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/constant/Constants.java @@ -0,0 +1,36 @@ +package cd.casic.pipeline.environment.constant; + +/** + * @author by mianbin + * @Classname Constants + * @Description TODO + * @Date 2025/4/8 19:56 + */ +public final class Constants { + public static final long THIRD_PARTY_AGENT_HEARTBEAT_INTERVAL = 5L; + public static final String DEFAULT_SYTEM_USER = "devops"; + public static final String BK_PROJECT_NO_ENVIRONMENT = "bkProjectNoEnvironment"; // 项目下无环境 + public static final String BK_PROJECT_NO_NODE = "bkProjectNoNode"; // 项目下无节点 + public static final String T_NODE_NODE_IP = "nodeIp"; + public static final String T_NODE_HOST_ID = "hostId"; + public static final String T_NODE_NODE_ID = "nodeId"; + public static final String T_NODE_NODE_TYPE = "nodeType"; + public static final String T_NODE_CLOUD_AREA_ID = "cloudAreaId"; + public static final String T_NODE_NODE_STATUS = "nodeStatus"; + public static final String T_NODE_AGENT_VERSION = "agentVersion"; + public static final String T_NODE_AGENT_STATUS = "agentStatus"; + public static final String T_NODE_PROJECT_ID = "projectId"; + public static final String T_NODE_CREATED_USER = "createdUser"; + public static final String T_NODE_OS_TYPE = "osType"; + public static final String T_NODE_OS_NAME = "osName"; + public static final String T_NODE_SERVER_ID = "serverId"; + public static final String T_NODE_OPERATOR = "operator"; + public static final String T_NODE_BAK_OPERATOR = "bakOperator"; + public static final String T_ENV_ENV_ID = "envId"; + public static final String T_ENVIRONMENT_THIRDPARTY_AGENT_NODE_ID = "nodeId"; + public static final String T_ENVIRONMENT_THIRDPARTY_AGENT_MASTER_VERSION = "masterVersion"; + public static final String BATCH_TOKEN_HEADER = "X-DEVOPS-AGENT-INSTALL-TOKEN"; // 批量安装agent token的header + + private Constants() { + } +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/constant/EnvironmentMessageCode.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/constant/EnvironmentMessageCode.java new file mode 100644 index 0000000..44b1e10 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/constant/EnvironmentMessageCode.java @@ -0,0 +1,83 @@ +package cd.casic.pipeline.environment.constant; + +/** + * @author by mianbin + * @Classname EnvironmentMessageCode + * @Description TODO + * @Date 2025/4/8 19:57 + */ +public final class EnvironmentMessageCode { + public static final String ERROR_ENV_NOT_EXISTS = "2105000"; // 环境管理:[{0}] 环境不存在 + public static final String ERROR_NODE_INSUFFICIENT_PERMISSIONS = "2105001"; // 环境管理:环境权限不足 [{0}] + public static final String ERROR_NODE_NOT_EXISTS = "2105002"; // 环境管理:[{0}] 节点不存在 + public static final String ERROR_NODE_NAME_DUPLICATE = "2105003"; // 环境管理:环境名称已存在: [{0}] + public static final String ERROR_ENV_BUILD_2_DEPLOY_DENY = "2105004"; // 环境管理:构建环境不能修改为部署环境 + public static final String ERROR_ENV_DEPLOY_2_BUILD_DENY = "2105005"; // 环境管理:部署环境不能修改为构建环境 + public static final String ERROR_ENV_NO_CREATE_PERMISSSION = "2105006"; // 环境管理:没有环境创建权限 + public static final String ERROR_ENV_NO_EDIT_PERMISSSION = "2105007"; // 环境管理:没有环境编辑权限 + public static final String ERROR_ENV_NO_VIEW_PERMISSSION = "2105008"; // 环境管理:没有环境查看权限 + public static final String ERROR_ENV_NO_DEL_PERMISSSION = "2105009"; // 环境管理:没有环境删除权限 + public static final String ERROR_ENV_ID_NULL = "2105010"; // 环境管理:环境ID不能为空 + public static final String ERROR_ENV_NAME_NULL = "2105011"; // 环境管理:环境名称不能为空 + public static final String ERROR_ENV_NAME_TOO_LONG = "2105012"; // 环境管理:环境名称太长 + public static final String ERROR_ENV_NODE_HASH_ID_ILLEGAL = "2105013"; // 环境管理:环境下的节点ID不合法 + public static final String ERROR_NODE_NO_CREATE_PERMISSSION = "2105014"; // 环境管理:没有节点创建权限 + public static final String ERROR_NODE_NO_EDIT_PERMISSSION = "2105015"; // 环境管理:没有节点编辑权限 + public static final String ERROR_NODE_NO_VIEW_PERMISSSION = "2105016"; // 环境管理:没有节点查看权限 + public static final String ERROR_NODE_NO_DEL_PERMISSSION = "2105017"; // 环境管理:没有节点删除权限 + public static final String ERROR_NODE_AGENT_STATUS_EXCEPTION = "2105018"; // 环境管理:构建机状态异常 + public static final String ERROR_NODE_AGENT_SECRET_KEY_INVALID = "2105019"; // 环境管理:构建机密钥不对 + public static final String ERROR_ENV_EXPIRED_DAYS = "2105020"; // 环境管理:有效期不能超过[{0}]天 + public static final String ERROR_ENV_BUILD_CAN_NOT_ADD_SVR = "2105021"; // 服务器节点[{0}]不能添加到构建环境 + public static final String ERROR_ENV_DEPLOY_CAN_NOT_ADD_AGENT = "2105022"; // 构建节点[{0}]不能添加到非构建环境 + public static final String ERROR_NODE_CHANGE_USER_NOT_SUPPORT = "2105023"; // 节点类型【{0}】不支持修改导入人 + public static final String ERROR_NODE_IMPORT_EXCEED = "2105024"; // 环境管理:导入节点数不能超过配额[{0}] + public static final String ERROR_NODE_IP_ILLEGAL_USER = "2105025"; // 环境管理:非法 IP [{0}], 请确认当前用户[{1}]是否是服务器的主备负责人 - 测试机导入|重新导入 + public static final String ERROR_QUOTA_LIMIT = "2105026"; // 环境管理:配额不足,总量{0}, 已使用: {1} + public static final String ERROR_VM_CAN_NOT_DESTROY = "2105027"; // 环境管理:虚拟机状态为:{0}, 不允许销毁!请稍后操作! + public static final String ERROR_VM_CAN_NOT_IMAGED = "2105028"; // 环境管理:虚拟机状态为:{0}, 无法制作镜像! + public static final String ERROR_NODE_HAD_BEEN_ASSIGN = "2105029"; // 环境管理:节点已被分配,不能重新分配 + public static final String ERROR_ENV_BCS_NOT_ACTIVED = "2105030"; // 环境管理:项目[{0}]没有开通过BCS虚拟机功能 + public static final String ERROR_NODE_INFLUX_QUERY_HOST_INFO_FAIL = "2105031"; // 环境管理:查询构建机主机信息失败: {0} + public static final String ERROR_NODE_INFLUX_QUERY_CPU_INFO_FAIL = "2105032"; // 环境管理:查询构建机CPU信息失败: {0} + public static final String ERROR_NODE_INFLUX_QUERY_MEM_INFO_FAIL = "2105033"; // 环境管理:查询构建机内存信息失败: {0} + public static final String ERROR_NODE_INFLUX_QUERY_DISK_INFO_FAIL = "2105034"; // 环境管理:查询构建机磁盘信息失败: {0} + public static final String ERROR_NODE_INFLUX_QUERY_NET_INFO_FAIL = "2105035"; // 环境管理:查询构建机网络信息失败: {0} + public static final String ERROR_NODE_SHARE_PROJECT_EMPTY = "2105036"; // 环境管理:共享的项目列表为空 + public static final String ERROR_NODE_SHARE_PROJECT_TYPE_ERROR = "2105037"; // 环境管理:仅构建环境支持共享 + public static final String ERROR_NODE_NAME_INVALID_CHARACTER = "2105038"; // 环境管理:环境名称包含非法字符@ + public static final String ERROR_NODE_NAME_OR_ID_INVALID = "2105039"; // 环境管理:获取节点失败,请求节点hash id或别名有误 + public static final String ERROR_NOT_THIRD_PARTY_BUILD_MACHINE = "2105040"; // 环境管理:这个节点不是第三方构建机 + public static final String THIRD_PARTY_BUILD_ENVIRONMENT_NOT_EXIST = "2105041"; // 第三方构建机环境不存在 + public static final String ERROR_NO_PERMISSION_TO_USE_THIRD_PARTY_BUILD_ENV = "2105042"; // 无权限使用第三方构建机环境 + public static final String ERROR_THIRD_PARTY_BUILD_ENV_NODE_NOT_EXIST = "2105043"; // 第三方构建机环境节点不存在 + public static final String ERROR_PIPE_NOT_FOUND = "2105044"; // 环境管理:不存在该管道信息 + public static final String ERROR_NODE_NO_USE_PERMISSSION = "2105045"; // 环境管理:节点[{0}]没有使用权限 + public static final String ERROR_NODE_IP_ILLEGAL = "2105046"; // 环境管理: 不在CMDB中的IP [{0}]; 无权限的IP [{1}], 请确认当前用户[{2}]或节点导入人[{3}]是否为这些节点的主备负责人 - 脚本执行|文件分发 + public static final String ERROR_CMDB_INTERFACE_TIME_OUT = "2105047"; // 环境管理: CMDB接口请求超时,请重试 + public static final String ERROR_CMDB_RESPONSE = "2105048"; // 环境管理: CMDB接口请求异常,请重试 + public static final String ERROR_SCRIPT_EXECUTE_HOST_EMPTY = "2105049"; // 环境管理: 脚本执行: 主机为空 + public static final String ERROR_DISTRIBUTE_FILE_EXECUTE_TARGET_HOST_EMPTY = "2105050"; // 环境管理: 文件分发: 执行目标主机为空 + public static final String ERROR_DISTRIBUTE_FILE_FILE_SOURCE_HOST_EMPTY = "2105051"; // 环境管理: 文件分发: 文件源主机为空 + public static final String ERROR_ENV_LIST_NODE_NOT_IN_CC_OR_CMDB = "2105052"; // 环境管理: 环境中的[{0}]不在CC/CMDB中 + public static final String ERROR_NODE_LIST_NODE_NOT_IN_CC_OR_CMDB = "2105053"; // 环境管理: 节点中的[{0}]不在CC/CMDB中 + public static final String ERROR_JOB_INSTANCE_NOT_BELONG_TO_PROJECT = "2105054"; // 环境管理: 请求的job实例不属于当前项目或已过期(超过一个月) + public static final String ERROR_FAIL_TO_CREATE_AGENT_INSTALL_TASK = "2105055"; // 环境管理: 创建Agent安装任务失败:{0} + public static final String ERROR_INPUT_TOO_MANY_IP = "2105056"; // 环境管理: 输入的IP数量不可超过{0} + public static final String ERROR_NODE_NOT_BELONG_TO_PROJECT = "2105057"; // 环境管理: IP {0} 未被作为节点导入项目 {1},请到【环境管理-节点】导入测试机后重试 + + public static final String BK_NORMAL_VERSION = "bkNormalVersion"; // 8核16G(普通版) + public static final String BK_INTEL_XEON_SKYLAKE_PROCESSOR = "bkIntelXeonSkylakeProcessor"; // 2.5GHz 64核 Intel Xeon Skylake 6133处理器 + public static final String BK_MEMORY = "bkMemory"; // 32GB*12 DDR3 内存 + public static final String BK_SOLID_STATE_DISK = "bkSolidStateDisk"; // {0}GB 固态硬盘 + public static final String BK_ESTIMATED_DELIVERY_TIME = "bkEstimatedDeliveryTime"; // 预计交付周期:{0}分钟 + public static final String BK_HIGH_END_VERSION = "bkHighEndVersion"; // 32核64G(高配版) + public static final String AGENT_VERSION = "agentVersion"; // Agent版本 + public static final String AGENT_STATUS = "agentStatus"; // Agent版本 + public static final String OS_TYPE = "osType"; // 操作系统 + public static final String NODE_USAGE_BUILD = "nodeUsageBuild"; // 构建 + public static final String NODE_USAGE_DEPLOYMENT = "nodeUsageDeployment"; // 部署 + + private EnvironmentMessageCode() { + } +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AddSharedProjectInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AddSharedProjectInfo.java new file mode 100644 index 0000000..655cdd2 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AddSharedProjectInfo.java @@ -0,0 +1,41 @@ +package cd.casic.pipeline.environment.pojo; + +import cd.casic.pipeline.environment.pojo.enums.SharedEnvType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author by mianbin + * @Classname AddSharedProjectInfo + * @Description TODO + * @Date 2025/4/8 19:58 + */ +@Getter +@AllArgsConstructor +@Schema(title = "VM虚拟机配额") +public class AddSharedProjectInfo { + @Deprecated + @Schema(title = "工蜂项目ID", required = false) + private final String gitProjectId; + + @Schema(title = "项目名称,工蜂项目则为groupName/projectName", required = true) + private final String name; + + @Schema(title = "类型,预留", required = true) + private final SharedEnvType type; + + @Schema(title = "项目ID", required = true) + private final String projectId; + + @SuppressWarnings("TooGenericExceptionThrown") + public String getFinalProjectId() { + if (projectId != null) { + return projectId; + } + if (gitProjectId != null) { + return gitProjectId; + } + throw new RuntimeException("Project id must not null."); + } +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentPipelineRefInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentPipelineRefInfo.java new file mode 100644 index 0000000..96c9ef0 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentPipelineRefInfo.java @@ -0,0 +1,23 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@Schema(title = "agent流水线引用信息") +public class AgentPipelineRefInfo { + @Schema(title = "agentHashId", required = true) + private final String agentHashId; + @Schema(title = "流水线ID", required = true) + private final String pipelineId; + @Schema(title = "流水线名称", required = true) + private final String pipelineName; + @Schema(title = "Vm Seq ID", required = true) + private final String vmSeqId; + @Schema(title = "Job ID", required = true) + private final String jobId; + @Schema(title = "Job Name", required = true) + private final String jobName; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentPipelineRefRequest.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentPipelineRefRequest.java new file mode 100644 index 0000000..e1239f1 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentPipelineRefRequest.java @@ -0,0 +1,21 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.List; + +@Getter +@AllArgsConstructor +@Schema(title = "agent流水线引用请求") +public class AgentPipelineRefRequest { + @Schema(title = "action", required = true) + private final String action; + + @Schema(title = "pipelineId", required = true) + private final String pipelineId; + + @Schema(title = "PipelineId", required = true) + private final List pipelineRefInfos; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentUpgradeType.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentUpgradeType.java new file mode 100644 index 0000000..f53304b --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/AgentUpgradeType.java @@ -0,0 +1,29 @@ +package cd.casic.pipeline.environment.pojo; + +import lombok.Getter; + +@Getter +public enum AgentUpgradeType { + WORKER, + GO_AGENT, + JDK, + DOCKER_INIT_FILE; + + public static AgentUpgradeType find(String type) { + if (type == null) { + return null; + } + switch (type) { + case "WORKER": + return WORKER; + case "GO_AGENT": + return GO_AGENT; + case "JDK": + return JDK; + case "DOCKER_INIT_FILE": + return DOCKER_INIT_FILE; + default: + return null; + } + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/CcNode.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/CcNode.java new file mode 100644 index 0000000..8999fd2 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/CcNode.java @@ -0,0 +1,35 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@Schema(title = "CC节点信息") +public class CcNode { + @Schema(title = "节点名称", required = true) + private String name; + + @Schema(title = "固资编号", required = true) + private String assetID; + + @Schema(title = "责任人", required = true) + private String operator; + + @Schema(title = "备份责任人", required = true) + private String bakOperator; + + @Schema(title = "节点IP", required = true) + private String ip; + + @Schema(title = "显示IP", required = true) + private String displayIp; + + @Schema(title = "Agent状态", required = true) + private Boolean agentStatus; + + @Schema(title = "操作系统", required = true) + private String osName; + +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/CmdbNode.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/CmdbNode.java new file mode 100644 index 0000000..832ee1d --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/CmdbNode.java @@ -0,0 +1,55 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Schema(title = "CMDB节点信息") +public class CmdbNode { + @Schema(title = "节点名称", required = true) + private final String name; + + @Schema(title = "责任人", required = true) + private final String operator; + + @Schema(title = "备份责任人", required = true) + private final String bakOperator; + + @Schema(title = "节点IP", required = true) + private final String ip; + + @Schema(title = "显示IP", required = true) + private final String displayIp; + + @Schema(title = "操作系统", required = true) + private final String osName; + + @Schema(title = "所属业务") + private final Long bizId; + + @Schema(title = "节点状态") + private String nodeStatus; + + @Schema(title = "是否已导入") + private Boolean importStatus; + + @Schema(title = "主机id") + private final Long serverId; + + public CmdbNode(String name, String operator, String bakOperator, String ip, + String displayIp, String osName, Long bizId, String nodeStatus, + Boolean importStatus, Long serverId) { + this.name = name; + this.operator = operator; + this.bakOperator = bakOperator; + this.ip = ip; + this.displayIp = displayIp; + this.osName = osName; + this.bizId = bizId; + this.nodeStatus = nodeStatus; + this.importStatus = importStatus; + this.serverId = serverId; + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudImageParam.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudImageParam.java new file mode 100644 index 0000000..e8188c1 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudImageParam.java @@ -0,0 +1,19 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@Schema(title = "DevCloud制作镜像参数") +public class DevCloudImageParam { + @Schema(title = "镜像名", required = true) + private final String name; + + @Schema(title = "镜像TAG", required = true) + private final String tag; + + @Schema(title = "描述", required = true) + private final String description; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudModel.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudModel.java new file mode 100644 index 0000000..0d5c5e0 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudModel.java @@ -0,0 +1,31 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; + +import java.util.List; + +@Getter +@Schema(title = "DevCloud容器机型") +public class DevCloudModel { + @Schema(title = "moduleId", required = true) + private String moduleId; + + @Schema(title = "机型名称", required = true) + private String moduleName; + + @Schema(title = "CPU", required = true) + private Integer cpu; + + @Schema(title = "Memory", required = true) + private String memory; + + @Schema(title = "Disk", required = true) + private String disk; + + @Schema(title = "description", required = true) + private List description; + + @Schema(title = "description", required = true) + private String produceTime; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudVmParam.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudVmParam.java new file mode 100644 index 0000000..c81fce9 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DevCloudVmParam.java @@ -0,0 +1,26 @@ +package cd.casic.pipeline.environment.pojo; + +import cd.casic.ci.common.pipeline.pojo.Zone; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@Schema(title = "DevCloud虚拟机参数") +public class DevCloudVmParam { + @Schema(title = "镜像Id", required = true) + private String imageId; + + @Schema(title = "机型", required = true) + private String modelId; + + @Schema(title = "数量", required = true) + private Integer instanceCount; + + @Schema(title = "区域", required = true) + private Zone zone; + + @Schema(title = "有效期", required = true) + private Integer validity; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DisplayName.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DisplayName.java new file mode 100644 index 0000000..97c25b4 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/DisplayName.java @@ -0,0 +1,11 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(title = "显示名称") +public class DisplayName { + @Schema(title = "显示名称", required = true) + private final String displayName; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvCreateInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvCreateInfo.java new file mode 100644 index 0000000..8e5f689 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvCreateInfo.java @@ -0,0 +1,32 @@ +package cd.casic.pipeline.environment.pojo; + +import cd.casic.pipeline.environment.pojo.enums.EnvType; +import cd.casic.pipeline.environment.pojo.enums.NodeSource; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.List; + +@Getter +@AllArgsConstructor +@Schema(title = "环境信息") +public class EnvCreateInfo { + @Schema(title = "环境名称", required = true) + private final String name; + + @Schema(title = "环境描述", required = true) + private final String desc; + + @Schema(title = "环境类型(开发环境{DEV}|测试环境{TEST}|构建环境{BUILD})", required = true) + private final EnvType envType; + + @Schema(title = "环境变量", required = false) + private final List envVars; + + @Schema(title = "节点来源(已有节点{EXISTING}|快速生成{CREATE})", required = true) + private final NodeSource source; + + @Schema(title = "节点 HashId 列表", required = false) + private final List nodeHashIds; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvUpdateInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvUpdateInfo.java new file mode 100644 index 0000000..9668c75 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvUpdateInfo.java @@ -0,0 +1,25 @@ +package cd.casic.pipeline.environment.pojo; + +import cd.casic.pipeline.environment.pojo.enums.EnvType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.Getter; + +import java.util.List; + +@Getter +@Data +@Schema(title = "环境基本信息") +public class EnvUpdateInfo { + @Schema(title = "环境名称", required = true) + private final String name; + + @Schema(title = "环境描述", required = true) + private final String desc; + + @Schema(title = "环境类型(构建环境{BUILD}|部署-开发/测试环境{DEV}|部署-生产环境{PROD}|)", required = true) + private final EnvType envType; + + @Schema(title = "环境变量", required = false) + private final List envVars; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvVar.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvVar.java new file mode 100644 index 0000000..bccdd95 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvVar.java @@ -0,0 +1,21 @@ +package cd.casic.pipeline.environment.pojo; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@Schema(title = "环境变量") +@JsonIgnoreProperties(ignoreUnknown = true) +public class EnvVar { + @Schema(title = "变量名", required = true) + private final String name; + + @Schema(title = "变量值", required = true) + private final String value; + + @Schema(title = "是否安全变量", required = true) + private final Boolean secure; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithNode.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithNode.java new file mode 100644 index 0000000..4867004 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithNode.java @@ -0,0 +1,22 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +@Schema(title = "环境信息-Node数量") +public class EnvWithNode { + @Schema(title = "环境 Id", required = true) + private Long envId; + + @Schema(title = "环境名称", required = true) + private String envName; + + @Schema(title = "源项目", required = false) + private String sharedProjectId; + + @Schema(title = "分享人", required = false) + private String sharedUserId; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithNodeCount.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithNodeCount.java new file mode 100644 index 0000000..7800eb7 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithNodeCount.java @@ -0,0 +1,36 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +@Data +@AllArgsConstructor +@Schema(title = "环境信息-Node数量") +public class EnvWithNodeCount { + @Schema(title = "环境所属项目Id", required = true) + private final String projectId; + + @Schema(title = "环境 HashId", required = true) + private final String envHashId; + + @Schema(title = "环境名称", required = true) + private final String name; + + @Schema(title = "正常节点数量", required = true) + private final Integer normalNodeCount; + + @Schema(title = "异常节点数量", required = true) + private final Integer abnormalNodeCount; + + @Schema(title = "源项目", required = false) + private final String sharedProjectId; + + @Schema(title = "分享人", required = false) + private final String sharedUserId; + + @Schema(title = "节点hash id", required = false) + private final List nodeHashIds; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithPermission.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithPermission.java new file mode 100644 index 0000000..db7faeb --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvWithPermission.java @@ -0,0 +1,55 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +@Data +@AllArgsConstructor +@Schema(title = "环境信息(权限)") +public class EnvWithPermission { + @Schema(title = "环境 HashId", required = true) + private String envHashId; + + @Schema(title = "环境名称", required = true) + private String name; + + @Schema(title = "环境描述", required = true) + private String desc; + + @Schema(title = "环境类型(开发环境{DEV}|测试环境{TEST}|构建环境{BUILD})", required = true) + private String envType; + + @Schema(title = "节点数量", required = false) + private Integer nodeCount; + + @Schema(title = "环境变量", required = true) + private List envVars; + + @Schema(title = "创建人", required = true) + private String createdUser; + + @Schema(title = "创建时间", required = true) + private Long createdTime; + + @Schema(title = "更新人", required = true) + private String updatedUser; + + @Schema(title = "更新时间", required = true) + private Long updatedTime; + + @Schema(title = "是否可以编辑", required = false) + private Boolean canEdit; + + @Schema(title = "是否可以删除", required = false) + private Boolean canDelete; + + @Schema(title = "是否可以使用", required = false) + private Boolean canUse; + + @Schema(title = "项目名称", required = false) + private String projectName; + +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvironmentId.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvironmentId.java new file mode 100644 index 0000000..72045d8 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/EnvironmentId.java @@ -0,0 +1,11 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(title = "环境-ID") +public class EnvironmentId { + @Schema(title = "环境哈希ID", required = true) + private final String hashId; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeBaseInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeBaseInfo.java new file mode 100644 index 0000000..48a0352 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeBaseInfo.java @@ -0,0 +1,61 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +@Schema(title = "NodeBaseInfo-节点信息(权限)") +public class NodeBaseInfo { + @Schema(title = "环境 HashId", required = true) + private String nodeHashId; + + @Schema(title = "节点 Id", required = true) + private String nodeId; + + @Schema(title = "节点名称", required = true) + private String name; + + @Schema(title = "IP", required = true) + private String ip; + + @Schema(title = "节点状态", required = true) + private String nodeStatus; + + @Schema(title = "agent状态", required = false) + private Boolean agentStatus; + + @Schema(title = "节点类型", required = true) + private String nodeType; + + @Schema(title = "操作系统", required = false) + private String osName; + + @Schema(title = "创建人", required = true) + private String createdUser; + + @Schema(title = "责任人", required = false) + private String operator; + + @Schema(title = "备份责任人", required = false) + private String bakOperator; + + @Schema(title = "网关地域", required = false) + private String gateway; + + @Schema(title = "显示名称", required = false) + private String displayName; + + @Schema(title = "所属业务, 默认-1表示没有绑定业务") + private Long bizId; + + @Schema(title = "当前环境是否启用这个 node") + private Boolean envEnableNode; + + @Schema(title = "最后更新时间") + private Long lastModifyTime; + + @Schema(title = "机型") + private String size; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeDevCloudInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeDevCloudInfo.java new file mode 100644 index 0000000..fa33216 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeDevCloudInfo.java @@ -0,0 +1,41 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +@Schema(title = "devCloud节点信息") +public class NodeDevCloudInfo { + @Schema(title = "环境 HashId", required = true) + private final String nodeHashId; + + @Schema(title = "节点 Id", required = true) + private final String nodeId; + + @Schema(title = "节点名称", required = true) + private final String name; + + @Schema(title = "IP", required = true) + private final String ip; + + @Schema(title = "节点状态", required = true) + private final String nodeStatus; + + @Schema(title = "agent状态", required = false) + private final Boolean agentStatus; + + @Schema(title = "节点类型", required = true) + private final String nodeType; + + @Schema(title = "操作系统", required = false) + private final String osName; + + @Schema(title = "创建人", required = true) + private final String createdUser; + + @Schema(title = "projectId", required = false) + private final String projectId; + +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodePage.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodePage.java new file mode 100644 index 0000000..dda7706 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodePage.java @@ -0,0 +1,18 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +@Data +@AllArgsConstructor +@Schema(title = "节点(分页)") +public class NodePage { + @Schema(title = "节点总数", required = true) + private final Integer total; + + @Schema(title = "节点详情", required = true) + private final List data; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeWithPermission.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeWithPermission.java new file mode 100644 index 0000000..a4359ab --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/NodeWithPermission.java @@ -0,0 +1,112 @@ +package cd.casic.pipeline.environment.pojo; + +import cd.casic.pipeline.environment.pojo.thirdpartyagent.AgentBuildDetail; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.List; + +@Getter +@AllArgsConstructor +@Schema(title = "NodeWithPermission-节点信息(权限)") +public class NodeWithPermission { + @Schema(title = "环境 HashId", required = true) + private final String nodeHashId; + + @Schema(title = "节点 Id", required = true) + private final String nodeId; + + @Schema(title = "节点名称", required = true) + private final String name; + + @Schema(title = "IP", required = true) + private final String ip; + + @Schema(title = "节点状态", required = true) + private final String nodeStatus; + + @Schema(title = "节点类型", required = true) + private final String nodeType; + + @Schema(title = "操作系统", required = false) + private final String osName; + + @Schema(title = "创建人", required = true) + private final String createdUser; + + @Schema(title = "责任人", required = false) + private final String operator; + + @Schema(title = "备份责任人", required = false) + private final String bakOperator; + + @Schema(title = "是否可以使用", required = false) + private final Boolean canUse; + + @Schema(title = "是否可以编辑", required = false) + private final Boolean canEdit; + + @Schema(title = "是否可以删除", required = false) + private final Boolean canDelete; + + @Schema(title = "是否可以查看", required = false) + private final Boolean canView; + + @Schema(title = "网关地域", required = false) + private final String gateway; + + @Schema(title = "显示名称", required = false) + private final String displayName; + + @Schema(title = "创建/导入时间", required = false) + private final String createTime; + + @Schema(title = "最后修改时间", required = false) + private final String lastModifyTime; + + @Schema(title = "最后修改人", required = false) + private final String lastModifyUser; + + @Schema(title = "所属业务, 默认-1表示没有绑定业务") + private final Long bizId; + + @Schema(title = "流水线Job引用数") + private final Integer pipelineRefCount; + + @Schema(title = "流水线Job引用数") + private final String lastBuildTime; + + @Schema(title = "agent状态", required = true) + private final Boolean agentStatus; + + @Schema(title = "agent版本") + private final String agentVersion; + + @Schema(title = "agent hash id") + private final String agentHashId; + + @Schema(title = "云区域ID") + private final Long cloudAreaId; + + @Schema(title = "操作系统类型") + private final String osType; + + @Schema(title = "hostID") + private final Long bkHostId; + + @Schema(title = "job任务ID") + private final Long taskId; + + @Schema(title = "主机serverId") + private final Long serverId; + + @Schema(title = "机型") + private final String size; + + @Schema(title = "该节点所属环境名") + private final List envNames; + + @Schema(title = "最近构建信息") + private AgentBuildDetail latestBuildDetail; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfig.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfig.java new file mode 100644 index 0000000..f7a2573 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfig.java @@ -0,0 +1,35 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +@Schema(title = "项目配置") +public class ProjectConfig { + @Schema(title = "项目Id", required = true) + private String projectId; + + @Schema(title = "更新人", required = true) + private String updatedUser; + + @Schema(title = "更新时间", required = true) + private Long updatedTime; + + @Schema(title = "允许使用BCS虚拟机功能", required = true) + private Boolean bcsVmEnabled; + + @Schema(title = "BCS虚拟机配额", required = true) + private Integer bcsVmQuota; + + @Schema(title = "导入服务器配额", required = true) + private Integer importQuota; + + @Schema(title = "允许使用DevCloud功能", required = true) + private Boolean devCloudEnable; + + @Schema(title = "DevCloud配额", required = true) + private Integer devCloudQuota; + +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfigPage.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfigPage.java new file mode 100644 index 0000000..5a38431 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfigPage.java @@ -0,0 +1,18 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +@Data +@AllArgsConstructor +@Schema(title = "项目配置(分页)") +public class ProjectConfigPage { + @Schema(title = "projectConfig总数", required = true) + private final Integer total; + + @Schema(title = "projectConfig详情", required = true) + private final List data; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfigParam.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfigParam.java new file mode 100644 index 0000000..cec3e2d --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectConfigParam.java @@ -0,0 +1,32 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +@Schema(title = "项目配置") +public class ProjectConfigParam { + @Schema(title = "项目Id", required = true) + private String projectId; + + @Schema(title = "更新人", required = true) + private String updatedUser; + + @Schema(title = "允许使用BCS虚拟机功能", required = true) + private Boolean bcsVmEnabled; + + @Schema(title = "BCS虚拟机配额", required = true) + private Integer bcsVmQuota; + + @Schema(title = "导入服务器配额", required = true) + private Integer importQuota; + + @Schema(title = "允许使用DevCloud功能", required = true) + private Boolean devCloudEnable; + + @Schema(title = "DevCloud配额", required = true) + private Integer devCloudQuota; + +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectInfo.java new file mode 100644 index 0000000..b6c68e0 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/ProjectInfo.java @@ -0,0 +1,35 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +@Schema(title = "VM虚拟机配额") +public class ProjectInfo { + @Schema(title = "允许使用BCS虚拟机功能", required = true) + private final Boolean bcsVmEnabled; + + @Schema(title = "BCS虚拟机配额", required = true) + private final Integer bcsVmQuota; + + @Schema(title = "BCS虚拟机已用数量", required = true) + private final Integer bcsVmUsedCount; + + @Schema(title = "BCS虚拟机可用数量", required = true) + private final Integer bcsVmRestCount; + + @Schema(title = "导入服务器配额", required = true) + private final Integer importQuota; + + @Schema(title = "允许使用DevCloud虚拟机功能", required = true) + private final Boolean devCloudVmEnabled; + + @Schema(title = "DevCloud虚拟机配额", required = true) + private final Integer devCloudVmQuota; + + @Schema(title = "DevCloud虚拟机已用数量", required = true) + private final Integer devCloudVmUsedCount; + +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/SharedProjectInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/SharedProjectInfo.java new file mode 100644 index 0000000..3f1b5fe --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/SharedProjectInfo.java @@ -0,0 +1,33 @@ +package cd.casic.pipeline.environment.pojo; + +import cd.casic.pipeline.environment.pojo.enums.SharedEnvType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +@Schema(title = "VM虚拟机配额") +public class SharedProjectInfo { + @Schema(title = "蓝盾项目Id", required = true) + private String projectId; + + @Schema(title = "工蜂项目ID", required = true) + private String gitProjectId; + + @Schema(title = "项目名称,工蜂项目则为groupName/projectName", required = true) + private String name; + + @Schema(title = "类型,预留", required = true) + private SharedEnvType type; + + @Schema(title = "导入服务器配额", required = true) + private String creator; + + @Schema(title = "允许使用DevCloud虚拟机功能", required = true) + private Long createTime; + + @Schema(title = "DevCloud虚拟机配额", required = true) + private Long updateTime; + +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/SharedProjectInfoWrap.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/SharedProjectInfoWrap.java new file mode 100644 index 0000000..da0b1c4 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/SharedProjectInfoWrap.java @@ -0,0 +1,17 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +@Data +@AllArgsConstructor +@Schema(title = "共享的项目列表") +public class SharedProjectInfoWrap { + @Parameter(description = "共享的项目列表", required = true) + private final List sharedProjects; + +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/TEnvShareProjectInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/TEnvShareProjectInfo.java new file mode 100644 index 0000000..1ef32da --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/TEnvShareProjectInfo.java @@ -0,0 +1,35 @@ +package cd.casic.pipeline.environment.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Schema(title = "T_ENV_SHARE_PROJECT POJO") +public class TEnvShareProjectInfo { + @Schema(title = "环境ID") + private Long envId; + + @Schema(title = "名称") + private String envName; + + @Schema(title = "主项目ID") + private String mainProjectId; + + @Schema(title = "共享的目标项目ID") + private String sharedProjectId; + + @Schema(title = "目标项目名称") + private String sharedProjectName; + + @Schema(title = "类型") + private String type; + + @Schema(title = "创建者") + private String creator; + + private LocalDateTime createTime; + + private LocalDateTime updateTime; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/EnvType.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/EnvType.java new file mode 100644 index 0000000..b282c20 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/EnvType.java @@ -0,0 +1,17 @@ +package cd.casic.pipeline.environment.pojo.enums; + +import lombok.Getter; + +/** + * @author by mianbin + * @Classname EnvType + * @Description TODO + * @Date 2025/4/8 19:59 + */ +@Getter +public enum EnvType { + DEV, + TEST, + PROD, + BUILD +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeSource.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeSource.java new file mode 100644 index 0000000..48a2e5a --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeSource.java @@ -0,0 +1,16 @@ +package cd.casic.pipeline.environment.pojo.enums; + +import lombok.Getter; + +/** + * @author by mianbin + * @Classname NodeSource + * @Description TODO + * @Date 2025/4/8 20:00 + */ +@Getter +public enum NodeSource { + EXISTING, + CREATE, + CMDB +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeStatus.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeStatus.java new file mode 100644 index 0000000..44a6327 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeStatus.java @@ -0,0 +1,67 @@ +package cd.casic.pipeline.environment.pojo.enums; + +import lombok.Getter; + +import java.text.MessageFormat; +import java.util.Locale; + +/** + * @author by mianbin + * @Classname NodeStatus + * @Description TODO + * @Date 2025/4/8 20:00 + */ +@Getter +public enum NodeStatus { + NORMAL("normal"), // 正常 + ABNORMAL("abnormal"), // 异常(节点类型:构建 - 蓝盾agent异常,部署 - GSE agent异常) + NOT_INSTALLED("notInstall"), // 未安装agent + DELETED("deleted"), // 已删除 + LOST("lost"), // 失联 + CREATING("creating"), // 正在创建中 + RUNNING("running"), // 安装Agent + STARTING("starting"), // 正在开机中 + STOPPING("stopping"), // 正在关机中 + STOPPED("stopped"), // 已关机 + RESTARTING("restarting"), // 正在重启中 + DELETING("deleting"), // 正在销毁中 + BUILDING_IMAGE("buildingImage"), // 正在制作镜像中 + BUILD_IMAGE_SUCCESS("buildImageSuccess"), // 制作镜像成功 + BUILD_IMAGE_FAILED("buildImageFailed"), // 制作镜像失败 + NOT_IN_CC("notInCC"), // CC中不存在(仅部署类型节点) + NOT_IN_CMDB("notInCmdb"), // CMDB中不存在(仅部署类型节点) + UNKNOWN("unknown"); // 未知 + + private final String statusName; + + NodeStatus(String statusName) { + this.statusName = statusName; + } + + public static String getStatusName(String status) { + for (NodeStatus nodeStatus : values()) { + if (nodeStatus.name().equals(status.toUpperCase(Locale.getDefault()))) { + return MessageFormat.format("envNodeStatus.{0}", nodeStatus.name()); + } + } + return MessageFormat.format("envNodeStatus.{0}", UNKNOWN.name()); + } + + public static NodeStatus parseByName(String name) { + for (NodeStatus nodeStatus : values()) { + if (nodeStatus.name().equals(name)) { + return nodeStatus; + } + } + return UNKNOWN; + } + + public static NodeStatus parseByStatusName(String statusName) { + for (NodeStatus nodeStatus : values()) { + if (nodeStatus.getStatusName().equals(statusName)) { + return nodeStatus; + } + } + return UNKNOWN; + } +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeType.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeType.java new file mode 100644 index 0000000..4142569 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/NodeType.java @@ -0,0 +1,47 @@ +package cd.casic.pipeline.environment.pojo.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; + +/** + * @author by mianbin + * @Classname NodeType + * @Description TODO + * @Date 2025/4/8 20:03 + */ +@Getter +@AllArgsConstructor +public enum NodeType { + CMDB("CMDB"), + DEVCLOUD("DevCloud虚拟机"), + THIRDPARTY("第三方构建机"), + OTHER("其他"), + UNKNOWN("未知"); + + private final String typeName; + + public static List coreTypesName() { + return Arrays.asList(CMDB.name(), DEVCLOUD.name(), THIRDPARTY.name(), OTHER.name(), UNKNOWN.name()); + } + + public static String getTypeName(String nodeType) { + for (NodeType type : values()) { + if (type.name().equals(nodeType)) { + return type.getTypeName(); + } + } + return UNKNOWN.getTypeName(); + } + + public static NodeType parseByTypeName(String typeName) { + for (NodeType type : values()) { + if (type.getTypeName().equals(typeName)) { + return type; + } + } + return UNKNOWN; + } +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/OsType.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/OsType.java new file mode 100644 index 0000000..0546382 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/OsType.java @@ -0,0 +1,20 @@ +package cd.casic.pipeline.environment.pojo.enums; + +import lombok.Getter; + +/** + * @author by mianbin + * @Classname OsType + * @Description TODO + * @Date 2025/4/8 20:04 + */ +@Getter +public enum OsType { // CC中能查到的所有os类型+OTHER + LINUX, + WINDOWS, + AIX, + SOLARIS, + UNIX, + FREEBSD, + OTHER +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/SharedEnvType.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/SharedEnvType.java new file mode 100644 index 0000000..8234566 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/enums/SharedEnvType.java @@ -0,0 +1,12 @@ +package cd.casic.pipeline.environment.pojo.enums; + +/** + * @author by mianbin + * @Classname SharedEnvType + * @Description TODO + * @Date 2025/4/8 20:16 + */ +public enum SharedEnvType { + PROJECT, + GROUP +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentBuildDetail.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentBuildDetail.java new file mode 100644 index 0000000..029f5c1 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentBuildDetail.java @@ -0,0 +1,44 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; +/** + * @author by mianbin + * @Classname AgentBuildDetail + * @Description TODO + * @Date 2025/4/8 21:13 + */ + +@Data +public class AgentBuildDetail { + @Schema(title = "节点 Hash ID", required = true) + private String nodeId; + @Schema(title = "Agent Hash ID", required = true) + private String agentId; + @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 = "构建ID", required = true) + private String buildId; + @Schema(title = "构建号", required = true) + private int buildNumber; + @Schema(title = "VM_SET_ID", required = true) + private String vmSetId; + @Schema(title = "构建任务名称", required = true) + private String taskName; + @Schema(title = "状态", required = true) + private String status; + @Schema(title = "创建时间", required = true) + private Date createdTime; + @Schema(title = "更新时间", required = true) + private Date updatedTime; + @Schema(title = "工作空间", required = true) + private String workspace; + @Schema(title = "agent任务", required = false) + private AgentTask agentTask; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentPipelineRef.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentPipelineRef.java new file mode 100644 index 0000000..d032111 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentPipelineRef.java @@ -0,0 +1,36 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname AgentPipelineRef + * @Description TODO + * @Date 2025/4/8 21:13 + */ +@Data +public class AgentPipelineRef { + @Schema(title = "Node ID", required = true) + private Long nodeId; + @Schema(title = "Node Hash ID", required = true) + private String nodeHashId; + @Schema(title = "Agent ID", required = true) + private Long agentId; + @Schema(title = "Agent Hash ID", required = true) + private String agentHashId; + @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 = "Vm Seq ID", required = true) + private String vmSeqId; + @Schema(title = "Job ID", required = true) + private String jobId; + @Schema(title = "Job Name", required = true) + private String jobName; + @Schema(title = "上次构建时间", required = false) + private String lastBuildTime; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentShared.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentShared.java new file mode 100644 index 0000000..6946be8 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentShared.java @@ -0,0 +1,19 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import lombok.Data; + +import java.util.List; + +/** + * @author by mianbin + * @Classname AgentShared + * @Description TODO + * @Date 2025/4/8 21:13 + */ +@Data +public class AgentShared { + private Long agentId; + private String mainProjectId; + private List sharedProjectId; + private String userId; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentTask.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentTask.java new file mode 100644 index 0000000..cba0316 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AgentTask.java @@ -0,0 +1,16 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname AgentTask + * @Description TODO + * @Date 2025/4/8 21:14 + */ +@Data +public class AgentTask { + @Schema(title = "Task状态", required = true) + private String status; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AskHeartbeatResponse.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AskHeartbeatResponse.java new file mode 100644 index 0000000..d5aeb8c --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/AskHeartbeatResponse.java @@ -0,0 +1,36 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname AskHeartbeatResponse + * @Description TODO + * @Date 2025/4/8 21:14 + */ +@Data +public class AskHeartbeatResponse { + @Schema(title = "主版本") + private String masterVersion; + @Schema(title = "从属版本") + private String slaveVersion; + @Schema(title = "构建机状态") + private String agentStatus; + @Schema(title = "通道数量") + private int parallelTaskCount; + @Schema(title = "环境变量") + private Map envs; + @Schema(title = "网关地址") + private String gateway; + @Schema(title = "文件网关路径") + private String fileGateway; + @Schema(title = "Agent的一些属性配置") + private Map props; + @Schema(title = "docker最大任务数量") + private int dockerParallelTaskCount; + @Schema(title = "用户国际化语言") + private String language; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/BatchFetchAgentData.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/BatchFetchAgentData.java new file mode 100644 index 0000000..ce5d49e --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/BatchFetchAgentData.java @@ -0,0 +1,20 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Set; + +/** + * @author by mianbin + * @Classname BatchFetchAgentData + * @Description TODO + * @Date 2025/4/8 21:14 + */ +@Data +public class BatchFetchAgentData { + @Schema(title = "Node Hash ID列表,和 agentHashId 选其一即可", required = false) + private Set nodeHashIds; + @Schema(title = "agent Hash ID列表,和 nodeHashId 选其一即可", required = false) + private Set agentHashIds; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/EnvNodeAgent.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/EnvNodeAgent.java new file mode 100644 index 0000000..6525c9c --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/EnvNodeAgent.java @@ -0,0 +1,16 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import lombok.Data; + +/** + * @author by mianbin + * @Classname EnvNodeAgent + * @Description TODO + * @Date 2025/4/8 21:14 + */ +@Data +public class EnvNodeAgent { + private ThirdPartyAgent agent; + private boolean enableNode; + private String nodeDisplayName; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/HeartbeatInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/HeartbeatInfo.java new file mode 100644 index 0000000..8fdbd79 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/HeartbeatInfo.java @@ -0,0 +1,56 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import cd.casic.ci.common.pipeline.pojo.agent.ThirdPartyBuildInfo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * @author by mianbin + * @Classname HeartbeatInfo + * @Description TODO + * @Date 2025/4/8 21:15 + */ +@Data +@AllArgsConstructor +public class HeartbeatInfo { + @Schema(title = "主版本") + private String masterVersion; + @Schema(title = "从属版本") + private String slaveVersion; + @Schema(title = "主机名") + private String hostName; + @Schema(title = "Agent IP") + private String agentIp; + @Schema(title = "通道数量") + private int parallelTaskCount; + @Schema(title = "Agent安装路径") + private String agentInstallPath; + @Schema(title = "启动用户") + private String startedUser; + @Schema(title = "任务列表") + private List taskList; + @Schema(title = "Agent ID") + private Long agentId; + @Schema(title = "项目ID") + private String projectId; + @Schema(title = "心跳时间") + private Long heartbeatTime; + public static HeartbeatInfo dummyHeartbeat(String projectId, Long agentId) { + return new HeartbeatInfo( + "", + "", + "", + "", + 0, + "", + "", + List.of(), + agentId, + projectId, + System.currentTimeMillis() + ); + } +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/HeartbeatResponse.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/HeartbeatResponse.java new file mode 100644 index 0000000..36717c5 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/HeartbeatResponse.java @@ -0,0 +1,36 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname HeartbeatResponse + * @Description TODO + * @Date 2025/4/8 21:15 + */ +@Data +public class HeartbeatResponse { + @Schema(title = "主版本") + private String masterVersion; + @Schema(title = "从属版本") + private String slaveVersion; + @Schema(title = "构建机状态") + private String agentStatus; + @Schema(title = "通道数量") + private int parallelTaskCount; + @Schema(title = "环境变量") + private Map envs; + @Schema(title = "网关地址") + private String gateway; + @Schema(title = "文件网关路径") + private String fileGateway; + @Schema(title = "Agent的一些属性配置") + private Map props; + @Schema(title = "docker最大任务数量") + private int dockerParallelTaskCount; + @Schema(title = "用户国际化语言") + private String language; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/JDKInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/JDKInfo.java new file mode 100644 index 0000000..88b3bb5 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/JDKInfo.java @@ -0,0 +1,20 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname JDKInfo + * @Description TODO + * @Date 2025/4/8 21:16 + */ +@Data +public class JDKInfo { + @Schema(title = "操作系统类型,MACOS/LINUX/WINDOWS") + private String os; + @Schema(title = "CPU架构,AMD64/ARM64/MIPS64") + private String archType; + @Schema(title = "java -version 版本信息最后一行") + private String jdkVersionString; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartAgentUpdateType.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartAgentUpdateType.java new file mode 100644 index 0000000..50db918 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartAgentUpdateType.java @@ -0,0 +1,13 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +/** + * @author by mianbin + * @Classname ThirdPartAgentUpdateType + * @Description TODO + * @Date 2025/4/8 21:16 + */ +public enum ThirdPartAgentUpdateType { + ADD, + REMOVE, + UPDATE +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgent.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgent.java new file mode 100644 index 0000000..f9cbe69 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgent.java @@ -0,0 +1,41 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import cd.casic.ci.common.pipeline.enums.AgentStatus; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgent + * @Description TODO + * @Date 2025/4/8 21:16 + */ +@Data +public class ThirdPartyAgent { + @Schema(title = "Agent Hash ID", required = true) + private String agentId; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "节点ID", required = false) + private String nodeId; + @Schema(title = "状态") + private AgentStatus status; + @Schema(title = "主机名", required = true) + private String hostname; + @Schema(title = "系统", required = true) + private String os; + @Schema(title = "IP地址", required = true) + private String ip; + @Schema(title = "Secret KEY", required = true) + private String secretKey; + @Schema(title = "创建用户", required = true) + private String createUser; + @Schema(title = "创建时间", required = true) + private Long createTime; + @Schema(title = "并行执行的个数", required = false) + private Integer parallelTaskCount; + @Schema(title = "Docker构建机并行执行的个数", required = false) + private Integer dockerParallelTaskCount; + @Schema(title = "agent版本") + private String masterVersion; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentAction.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentAction.java new file mode 100644 index 0000000..e91f56b --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentAction.java @@ -0,0 +1,22 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentAction + * @Description TODO + * @Date 2025/4/8 21:19 + */ +@Data +public class ThirdPartyAgentAction { + @Schema(title = "Agent Hash Id", required = true) + private String agentId; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "活动", required = true) + private String action; + @Schema(title = "活动时间", required = true) + private Long actionTime; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentCreate.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentCreate.java new file mode 100644 index 0000000..98be140 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentCreate.java @@ -0,0 +1,20 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentCreate + * @Description TODO + * @Date 2025/4/8 21:19 + */ +@Data +public class ThirdPartyAgentCreate { + @Schema(title = "名称", required = true) + private String name; + @Schema(title = "IP地址", required = true) + private String ip; + @Schema(title = "工作空间", required = true) + private String workspace; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentDetail.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentDetail.java new file mode 100644 index 0000000..ffef2f3 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentDetail.java @@ -0,0 +1,73 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import cd.casic.ci.common.pipeline.pojo.agent.NewHeartbeatInfo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentDetail + * @Description TODO + * @Date 2025/4/8 21:19 + */ +@Data +public class ThirdPartyAgentDetail { + @Schema(title = "Agent Hash ID", required = true) + private String agentId; + @Schema(title = "Node Hash ID", required = true) + private String nodeId; + @Schema(title = "节点名称", required = true) + private String displayName; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "状态", required = true) + private String status; + @Schema(title = "主机名", required = true) + private String hostname; + @Schema(title = "操作系统 | LINUX MACOS WINDOWS", required = true) + private String os; + @Schema(title = "操作系统", required = true) + private String osName; + @Schema(title = "IP地址", required = true) + private String ip; + @Schema(title = "导入人", required = true) + private String createdUser; + @Schema(title = "导入时间", required = true) + private String createdTime; + @Schema(title = "Agent版本", required = true) + private String agentVersion; + @Schema(title = "Worker版本", required = true) + private String slaveVersion; + @Schema(title = "agent安装路径", required = true) + private String agentInstallPath; + @Schema(title = "已废弃,使用 parallelTaskCount", required = true) + private String maxParallelTaskCount; + @Schema(title = "最大构建并发数", required = true) + private String parallelTaskCount; + @Schema(title = "docker构建机通道数量", required = true) + private String dockerParallelTaskCount; + @Schema(title = "启动用户", required = true) + private String startedUser; + @Schema(title = "agent链接", required = true) + private String agentUrl; + @Schema(title = "agent安装脚本", required = true) + private String agentScript; + @Schema(title = "最新心跳时间", required = true) + private String lastHeartbeatTime; + @Schema(title = "CPU 核数", required = true) + private String ncpus; + @Schema(title = "内存", required = true) + private String memTotal; + @Schema(title = "硬盘空间(最大盘)", required = true) + private String diskTotal; + @Schema(title = "是否可以编辑", required = false) + private Boolean canEdit; + @Schema(title = "当前Agent版本", required = false) + private String currentAgentVersion; + @Schema(title = "当前Worker版本", required = false) + private String currentWorkerVersion; + @Schema(title = "心跳信息", required = false) + private NewHeartbeatInfo heartbeatInfo; + @Schema(title = "错误退出信息", required = false) + private String exitErrorMsg; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentHeartbeatInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentHeartbeatInfo.java new file mode 100644 index 0000000..d777a73 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentHeartbeatInfo.java @@ -0,0 +1,15 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentHeartbeatInfo + * @Description TODO + * @Date 2025/4/8 21:19 + */ +@Data +public class ThirdPartyAgentHeartbeatInfo { + private String masterVersion; + private String slaveVersion; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentInfo.java new file mode 100644 index 0000000..3323bd8 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentInfo.java @@ -0,0 +1,28 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentInfo + * @Description TODO + * @Date 2025/4/8 21:20 + */ +@Data +public class ThirdPartyAgentInfo { + @Schema(title = "Agent Hash ID", required = true) + private String agentId; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "状态") + private String status; + @Schema(title = "主机名", required = true) + private String hostname; + @Schema(title = "IP地址", required = true) + private String ip; + @Schema(title = "节点名", required = true) + private String displayName; + @Schema(title = "详细名称", required = false) + private String detailName; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentLink.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentLink.java new file mode 100644 index 0000000..ca61b1b --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentLink.java @@ -0,0 +1,18 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentLink + * @Description TODO + * @Date 2025/4/8 21:20 + */ +@Data +public class ThirdPartyAgentLink { + @Schema(title = "ID") + private String agentId; + @Schema(title = "链接") + private String link; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentPipeline.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentPipeline.java new file mode 100644 index 0000000..d46db03 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentPipeline.java @@ -0,0 +1,27 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline.CommandPipeline; +import cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline.FilePipeline; +import cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline.PipelineType; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentPipeline + * @Description TODO + * @Date 2025/4/8 21:20 + */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") +@JsonSubTypes({ + @JsonSubTypes.Type(value = CommandPipeline.class, name = "COMMAND"), + @JsonSubTypes.Type(value = FilePipeline.class, name = "FILE") +}) +@Data +@AllArgsConstructor +public class ThirdPartyAgentPipeline { + private PipelineType type; + private String seqId; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentStartInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentStartInfo.java new file mode 100644 index 0000000..31ea609 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentStartInfo.java @@ -0,0 +1,24 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentStartInfo + * @Description TODO + * @Date 2025/4/8 21:20 + */ +@Data +public class ThirdPartyAgentStartInfo { + @Schema(title = "主机名称") + private String hostname; + @Schema(title = "主机IP") + private String hostIp; + @Schema(title = "操作系统") + private String detectOS; + @Schema(title = "版本号") + private String version; + @Schema(title = "主版本号") + private String masterVersion; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentStaticInfo.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentStaticInfo.java new file mode 100644 index 0000000..0193005 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/ThirdPartyAgentStaticInfo.java @@ -0,0 +1,38 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author by mianbin + * @Classname ThirdPartyAgentStaticInfo + * @Description TODO + * @Date 2025/4/8 21:20 + */ +@Data +public class ThirdPartyAgentStaticInfo { + @Schema(title = "Agent Hash ID", required = true) + private String agentId; + @Schema(title = "项目ID", required = true) + private String projectId; + @Schema(title = "操作系统", required = true) + private String os; + @Schema(title = "密钥", required = true) + private String secretKey; + @Schema(title = "创建人", required = true) + private String createdUser; + @Schema(title = "gateway", required = false) + private String gateway; + @Schema(title = "link", required = true) + private String link; + @Schema(title = "script", required = true) + private String script; + @Schema(title = "ip", required = true) + private String ip; + @Schema(title = "hostName", required = false) + private String hostName; + @Schema(title = "状态") + private Integer status; + @Schema(title = "agent版本") + private String masterVersion; +} diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/CommandPipeline.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/CommandPipeline.java new file mode 100644 index 0000000..c03c309 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/CommandPipeline.java @@ -0,0 +1,14 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import cd.casic.pipeline.environment.pojo.thirdpartyagent.ThirdPartyAgentPipeline; +import lombok.Getter; + +@Getter +public class CommandPipeline extends ThirdPartyAgentPipeline { + private final String command; + + public CommandPipeline(String command, String seqId) { + super(PipelineType.COMMAND, seqId); + this.command = command; + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/CommandPipelineCreate.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/CommandPipelineCreate.java new file mode 100644 index 0000000..14b99eb --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/CommandPipelineCreate.java @@ -0,0 +1,22 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +public class CommandPipelineCreate extends PipelineCreate { + private String command; + private String seqId; + + public CommandPipelineCreate(String command) { + super(PipelineType.COMMAND, null); + this.command = command; + } + + //TODO + public CommandPipelineCreate() { + super(null, null); + this.command = command; + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/FilePipeline.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/FilePipeline.java new file mode 100644 index 0000000..b1c477b --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/FilePipeline.java @@ -0,0 +1,21 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import cd.casic.pipeline.environment.pojo.thirdpartyagent.ThirdPartyAgentPipeline; +import lombok.Getter; + +@Getter +public class FilePipeline extends ThirdPartyAgentPipeline { + private final FilePipelineOperation operation; + private final String file; + + public FilePipeline(FilePipelineOperation operation, String file, String seqId) { + super(PipelineType.FILE, seqId); + this.operation = operation; + this.file = file; + } + + public enum FilePipelineOperation { + DOWNLOAD, + UPLOAD + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/FilePipelineCreate.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/FilePipelineCreate.java new file mode 100644 index 0000000..d249d7c --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/FilePipelineCreate.java @@ -0,0 +1,21 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class FilePipelineCreate extends PipelineCreate { + private final FilePipeline.FilePipelineOperation operation; + private final String file; + + public FilePipelineCreate( + @JsonProperty("operation") FilePipeline.FilePipelineOperation operation, + @JsonProperty("file") String file, + @JsonProperty("seqId") String seqId) { + super(PipelineType.FILE, seqId); + this.operation = operation; + this.file = file; + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineCreate.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineCreate.java new file mode 100644 index 0000000..2074480 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineCreate.java @@ -0,0 +1,22 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public abstract class PipelineCreate { + private PipelineType type; + private String seqId; + + public PipelineCreate( + @JsonProperty("type") PipelineType type, + @JsonProperty("seqId") String seqId + ) { + this.type = type; + this.seqId = seqId; + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineResponse.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineResponse.java new file mode 100644 index 0000000..fc2cd16 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineResponse.java @@ -0,0 +1,23 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class PipelineResponse { + private final PipelineStatus status; + private final String message; + private final String seqId; + + public PipelineResponse( + @JsonProperty("status") PipelineStatus status, + @JsonProperty("message") String message, + @JsonProperty("seqId") String seqId + ) { + this.status = status; + this.message = message; + this.seqId = seqId; + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineSeqId.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineSeqId.java new file mode 100644 index 0000000..a0141dc --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineSeqId.java @@ -0,0 +1,12 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PipelineSeqId { + private String seqId; +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineStatus.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineStatus.java new file mode 100644 index 0000000..d320b5f --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineStatus.java @@ -0,0 +1,27 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import lombok.Getter; + +@Getter +public enum PipelineStatus { + PENDING(1), + EXECUTING(2), + TIMEOUT(3), + FAILURE(4), + SUCCESS(5); + + private final int status; + + PipelineStatus(int status) { + this.status = status; + } + + public static PipelineStatus from(int status) { + for (PipelineStatus pipelineStatus : values()) { + if (pipelineStatus.getStatus() == status) { + return pipelineStatus; + } + } + throw new RuntimeException("The pipeline status " + status + " is not exist"); + } +} \ No newline at end of file diff --git a/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineType.java b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineType.java new file mode 100644 index 0000000..d131a31 --- /dev/null +++ b/modules/module-ci-environment/src/main/java/cd/casic/pipeline/environment/pojo/thirdpartyagent/pipeline/PipelineType.java @@ -0,0 +1,9 @@ +package cd.casic.pipeline.environment.pojo.thirdpartyagent.pipeline; + +import lombok.Getter; + +@Getter +public enum PipelineType { + COMMAND, + FILE +} \ No newline at end of file diff --git a/modules/module-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 index 5845508..722b15e 100644 --- a/modules/module-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,8 +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.common.constant.OpsHeader.*;; - +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*;; @Tag(name = "用户-日志资源") @RestController diff --git a/modules/module-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 index a208f55..08df532 100644 --- a/modules/module-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.common.constant.OpsHeader.*;; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*;; /** * @author by mianbin diff --git a/modules/module-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 index 266a678..bde8c4a 100644 --- a/modules/module-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.common.constant.OpsHeader.AUTH_HEADER_DEVOPS_BUILD_ID; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.AUTH_HEADER_DEVOPS_BUILD_ID; @RestController diff --git a/modules/module-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 index b8db08a..a2d4ea0 100644 --- a/modules/module-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.common.constant.OpsHeader.*;; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*;; @RestController diff --git a/modules/module-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 index 8a543f1..b979d84 100644 --- a/modules/module-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.common.constant.OpsHeader.*;; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*;; @RestController 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 index c1148ba..73d0fa6 100644 --- 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 @@ -1,6 +1,6 @@ package cd.casic.ci.process.api.engine; -import cd.casic.ci.common.pojo.ErrorInfo; +import cd.casic.ci.common.pipeline.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; @@ -13,7 +13,7 @@ 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.*; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*; /** * @author by mianbin 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 index 3746427..38b55b7 100644 --- 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 @@ -1,9 +1,9 @@ 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.enums.ErrorCode; +import cd.casic.ci.common.pipeline.pojo.ErrorType; 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; 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 index 933736a..82466be 100644 --- 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 @@ -3,7 +3,7 @@ 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.common.pipeline.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; 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 index 7604e34..0d66d85 100644 --- 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 @@ -2,7 +2,7 @@ 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 cd.casic.ci.common.pipeline.pojo.ErrorType; import lombok.AllArgsConstructor; import lombok.Data; import java.time.LocalDateTime; diff --git a/modules/module-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 index 752c8ca..bad8c78 100644 --- a/modules/module-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,7 +1,7 @@ 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.common.pipeline.pojo.ErrorInfo; import cd.casic.ci.process.api.process.pojo.code.WebhookInfo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/module-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 index 5c26497..ec4b9d3 100644 --- a/modules/module-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,7 +1,7 @@ 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.common.pipeline.pojo.ErrorInfo; import cd.casic.ci.process.api.process.pojo.code.WebhookInfo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/modules/module-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 index b8fef95..8113aea 100644 --- a/modules/module-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,7 +1,7 @@ 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.common.pipeline.pojo.BuildEnv; import cd.casic.ci.project.dal.pojo.PipelineAsCodeSettings; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; 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 index d4b9a7a..3752e38 100644 --- 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 @@ -1,6 +1,6 @@ package cd.casic.ci.process.api.process.pojo.app; -import cd.casic.ci.common.constant.StringConstant; +import cd.casic.ci.common.pipeline.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; @@ -26,8 +26,8 @@ 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.common.pipeline.constant.PipelineConstants.PIPELINE_GIT_EVENT_URL; +import static cd.casic.ci.common.pipeline.constant.WebhookConstant.*; import static cd.casic.ci.process.api.process.utils.Constants.*; import static cd.casic.ci.process.api.process.utils.PipelineVarUtil.CONTEXT_PREFIX; diff --git a/modules/module-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 index 1bc3cef..2e90a2b 100644 --- a/modules/module-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,6 +1,6 @@ package cd.casic.ci.process.api.process.pojo.mq; -import cd.casic.ci.common.pojo.Zone; +import cd.casic.ci.common.pipeline.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/pipeline/ModelRecord.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/process/api/process/pojo/pipeline/ModelRecord.java index 58178ef..42b977c 100644 --- 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 @@ -2,7 +2,7 @@ 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.common.pipeline.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; 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 index d301935..f90c164 100644 --- 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 @@ -1,6 +1,6 @@ package cd.casic.ci.process.api.process.pojo.pipeline; -import cd.casic.ci.common.enums.RepoYamlSyncStatusEnum; +import cd.casic.ci.common.pipeline.enums.RepoYamlSyncStatusEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; 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 index dcb6323..08aaf80 100644 --- 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 @@ -1,6 +1,6 @@ package cd.casic.ci.process.api.process.pojo.pipeline; -import cd.casic.ci.common.enums.ScmType; +import cd.casic.ci.common.pipeline.enums.ScmType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; 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 index ae220c5..30dfc8e 100644 --- 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 @@ -2,7 +2,7 @@ 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 cd.casic.ci.common.pipeline.pojo.ErrorInfo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; 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 index 2cc3cf4..5219588 100644 --- 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 @@ -1,6 +1,6 @@ package cd.casic.ci.process.api.process.utils; -import cd.casic.ci.common.constant.HttpStatus; +import cd.casic.ci.common.pipeline.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; 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 index dbeb5ba..18984d6 100644 --- 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 @@ -1,6 +1,6 @@ package cd.casic.ci.process.api.process.utils; -import cd.casic.ci.common.constant.StringConstant; +import cd.casic.ci.common.pipeline.constant.StringConstant; import cd.casic.ci.common.pipeline.enums.BuildFormPropertyType; import cd.casic.ci.common.pipeline.pojo.BuildParameters; import cn.hutool.core.lang.Pair; diff --git a/modules/module-ci-process-biz/pom.xml b/modules/module-ci-process-biz/pom.xml new file mode 100644 index 0000000..9667794 --- /dev/null +++ b/modules/module-ci-process-biz/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + cd.casic.boot + modules + ${revision} + + + cd.casic.pipeline + module-ci-process-biz + + + + cd.casic.boot + module-ci-process-api + + + + \ No newline at end of file diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/Cmd.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/Cmd.java new file mode 100644 index 0000000..7de9c5c --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/Cmd.java @@ -0,0 +1,38 @@ +package cd.casic.ci.process.command; + +/** + * @author by mianbin + * @Classname Cmd + * @Description 定义引擎命令 + * @Date 2025/4/7 19:37 + */ +public interface Cmd { + /** + * 当前[commandContext]上下文能否满足运行条件 + * + * @param commandContext 命令上下文 + * @return 如果满足运行条件返回 true,否则返回 false + */ + boolean canExecute(T commandContext); + + /** + * 本命令[commandContext]上下文执行核心处理逻辑 + * + * @param commandContext 命令上下文 + */ + void execute(T commandContext); + + /** + * 执行总入口,将调用[canExecute]判断是否满足再执行[execute]函数, + * 并将[chain]链式传递[commandContext]继续执行下去 + * + * @param commandContext 命令上下文 + * @param chain 命令链 + */ + default void doExecute(T commandContext, CmdChain chain) { + if (canExecute(commandContext)) { + execute(commandContext); + } + chain.doCommand(commandContext); + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/CmdChain.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/CmdChain.java new file mode 100644 index 0000000..455f7c9 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/CmdChain.java @@ -0,0 +1,35 @@ +package cd.casic.ci.process.command; + +/** + * @author by mianbin + * @Classname CmdChain + * @Description 引擎控制命令链 + * @Date 2025/4/7 19:37 + */ +public interface CmdChain { + + /** + * 使用泛型的命令上下文[commandContext]执行命令 + * [commandContext]具备传递和存储中间数据,由各部件定义 + * + * @param commandContext 命令上下文 + */ + default void doCommand(T commandContext) { + if (commandContext.getCmdFlowSeq() < 0) { // 校正 + commandContext.setCmdFlowSeq(0); + } + // 每次调用,都增1,走向下一条命令链 + Cmd nextCmd = nextCommand(commandContext); + if (nextCmd != null) { + nextCmd.doExecute(commandContext, this); + } + } + + /** + * 获取下一个命令 + * + * @param commandContext 命令上下文 + * @return 下一个命令,如果没有则返回 null + */ + Cmd nextCommand(T commandContext); +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/CmdContext.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/CmdContext.java new file mode 100644 index 0000000..5bd638d --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/command/CmdContext.java @@ -0,0 +1,27 @@ +package cd.casic.ci.process.command; + +import cd.casic.framework.commons.util.watcher.Watcher; +import lombok.Data; + +import java.util.Map; + +/** + * @author by mianbin + * @Classname CmdContext + * @Description 命令上下文基础类 + * @Date 2025/4/7 19:35 + */ +@Data +public class CmdContext { + protected int executeCount; + protected int cmdFlowSeq; + protected final Map variables; + protected final Watcher watcher; + + public CmdContext(int cmdFlowSeq, Map variables, Watcher watcher) { + this.cmdFlowSeq = cmdFlowSeq; + this.executeCount = 1; // 对应 Kotlin 中的初始值 + this.variables = variables; + this.watcher = watcher; + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/BuildJobResourceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/BuildJobResourceImpl.java new file mode 100644 index 0000000..4549299 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/BuildJobResourceImpl.java @@ -0,0 +1,64 @@ +package cd.casic.ci.process.engine; + +import cd.casic.ci.common.pipeline.pojo.JobHeartbeatRequest; +import cd.casic.ci.common.pipeline.pojo.ErrorInfo; +import cd.casic.ci.process.api.engine.BuildJobResource; +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 kotlin.Result; + +/** + * @author by mianbin + * @Classname BuildJobResourceImpl + * @Description TODO + * @Date 2025/4/7 19:01 + */ +public class BuildJobResourceImpl implements BuildJobResource { + @Override + public Result jobStarted(String projectId, String buildId, String vmSeqId, String vmName, String retryCount) { + return null; + } + + @Override + public Result claimTask(String projectId, String buildId, String vmSeqId, String vmName) { + return null; + } + + @Override + public Result completeTask(String projectId, String buildId, String vmSeqId, String vmName, BuildTaskResult result) { + return null; + } + + @Override + public Result jobEnd(String projectId, String buildId, String vmSeqId, String vmName, BuildJobResult result) { + return null; + } + + @Override + public Result jobTimeout(String projectId, String pipelineId, String buildId, String vmSeqId) { + return null; + } + + @Override + public Result jobHeartbeat(String buildId, String vmSeqId, String vmName) { + return null; + } + + @Override + public Result jobHeartbeatV1(String projectId, String buildId, String vmSeqId, String vmName, Integer executeCount, JobHeartbeatRequest jobHeartbeatRequest) { + return null; + } + + @Override + public Result submitError(String projectId, String pipelineId, String buildId, String vmSeqId, ErrorInfo errorInfo) { + return null; + } + + @Override + public Result getBuildDetailUrl(String projectId, String pipelineId, String buildId) { + return null; + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/BuildDetailDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/BuildDetailDao.java new file mode 100644 index 0000000..1d5a53a --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/BuildDetailDao.java @@ -0,0 +1,11 @@ +package cd.casic.ci.process.process.dal; + +/** + * @author by mianbin + * @Classname BuildDetailDao + * @Description TODO + * @Date 2025/4/8 10:14 + */ +public class BuildDetailDao { + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/package-info.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/package-info.java new file mode 100644 index 0000000..2dfd2e1 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/package-info.java @@ -0,0 +1,7 @@ +/** + * @Classname package-info + * @Description TODO + * @Date 2025/4/8 10:14 + * @author by mianbin + */ +package cd.casic.ci.process.process; \ No newline at end of file diff --git a/modules/module-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 index fd43468..1566bf2 100644 --- a/modules/module-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.common.enums.SubjectScopeType; +import cd.casic.ci.common.pipeline.enums.SubjectScopeType; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; diff --git a/modules/module-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 index 2f930be..8399378 100644 --- a/modules/module-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,7 +1,7 @@ package cd.casic.ci.project.service.impl; -import cd.casic.ci.common.constant.BaseConstant; +import cd.casic.ci.common.pipeline.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; diff --git a/modules/module-ci-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 index 989a698..0c5b8d7 100644 --- a/modules/module-ci-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.common.constant.CommonMessageCode; +import cd.casic.ci.common.pipeline.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/module-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 index 65b86d9..686587d 100644 --- a/modules/module-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.common.constant.OpsHeader.AUTH_HEADER_USER_ID; -import static cd.casic.ci.common.constant.OpsHeader.AUTH_HEADER_USER_ID_DEFAULT_VALUE; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.AUTH_HEADER_USER_ID; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.AUTH_HEADER_USER_ID_DEFAULT_VALUE; /** * @Author:mianbin diff --git a/modules/module-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 index 56f8f4c..edfcdbf 100644 --- a/modules/module-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,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import static cd.casic.ci.common.constant.OpsHeader.*; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*; /** diff --git a/modules/module-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 index d28aa24..0a4e6e6 100644 --- a/modules/module-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.common.constant.OpsHeader.*; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*; /** * @Author:mianbin diff --git a/modules/module-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 index e5a210b..ee54467 100644 --- a/modules/module-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.common.constant.OpsHeader.AUTH_HEADER_USER_ID; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.AUTH_HEADER_USER_ID; /** * @Author:mianbin diff --git a/modules/module-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 index f35d1e0..96424f4 100644 --- a/modules/module-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,7 +14,7 @@ import org.springframework.web.bind.annotation.*; import java.security.Permission; -import static cd.casic.ci.common.constant.OpsHeader.*; +import static cd.casic.ci.common.pipeline.constant.OpsHeader.*; @RestController diff --git a/modules/module-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 index 0c64d25..4bddf52 100644 --- a/modules/module-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,7 +12,7 @@ package cd.casic.devops.common.worker.env; -import cd.casic.ci.common.enums.OSType; +import cd.casic.ci.common.pipeline.enums.OSType; import lombok.SneakyThrows; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/modules/pom.xml b/modules/pom.xml index c711789..8160c2c 100644 --- a/modules/pom.xml +++ b/modules/pom.xml @@ -23,9 +23,10 @@ module-ci-ticket module-ci-worker module-ci-environment - module-ci-common module-ci-common-pipeline module-ci-process-api + module-ci-process-biz + module-ci-dispatch-api