监听器类
This commit is contained in:
parent
b8e6b45a65
commit
d22268f9a5
@ -20,6 +20,10 @@
|
||||
<groupId>cd.casic.boot</groupId>
|
||||
<artifactId>module-ci-common-pipeline</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cd.casic.boot</groupId>
|
||||
<artifactId>spring-boot-starter-mq</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -1,5 +1,6 @@
|
||||
package cd.casic.ci.event.pojo;
|
||||
|
||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessage;
|
||||
import com.mysql.cj.MessageBuilder;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
@ -19,7 +20,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class IEvent {
|
||||
public class IEvent extends AbstractRedisStreamMessage {
|
||||
|
||||
private int delayMills = 0;
|
||||
private int retryTime = 1;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cd.casic.ci.process.process.callback.listener;
|
||||
|
||||
|
||||
import cd.casic.ci.process.engine.control.CallBackControl;
|
||||
import cd.casic.ci.process.process.engine.control.CallBackControl;
|
||||
import cd.casic.ci.project.dal.pojo.ProjectCreateInfo;
|
||||
import cd.casic.ci.project.dal.pojo.ProjectVO;
|
||||
import cd.casic.ci.project.pojo.ProjectUpdateInfo;
|
||||
@ -14,7 +14,6 @@ import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListene
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
|
@ -1,4 +1,4 @@
|
||||
package cd.casic.ci.process.engine.control;
|
||||
package cd.casic.ci.process.process.engine.control;
|
||||
|
||||
|
||||
import cd.casic.ci.common.pipeline.Model;
|
@ -0,0 +1,27 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
|
||||
import cd.casic.ci.process.process.engine.control.CallBackControl;
|
||||
import cd.casic.ci.process.process.engine.pojo.event.PipelineCreateEvent;
|
||||
import cd.casic.ci.process.process.engine.service.AgentPipelineRefService;
|
||||
import cd.casic.ci.process.process.engine.service.PipelineAtomStatisticsService;
|
||||
import cd.casic.ci.process.process.engine.service.PipelineWebhookService;
|
||||
import cd.casic.ci.process.process.engine.service.RepoPipelineRefService;
|
||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
/**
|
||||
* MQ实现的流水线创建事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
@Service
|
||||
public class MQPipelineCreateListener extends AbstractRedisStreamMessageListener<PipelineCreateEvent> {
|
||||
private PipelineWebhookService pipelineWebhookService;
|
||||
private PipelineAtomStatisticsService pipelineAtomStatisticsService;
|
||||
private CallBackControl callBackControl;
|
||||
private AgentPipelineRefService agentPipelineRefService;
|
||||
private RepoPipelineRefService repoPipelineRefService;
|
||||
@Override
|
||||
public void onMessage(PipelineCreateEvent message) {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
|
||||
import cd.casic.ci.process.process.engine.control.CallBackControl;
|
||||
import cd.casic.ci.process.process.engine.pojo.event.PipelineCreateEvent;
|
||||
import cd.casic.ci.process.process.engine.service.*;
|
||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
/**
|
||||
* MQ实现的流水线删除事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
@Service
|
||||
public class MQPipelineDeleteListener extends AbstractRedisStreamMessageListener<PipelineCreateEvent> {
|
||||
private PipelineRuntimeService pipelineRuntimeService;
|
||||
private PipelineWebhookService pipelineWebhookService;
|
||||
private PipelineGroupService pipelineGroupService;
|
||||
private PipelineAtomStatisticsService pipelineAtomStatisticsService;
|
||||
private CallBackControl callBackControl;
|
||||
private AgentPipelineRefService agentPipelineRefService;
|
||||
private RepoPipelineRefService repoPipelineRefService;
|
||||
@Override
|
||||
public void onMessage(PipelineCreateEvent message) {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
/**
|
||||
* MQ实现的流水线恢复事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
public class MQPipelineRestoreListener {
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
/**
|
||||
* MQ实现的流水线开启Stream事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
public class MQPipelineStreamEnabledListener {
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
/**
|
||||
* MQ实现的流水线更新事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
public class MQPipelineUpdateListener {
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
package cd.casic.ci.process.process.engine.pojo.event;
|
||||
|
||||
|
||||
|
||||
|
||||
import cd.casic.ci.common.pipeline.pojo.BuildNo;
|
||||
import cd.casic.ci.common.pipeline.pojo.element.Element;
|
||||
import cd.casic.ci.event.enums.ActionType;
|
||||
import cd.casic.ci.event.pojo.pipeline.IPipelineEvent;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 创建流水线事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class PipelineCreateEvent extends IPipelineEvent {
|
||||
|
||||
private BuildNo buildNo;
|
||||
private String pipelineName;
|
||||
private Element element;
|
||||
private Integer version;
|
||||
private Map<String, Object> variables;
|
||||
|
||||
public PipelineCreateEvent(
|
||||
String source,
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String userId,
|
||||
BuildNo buildNo,
|
||||
String pipelineName,
|
||||
Element element,
|
||||
Integer version,
|
||||
Map<String, Object> variables,
|
||||
ActionType actionType,
|
||||
int delayMills
|
||||
) {
|
||||
super(actionType, source, projectId, pipelineId, userId, delayMills);
|
||||
this.buildNo = buildNo;
|
||||
this.pipelineName = pipelineName;
|
||||
this.element = element;
|
||||
this.version = version;
|
||||
this.variables = variables;
|
||||
}
|
||||
|
||||
public PipelineCreateEvent(
|
||||
String source,
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String userId
|
||||
) {
|
||||
this(source, projectId, pipelineId, userId, null, null, null, 1, null, ActionType.START, 0);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
public interface AgentPipelineRefService {
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 流水线插件统计相关的服务
|
||||
* @version 1.0
|
||||
*/
|
||||
public interface PipelineAtomStatisticsService {
|
||||
|
||||
/**
|
||||
* 更新插件对应的流水线数量
|
||||
*/
|
||||
void updateAtomPipelineNum(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Integer version,
|
||||
Boolean deleteFlag,
|
||||
Boolean restoreFlag
|
||||
);
|
||||
|
||||
/**
|
||||
* 添加流水线数量更新
|
||||
*/
|
||||
void addPipelineNumUpdate(
|
||||
Set<String> modelVersionAtomSet,
|
||||
// List<StoreStatisticPipelineNumUpdate> pipelineNumUpdateList,
|
||||
Boolean incrementFlag
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取版本模型字符串
|
||||
*/
|
||||
String getVersionModelString(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Integer version
|
||||
);
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
public interface PipelineGroupService {
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
public interface PipelineRuntimeService {
|
||||
}
|
@ -0,0 +1,118 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
|
||||
import cd.casic.ci.common.pipeline.Model;
|
||||
import cd.casic.ci.common.pipeline.enums.RepositoryConfig;
|
||||
import cd.casic.ci.common.pipeline.enums.ScmType;
|
||||
import cd.casic.ci.common.pipeline.pojo.element.trigger.enums.CodeEventType;
|
||||
import cd.casic.ci.log.scm.dal.pojo.Repository;
|
||||
import cd.casic.ci.process.api.process.pojo.webhook.PipelineWebhook;
|
||||
import cd.casic.ci.process.api.process.pojo.webhook.WebhookTriggerPipeline;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 流水线Webhook服务接口
|
||||
*/
|
||||
public interface PipelineWebhookService {
|
||||
|
||||
/**
|
||||
* 添加Webhook
|
||||
*/
|
||||
void addWebhook(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Integer version,
|
||||
String userId
|
||||
);
|
||||
|
||||
/**
|
||||
* 注册Webhook
|
||||
*/
|
||||
Repository registerWebhook(
|
||||
String projectId,
|
||||
ScmType scmType,
|
||||
RepositoryConfig repositoryConfig,
|
||||
CodeEventType codeEventType,
|
||||
String elementVersion
|
||||
);
|
||||
|
||||
/**
|
||||
* 删除Webhook
|
||||
*/
|
||||
Boolean deleteWebhook(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String userId
|
||||
);
|
||||
|
||||
/**
|
||||
* 删除指定任务的Webhook
|
||||
*/
|
||||
Boolean deleteWebhook(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String taskId,
|
||||
String userId
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取模型
|
||||
*/
|
||||
Model getModel(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Integer version
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取触发流水线列表
|
||||
*/
|
||||
List<WebhookTriggerPipeline> getTriggerPipelines(
|
||||
String name,
|
||||
ScmType repositoryType,
|
||||
List<String> yamlPipelineIds
|
||||
);
|
||||
|
||||
/**
|
||||
* 列出触发流水线
|
||||
*/
|
||||
List<WebhookTriggerPipeline> listTriggerPipeline(
|
||||
String projectId,
|
||||
String repositoryHashId,
|
||||
String eventType
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取项目名称
|
||||
*/
|
||||
String getProjectName(String projectName);
|
||||
|
||||
/**
|
||||
* 获取外部名称
|
||||
*/
|
||||
String getExternalName(ScmType scmType, String projectName);
|
||||
|
||||
/**
|
||||
* 列出Webhook
|
||||
*/
|
||||
List<PipelineWebhook> listWebhook(
|
||||
String userId,
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Integer page,
|
||||
Integer pageSize
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取Webhook
|
||||
*/
|
||||
PipelineWebhook get(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String repositoryHashId,
|
||||
String eventType
|
||||
);
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
public interface RepoPipelineRefService {
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user