监听器类以及接口暂时空置
This commit is contained in:
parent
54b31affb4
commit
19858ca927
1
.gitignore
vendored
1
.gitignore
vendored
@ -40,3 +40,4 @@ target/
|
||||
### VS Code ###
|
||||
.vscode/!/.xcodemap/
|
||||
!/.idea/
|
||||
/.idea/
|
||||
|
@ -15,10 +15,10 @@ import cd.casic.ci.common.pipeline.pojo.event.ProjectPipelineCallBack;
|
||||
|
||||
import cd.casic.ci.common.pipeline.service.utils.LogUtils;
|
||||
import cd.casic.ci.process.api.engine.pojo.PipelineInfo;
|
||||
import cd.casic.ci.process.api.engine.pojo.event.PipelineStreamEnabledEvent;
|
||||
import cd.casic.ci.process.api.process.pojo.ProjectPipelineCallBackHistory;
|
||||
import cd.casic.ci.process.api.process.pojo.pipeline.ModelDetail;
|
||||
import cd.casic.ci.process.process.constant.AllocIdGenerateConstant;
|
||||
import cd.casic.ci.process.process.engine.pojo.event.PipelineStreamEnabledEvent;
|
||||
import cd.casic.ci.process.process.service.base.PipelineBuildDetailServiceImpl;
|
||||
import cd.casic.ci.process.process.service.base.engin.service.PipelineRepositoryService;
|
||||
import cd.casic.ci.process.process.service.base.engin.service.ProjectPipelineCallBackService;
|
||||
@ -184,7 +184,7 @@ public class CallBackControl {
|
||||
event.getUserId(),
|
||||
event.getGitProjectId(),
|
||||
event.getGitProjectUrl(),
|
||||
event.isEnable()
|
||||
event.getEnable()
|
||||
);
|
||||
sendToCallBack(new CallBackData<StreamEnabledEvent>(CallBackEvent.STREAM_ENABLED, streamEnabledEvent), list);
|
||||
}
|
||||
|
@ -1,12 +1,15 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
|
||||
import cd.casic.ci.common.pipeline.service.utils.LogUtils;
|
||||
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.commons.util.watcher.Watcher;
|
||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
||||
import com.github.fppt.jedismock.operations.transactions.Watch;
|
||||
import org.springframework.stereotype.Service;
|
||||
/**
|
||||
* MQ实现的流水线创建事件
|
||||
@ -21,7 +24,43 @@ public class MQPipelineCreateListener extends AbstractRedisStreamMessageListener
|
||||
private AgentPipelineRefService agentPipelineRefService;
|
||||
private RepoPipelineRefService repoPipelineRefService;
|
||||
@Override
|
||||
public void onMessage(PipelineCreateEvent message) {
|
||||
public void onMessage(PipelineCreateEvent event) {
|
||||
String id = String.format("%s|CreatePipeline#%s|%s",
|
||||
event.getTraceId(),event.getPipelineId(),event.getUserId()
|
||||
);
|
||||
Watcher watcher = new Watcher(id);
|
||||
|
||||
watcher.safeAround("callback",()-> {
|
||||
callBackControl.pipelineCreateEvent(event.getProjectId(), event.getPipelineId());
|
||||
});
|
||||
|
||||
watcher.safeAround("updateAtomPipelineNum",()->{
|
||||
pipelineAtomStatisticsService.updateAtomPipelineNum(
|
||||
event.getProjectId(),
|
||||
event.getPipelineId(),
|
||||
event.getVersion()!=null ?event.getVersion(): 1,
|
||||
false,
|
||||
false
|
||||
);
|
||||
});
|
||||
|
||||
watcher.safeAround("updateAgentPipelineRef",()->{
|
||||
agentPipelineRefService.updateAgentPipelineRef(event.getUserId(), "create_pipeline", event.getProjectId(), event.getPipelineId());
|
||||
});
|
||||
|
||||
watcher.safeAround("addWebhook",()-> {
|
||||
pipelineWebhookService.addWebhook(
|
||||
event.getProjectId(),
|
||||
event.getPipelineId(),
|
||||
event.getVersion(),
|
||||
event.getUserId()
|
||||
);
|
||||
});
|
||||
|
||||
watcher.safeAround("savePipelineRefRepository",()->{
|
||||
repoPipelineRefService.updateRepoPipelineRef(event.getUserId(), "create_pipeline", event.getProjectId(), event.getPipelineId());
|
||||
}) ;
|
||||
|
||||
LogUtils.printCostTimeWE(watcher);
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,13 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
|
||||
import cd.casic.ci.common.pipeline.service.utils.LogUtils;
|
||||
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.pojo.event.PipelineDeleteEvent;
|
||||
import cd.casic.ci.process.process.engine.service.*;
|
||||
import cd.casic.framework.commons.util.watcher.Watcher;
|
||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
/**
|
||||
* MQ实现的流水线删除事件
|
||||
@ -11,16 +15,70 @@ import org.springframework.stereotype.Service;
|
||||
* @version 1.0
|
||||
*/
|
||||
@Service
|
||||
public class MQPipelineDeleteListener extends AbstractRedisStreamMessageListener<PipelineCreateEvent> {
|
||||
public class MQPipelineDeleteListener extends AbstractRedisStreamMessageListener<PipelineDeleteEvent> {
|
||||
@Resource
|
||||
private PipelineRuntimeService pipelineRuntimeService;
|
||||
@Resource
|
||||
private PipelineWebhookService pipelineWebhookService;
|
||||
@Resource
|
||||
private PipelineGroupService pipelineGroupService;
|
||||
@Resource
|
||||
private PipelineAtomStatisticsService pipelineAtomStatisticsService;
|
||||
@Resource
|
||||
private CallBackControl callBackControl;
|
||||
@Resource
|
||||
private AgentPipelineRefService agentPipelineRefService;
|
||||
@Resource
|
||||
private RepoPipelineRefService repoPipelineRefService;
|
||||
@Override
|
||||
public void onMessage(PipelineCreateEvent message) {
|
||||
public void onMessage(PipelineDeleteEvent event) {
|
||||
String id = String.format("%s|DeletePipeline#%s|%s}",
|
||||
event.getTraceId(),
|
||||
event.getPipelineId(),
|
||||
event.isClearUpModel());
|
||||
Watcher watcher = new Watcher(id);
|
||||
final String projectId = event.getProjectId();
|
||||
final String pipelineId = event.getPipelineId();
|
||||
final String userId = event.getUserId();
|
||||
|
||||
watcher.safeAround("cancelPendingTask",()->{
|
||||
pipelineRuntimeService.cancelPendingTask(projectId, pipelineId, userId);
|
||||
});
|
||||
|
||||
if (event.isClearUpModel()) {
|
||||
watcher.safeAround("deleteExt",()-> {
|
||||
pipelineGroupService.deleteAllUserFavorByPipeline(userId, projectId, pipelineId); // 删除收藏该流水线上所有记录
|
||||
pipelineGroupService.deletePipelineLabel(userId, projectId, pipelineId);
|
||||
});
|
||||
}
|
||||
|
||||
watcher.safeAround("deleteWebhook",()->{
|
||||
pipelineWebhookService.deleteWebhook(projectId, pipelineId, userId);
|
||||
});
|
||||
|
||||
watcher.safeAround("updateAgentPipelineRef",()->{
|
||||
agentPipelineRefService.updateAgentPipelineRef(userId, "delete_pipeline", projectId, pipelineId);
|
||||
});
|
||||
|
||||
watcher.safeAround("updateAtomPipelineNum",()->{
|
||||
pipelineAtomStatisticsService.updateAtomPipelineNum(
|
||||
event.getProjectId(),
|
||||
event.getPipelineId(),
|
||||
null,
|
||||
true,
|
||||
false
|
||||
);
|
||||
});
|
||||
|
||||
watcher.safeAround("updateAgentPipelineRef",()->{
|
||||
repoPipelineRefService.updateRepoPipelineRef(userId, "delete_pipeline", projectId, pipelineId);
|
||||
});
|
||||
|
||||
watcher.safeAround("callback",
|
||||
()->{
|
||||
callBackControl.pipelineDeleteEvent(event.getProjectId(), event.getPipelineId());
|
||||
});
|
||||
|
||||
LogUtils.printCostTimeWE(watcher);
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,66 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
|
||||
import cd.casic.ci.common.pipeline.service.utils.LogUtils;
|
||||
import cd.casic.ci.process.process.engine.control.CallBackControl;
|
||||
import cd.casic.ci.process.process.engine.pojo.event.PipelineDeleteEvent;
|
||||
import cd.casic.ci.process.process.engine.pojo.event.PipelineRestoreEvent;
|
||||
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.RepoPipelineRefService;
|
||||
import cd.casic.framework.commons.util.watcher.Watcher;
|
||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* MQ实现的流水线恢复事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
public class MQPipelineRestoreListener {
|
||||
@Service
|
||||
public class MQPipelineRestoreListener extends AbstractRedisStreamMessageListener<PipelineRestoreEvent> {
|
||||
@Resource
|
||||
private AgentPipelineRefService agentPipelineRefService;
|
||||
@Resource
|
||||
private PipelineAtomStatisticsService pipelineAtomStatisticsService;
|
||||
@Resource
|
||||
private CallBackControl callBackControl;
|
||||
@Resource
|
||||
private RepoPipelineRefService repoPipelineRefService;
|
||||
|
||||
@Override
|
||||
public void onMessage(PipelineRestoreEvent event) {
|
||||
String id = String.format("%s|RestorePipeline#%s|%s}",
|
||||
event.getTraceId(),
|
||||
event.getPipelineId(),
|
||||
event.getUserId()
|
||||
) ;
|
||||
Watcher watcher = new Watcher(id);
|
||||
try {
|
||||
watcher.start("updateAgentPipelineRef");
|
||||
String userId = event.getUserId();
|
||||
String projectId = event.getProjectId();
|
||||
String pipelineId = event.getPipelineId();
|
||||
Integer version = event.getVersion();
|
||||
agentPipelineRefService.updateAgentPipelineRef(userId, "restore_pipeline", projectId, pipelineId);
|
||||
|
||||
watcher.stop();
|
||||
watcher.start("updateAtomPipelineNum");
|
||||
pipelineAtomStatisticsService.updateAtomPipelineNum(
|
||||
projectId,
|
||||
pipelineId,
|
||||
version,
|
||||
false,
|
||||
true
|
||||
);
|
||||
watcher.stop();
|
||||
watcher.start("callback");
|
||||
callBackControl.pipelineRestoreEvent(projectId, pipelineId);
|
||||
repoPipelineRefService.updateRepoPipelineRef(userId, "restore_pipeline", projectId, pipelineId);
|
||||
|
||||
} finally {
|
||||
watcher.stop();
|
||||
LogUtils.printCostTimeWE(watcher);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,41 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
|
||||
import cd.casic.ci.common.pipeline.service.utils.LogUtils;
|
||||
import cd.casic.ci.process.process.engine.control.CallBackControl;
|
||||
import cd.casic.ci.process.process.engine.pojo.event.PipelineRestoreEvent;
|
||||
import cd.casic.ci.process.process.engine.pojo.event.PipelineStreamEnabledEvent;
|
||||
import cd.casic.framework.commons.util.watcher.Watcher;
|
||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* MQ实现的流水线开启Stream事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
public class MQPipelineStreamEnabledListener {
|
||||
@Service
|
||||
public class MQPipelineStreamEnabledListener extends AbstractRedisStreamMessageListener<PipelineStreamEnabledEvent> {
|
||||
@Resource
|
||||
private CallBackControl callBackControl;
|
||||
|
||||
@Override
|
||||
public void onMessage(PipelineStreamEnabledEvent event) {
|
||||
String id = String.format("%s|RestorePipeline#%s|%s}",
|
||||
event.getTraceId(),
|
||||
event.getPipelineId(),
|
||||
event.getUserId()
|
||||
) ;
|
||||
Watcher watcher =new Watcher(id);
|
||||
try {
|
||||
watcher.start("callback");
|
||||
callBackControl.pipelineStreamEnabledEvent(
|
||||
event
|
||||
);
|
||||
watcher.stop();
|
||||
} finally {
|
||||
watcher.stop();
|
||||
LogUtils.printCostTimeWE(watcher);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,69 @@
|
||||
package cd.casic.ci.process.process.engine.listener;
|
||||
|
||||
import cd.casic.ci.common.pipeline.service.utils.LogUtils;
|
||||
import cd.casic.ci.process.process.engine.control.CallBackControl;
|
||||
import cd.casic.ci.process.process.engine.pojo.event.PipelineUpdateEvent;
|
||||
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.commons.util.watcher.Watcher;
|
||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* MQ实现的流水线更新事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
public class MQPipelineUpdateListener {
|
||||
@Service
|
||||
public class MQPipelineUpdateListener extends AbstractRedisStreamMessageListener<PipelineUpdateEvent> {
|
||||
private PipelineAtomStatisticsService pipelineAtomStatisticsService;
|
||||
private CallBackControl callBackControl;
|
||||
private AgentPipelineRefService agentPipelineRefService;
|
||||
private PipelineWebhookService pipelineWebhookService;
|
||||
private RepoPipelineRefService repoPipelineRefService;
|
||||
|
||||
@Override
|
||||
public void onMessage(PipelineUpdateEvent event) {
|
||||
String id = String.format("%s|RestorePipeline#%s|%s}",
|
||||
event.getTraceId(),
|
||||
event.getPipelineId(),
|
||||
event.getUserId()
|
||||
) ;
|
||||
Watcher watcher = new Watcher(id);
|
||||
final String projectId = event.getProjectId();
|
||||
final String pipelineId = event.getPipelineId();
|
||||
final String userId = event.getUserId();
|
||||
final Integer version = event.getVersion();
|
||||
|
||||
watcher.safeAround("callback",()->{
|
||||
callBackControl.pipelineUpdateEvent(projectId, pipelineId);
|
||||
});
|
||||
|
||||
watcher.safeAround("updateAgentPipelineRef",()->{
|
||||
agentPipelineRefService.updateAgentPipelineRef(userId, "update_pipeline", projectId, pipelineId);
|
||||
});
|
||||
|
||||
watcher.safeAround("updateAtomPipelineNum",()->{
|
||||
pipelineAtomStatisticsService.updateAtomPipelineNum(projectId,pipelineId, version,false,false);
|
||||
});
|
||||
|
||||
watcher.safeAround("addWebhook",()->{
|
||||
pipelineWebhookService.addWebhook(
|
||||
projectId ,
|
||||
pipelineId ,
|
||||
version ,
|
||||
userId
|
||||
);
|
||||
});
|
||||
|
||||
watcher.safeAround("updateAgentPipelineRef",()->{
|
||||
|
||||
repoPipelineRefService.updateRepoPipelineRef(userId, "update_pipeline", projectId, pipelineId);
|
||||
|
||||
});
|
||||
|
||||
LogUtils.printCostTimeWE(watcher);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,56 @@
|
||||
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
|
||||
*/
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* 删除流水线事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
@Getter
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
//@Event(StreamBinding.PIPELINE_DELETE)
|
||||
public class PipelineDeleteEvent extends IPipelineEvent {
|
||||
|
||||
private final boolean clearUpModel;
|
||||
|
||||
public PipelineDeleteEvent(
|
||||
String source,
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String userId,
|
||||
boolean clearUpModel
|
||||
) {
|
||||
this(source, projectId, pipelineId, userId, clearUpModel, ActionType.START, 0);
|
||||
}
|
||||
|
||||
public PipelineDeleteEvent(
|
||||
String source,
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String userId,
|
||||
boolean clearUpModel,
|
||||
ActionType actionType,
|
||||
int delayMills
|
||||
) {
|
||||
super(actionType, source, projectId, pipelineId, userId, delayMills);
|
||||
this.clearUpModel = clearUpModel;
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package cd.casic.ci.process.process.engine.pojo.event;
|
||||
|
||||
import cd.casic.ci.event.pojo.pipeline.IPipelineEvent;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class PipelineRestoreEvent extends IPipelineEvent {
|
||||
private Integer version;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package cd.casic.ci.process.process.engine.pojo.event;
|
||||
|
||||
import cd.casic.ci.event.pojo.pipeline.IPipelineEvent;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class PipelineStreamEnabledEvent extends IPipelineEvent {
|
||||
private Long gitProjectId;
|
||||
private String gitProjectUrl;
|
||||
private Boolean enable;
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package cd.casic.ci.process.process.engine.pojo.event;
|
||||
|
||||
import cd.casic.ci.common.pipeline.pojo.BuildNo;
|
||||
import cd.casic.ci.event.pojo.pipeline.IPipelineEvent;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
/**
|
||||
* 更新流水线事件
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class PipelineUpdateEvent extends IPipelineEvent {
|
||||
private Integer version;
|
||||
private BuildNo buildNo;
|
||||
}
|
@ -1,4 +1,46 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
|
||||
import cd.casic.ci.common.pipeline.Model;
|
||||
|
||||
/**
|
||||
* 构建机流水线引用服务接口
|
||||
*/
|
||||
public interface AgentPipelineRefService {
|
||||
|
||||
/**
|
||||
* 更新构建机流水线引用
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param action 操作类型
|
||||
* @param projectId 项目ID
|
||||
* @param pipelineId 流水线ID
|
||||
*/
|
||||
void updateAgentPipelineRef(String userId, String action, String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 分析流水线引用并保存
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param action 操作类型
|
||||
* @param projectId 项目ID
|
||||
* @param pipelineId 流水线ID
|
||||
* @param pipelineModel 流水线模型
|
||||
*/
|
||||
void analysisPipelineRefAndSave(
|
||||
String userId,
|
||||
String action,
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Model pipelineModel
|
||||
);
|
||||
|
||||
/**
|
||||
* 更新流水线引用
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param projectId 项目ID
|
||||
* @param pipelineId 流水线ID
|
||||
*/
|
||||
void updatePipelineRef(String userId, String projectId, String pipelineId);
|
||||
}
|
||||
|
@ -1,4 +1,114 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
import cd.casic.ci.process.api.process.pojo.classify.*;
|
||||
import cd.casic.ci.process.process.dataObject.TPipelineFavorRecord;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 流水线分组服务接口
|
||||
*/
|
||||
public interface PipelineGroupService {
|
||||
|
||||
/**
|
||||
* 获取分组列表
|
||||
*/
|
||||
List<PipelineGroup> getGroups(String userId, String projectId);
|
||||
|
||||
/**
|
||||
* 获取指定流水线的分组列表
|
||||
*/
|
||||
List<PipelineGroupWithLabels> getGroups(String userId, String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 添加分组
|
||||
*/
|
||||
Boolean addGroup(String userId, PipelineGroupCreate pipelineGroup);
|
||||
|
||||
/**
|
||||
* 更新分组
|
||||
*/
|
||||
Boolean updateGroup(String userId, PipelineGroupUpdate pipelineGroup);
|
||||
|
||||
/**
|
||||
* 删除分组
|
||||
*/
|
||||
Boolean deleteGroup(String userId, String projectId, String groupId);
|
||||
|
||||
/**
|
||||
* 添加标签
|
||||
*/
|
||||
Boolean addLabel(String userId, String projectId, PipelineLabelCreate pipelineLabel);
|
||||
|
||||
/**
|
||||
* 删除标签
|
||||
*/
|
||||
Boolean deleteLabel(String userId, String projectId, String labelId);
|
||||
|
||||
/**
|
||||
* 更新标签
|
||||
*/
|
||||
Boolean updateLabel(String userId, String projectId, PipelineLabelUpdate pipelineLabel);
|
||||
|
||||
/**
|
||||
* 删除流水线标签
|
||||
*/
|
||||
void deletePipelineLabel(String userId, String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 添加流水线标签
|
||||
*/
|
||||
void addPipelineLabel(String userId, String projectId, String pipelineId, List<String> labelIds);
|
||||
|
||||
/**
|
||||
* 更新流水线标签
|
||||
*/
|
||||
void updatePipelineLabel(String userId, String projectId, String pipelineId, List<String> labelIds);
|
||||
|
||||
/**
|
||||
* 获取视图标签到流水线的映射
|
||||
*/
|
||||
Map<String, List<String>> getViewLabelToPipelinesMap(
|
||||
String projectId,
|
||||
List<String> labels
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取分组到标签的映射
|
||||
*/
|
||||
Map<String, List<String>> getGroupToLabelsMap(String projectId, List<String> labels);
|
||||
|
||||
/**
|
||||
* 收藏流水线
|
||||
*/
|
||||
Boolean favorPipeline(String userId, String projectId, String pipelineId, Boolean favor);
|
||||
|
||||
/**
|
||||
* 删除流水线相关的所有收藏
|
||||
*/
|
||||
Integer deleteAllUserFavorByPipeline(String userId, String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 获取收藏的流水线列表
|
||||
*/
|
||||
List<String> getFavorPipelines(String userId, String projectId);
|
||||
|
||||
/**
|
||||
* 获取流水线分组标签
|
||||
*/
|
||||
Map<String, List<PipelineGroupLabels>> getPipelinesGroupLabel(
|
||||
Collection<String> pipelineIds,
|
||||
String projectId
|
||||
);
|
||||
|
||||
/**
|
||||
* 分页获取收藏的流水线
|
||||
*/
|
||||
TPipelineFavorRecord getFavorPipelinesPage(
|
||||
String userId,
|
||||
Integer page,
|
||||
Integer pageSize
|
||||
);
|
||||
}
|
||||
|
@ -1,4 +1,425 @@
|
||||
package cd.casic.ci.process.process.engine.service;
|
||||
|
||||
import cd.casic.ci.common.pipeline.Model;
|
||||
import cd.casic.ci.common.pipeline.enums.BuildStatus;
|
||||
import cd.casic.ci.common.pipeline.enums.ChannelCode;
|
||||
import cd.casic.ci.common.pipeline.enums.StartType;
|
||||
import cd.casic.ci.common.pipeline.pojo.BuildParameters;
|
||||
import cd.casic.ci.common.pipeline.pojo.ErrorInfo;
|
||||
import cd.casic.ci.common.pipeline.pojo.time.BuildRecordTimeCost;
|
||||
import cd.casic.ci.process.api.engine.pojo.BuildInfo;
|
||||
import cd.casic.ci.process.api.process.enums.HistorySearchType;
|
||||
import cd.casic.ci.process.api.process.pojo.*;
|
||||
import cd.casic.ci.process.api.process.pojo.app.StartBuildContext;
|
||||
import cd.casic.ci.process.api.process.pojo.pipeline.PipelineLatestBuild;
|
||||
import cd.casic.ci.process.process.dataObject.TPipelineBuildSummaryRecord;
|
||||
import cd.casic.ci.process.process.dataObject.TPipelineInfoRecord;
|
||||
import cd.casic.ci.process.process.pojo.LatestRunningBuild;
|
||||
import cd.casic.ci.process.process.pojo.PipelineFilterParam;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 流水线运行时相关的服务接口
|
||||
*/
|
||||
public interface PipelineRuntimeService {
|
||||
|
||||
/**
|
||||
* 取消待处理的任务
|
||||
*/
|
||||
void cancelPendingTask(String projectId, String pipelineId, String userId);
|
||||
|
||||
/**
|
||||
* 获取构建信息
|
||||
*/
|
||||
BuildInfo getBuildInfo(String projectId, String buildId);
|
||||
|
||||
/**
|
||||
* 获取构建信息
|
||||
*/
|
||||
BuildInfo getBuildInfo(String projectId, String pipelineId, String buildId);
|
||||
|
||||
/**
|
||||
* 获取运行中的构建数量
|
||||
*/
|
||||
int getRunningBuildCount(String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 根据并发组获取构建列表
|
||||
*/
|
||||
List<Pair<String, String>> getBuildInfoListByConcurrencyGroup(
|
||||
String projectId,
|
||||
String concurrencyGroup,
|
||||
List<BuildStatus> status
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取构建号
|
||||
*/
|
||||
Map<String, String> getBuildNoByByPair(Set<String> buildIds, String projectId);
|
||||
|
||||
/**
|
||||
* 获取构建摘要记录
|
||||
*/
|
||||
TPipelineBuildSummaryRecord getBuildSummaryRecord(String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 获取流水线构建记录
|
||||
*/
|
||||
TPipelineInfoRecord getBuildPipelineRecords(
|
||||
String projectId,
|
||||
ChannelCode channelCode,
|
||||
Collection<String> pipelineIds,
|
||||
PipelineSortType sortType,
|
||||
List<String> favorPipelines,
|
||||
List<String> authPipelines,
|
||||
String viewId,
|
||||
List<PipelineFilterParam> pipelineFilterParamList,
|
||||
Boolean permissionFlag,
|
||||
Integer page,
|
||||
Integer pageSize
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取最新构建
|
||||
*/
|
||||
Map<String, PipelineLatestBuild> getLatestBuild(String projectId, List<String> pipelineIds);
|
||||
|
||||
/**
|
||||
* 获取流水线构建历史
|
||||
*/
|
||||
List<BuildHistory> listPipelineBuildHistory(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
int offset,
|
||||
int limit,
|
||||
Boolean updateTimeDesc
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取流水线构建历史
|
||||
*/
|
||||
List<BuildHistory> listPipelineBuildHistory(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
int offset,
|
||||
int limit,
|
||||
List<String> materialAlias,
|
||||
String materialUrl,
|
||||
List<String> materialBranch,
|
||||
String materialCommitId,
|
||||
String materialCommitMessage,
|
||||
List<BuildStatus> status,
|
||||
List<StartType> trigger,
|
||||
Long queueTimeStartTime,
|
||||
Long queueTimeEndTime,
|
||||
Long startTimeStartTime,
|
||||
Long startTimeEndTime,
|
||||
Long endTimeStartTime,
|
||||
Long endTimeEndTime,
|
||||
Long totalTimeMin,
|
||||
Long totalTimeMax,
|
||||
String remark,
|
||||
Integer buildNoStart,
|
||||
Integer buildNoEnd,
|
||||
String buildMsg,
|
||||
List<String> startUser,
|
||||
Boolean updateTimeDesc,
|
||||
Boolean debug,
|
||||
List<String> triggerAlias,
|
||||
List<String> triggerBranch,
|
||||
List<String> triggerUser
|
||||
);
|
||||
|
||||
/**
|
||||
* 更新构建备注
|
||||
*/
|
||||
void updateBuildRemark(String projectId, String pipelineId, String buildId, String remark);
|
||||
|
||||
/**
|
||||
* 获取历史条件仓库
|
||||
*/
|
||||
List<String> getHistoryConditionRepo(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Integer debugVersion,
|
||||
String search,
|
||||
HistorySearchType type
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取历史条件分支
|
||||
*/
|
||||
List<String> getHistoryConditionBranch(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
List<String> aliasList,
|
||||
Integer debugVersion,
|
||||
String search,
|
||||
HistorySearchType type
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取构建历史
|
||||
*/
|
||||
BuildHistory getBuildHistoryByBuildNum(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Integer buildNum,
|
||||
Set<BuildStatus> statusSet,
|
||||
Boolean debug
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取构建基本信息
|
||||
*/
|
||||
Map<String, BuildBasicInfo> getBuildBasicInfoByIds(Set<String> buildIds);
|
||||
|
||||
/**
|
||||
* 获取构建历史
|
||||
*/
|
||||
BuildHistory getBuildHistoryById(String projectId, String buildId);
|
||||
|
||||
/**
|
||||
* 获取启动用户
|
||||
*/
|
||||
String getStartUser(String projectId, String buildId);
|
||||
|
||||
/**
|
||||
* 获取构建历史
|
||||
*/
|
||||
List<BuildHistory> getBuildHistoryByIds(
|
||||
Set<String> buildIds,
|
||||
String startBeginTime,
|
||||
String endBeginTime,
|
||||
String projectId
|
||||
);
|
||||
|
||||
/**
|
||||
* 取消构建
|
||||
*/
|
||||
Boolean cancelBuild(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String buildId,
|
||||
String userId,
|
||||
int executeCount,
|
||||
BuildStatus buildStatus,
|
||||
Boolean terminateFlag
|
||||
);
|
||||
|
||||
/**
|
||||
* 开始构建
|
||||
*/
|
||||
BuildId startBuild(Model fullModel, StartBuildContext context);
|
||||
|
||||
/**
|
||||
* 更新构建号
|
||||
*/
|
||||
void updateBuildNo(String projectId, String pipelineId, int buildNo, Boolean debug);
|
||||
|
||||
/**
|
||||
* 更新执行次数
|
||||
*/
|
||||
void updateExecuteCount(String projectId, String buildId, int executeCount);
|
||||
|
||||
/**
|
||||
* 开始最新运行构建
|
||||
*/
|
||||
void startLatestRunningBuild(LatestRunningBuild latestRunningBuild);
|
||||
|
||||
/**
|
||||
* 完成最新运行构建
|
||||
*/
|
||||
void finishLatestRunningBuild(
|
||||
LatestRunningBuild latestRunningBuild,
|
||||
BuildStatus currentBuildStatus,
|
||||
List<ErrorInfo> errorInfoList,
|
||||
BuildRecordTimeCost timeCost
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取构建参数
|
||||
*/
|
||||
List<BuildParameters> getBuildParametersFromStartup(
|
||||
String projectId,
|
||||
String buildId
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取执行时间
|
||||
*/
|
||||
Long getExecuteTime(String projectId, String buildId);
|
||||
|
||||
/**
|
||||
* 获取上次构建
|
||||
*/
|
||||
BuildInfo getLastTimeBuild(String projectId, String pipelineId, Boolean debug);
|
||||
|
||||
/**
|
||||
* 获取流水线构建历史数量
|
||||
*/
|
||||
int getPipelineBuildHistoryCount(String projectId, String pipelineId, Integer debugVersion);
|
||||
|
||||
/**
|
||||
* 获取构建
|
||||
*/
|
||||
List<String> getBuilds(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Set<BuildStatus> buildStatus,
|
||||
Integer debugVersion
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取流水线构建历史数量
|
||||
*/
|
||||
int getPipelineBuildHistoryCount(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
List<String> materialAlias,
|
||||
String materialUrl,
|
||||
List<String> materialBranch,
|
||||
String materialCommitId,
|
||||
String materialCommitMessage,
|
||||
List<BuildStatus> status,
|
||||
List<StartType> trigger,
|
||||
Long queueTimeStartTime,
|
||||
Long queueTimeEndTime,
|
||||
Long startTimeStartTime,
|
||||
Long startTimeEndTime,
|
||||
Long endTimeStartTime,
|
||||
Long endTimeEndTime,
|
||||
Long totalTimeMin,
|
||||
Long totalTimeMax,
|
||||
String remark,
|
||||
Integer buildNoStart,
|
||||
Integer buildNoEnd,
|
||||
String buildMsg,
|
||||
List<String> startUser,
|
||||
Boolean debug,
|
||||
List<String> triggerAlias,
|
||||
List<String> triggerBranch,
|
||||
List<String> triggerUser
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取总构建历史数量
|
||||
*/
|
||||
int getTotalBuildHistoryCount(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
List<BuildStatus> status,
|
||||
Long startTimeEndTime
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取所有构建号
|
||||
*/
|
||||
Collection<Integer> getAllBuildNum(String projectId, String pipelineId, Integer debugVersion);
|
||||
|
||||
/**
|
||||
* 获取最新构建ID
|
||||
*/
|
||||
String getLatestBuildId(String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 获取最新完成构建ID
|
||||
*/
|
||||
String getLatestFinishedBuildId(String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 获取最新成功构建ID
|
||||
*/
|
||||
String getLatestSucceededBuildId(String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 获取最新失败构建ID
|
||||
*/
|
||||
String getLatestFailedBuildId(String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 根据构建号获取构建ID
|
||||
*/
|
||||
String getBuildIdByBuildNum(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
int buildNum,
|
||||
Integer debugVersion
|
||||
);
|
||||
|
||||
/**
|
||||
* 更新构建信息状态为排队
|
||||
*/
|
||||
void updateBuildInfoStatus2Queue(String projectId, String buildId, BuildStatus oldStatus, String showMsg);
|
||||
|
||||
/**
|
||||
* 更新制品列表
|
||||
*/
|
||||
Boolean updateArtifactList(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String buildId,
|
||||
String artifactListJsonString
|
||||
);
|
||||
|
||||
/**
|
||||
* 更新构建历史阶段状态
|
||||
*/
|
||||
void updateBuildHistoryStageState(String projectId, String buildId, List<BuildStageStatus> allStageStatus);
|
||||
|
||||
/**
|
||||
* 更新推荐版本
|
||||
*/
|
||||
void updateRecommendVersion(String projectId, String buildId, String recommendVersion);
|
||||
|
||||
/**
|
||||
* 更新构建参数
|
||||
*/
|
||||
Boolean updateBuildParameters(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String buildId,
|
||||
Collection<BuildParameters> buildParameters,
|
||||
Boolean debug
|
||||
);
|
||||
|
||||
/**
|
||||
* 并发取消构建流水线
|
||||
*/
|
||||
void concurrencyCancelBuildPipeline(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String buildId,
|
||||
String userId,
|
||||
String groupName,
|
||||
String detailUrl
|
||||
);
|
||||
|
||||
/**
|
||||
* 更新异步状态
|
||||
*/
|
||||
void updateAsyncStatus(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String buildId,
|
||||
String taskId,
|
||||
int executeCount,
|
||||
String asyncStatus
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取构建变量服务
|
||||
*/
|
||||
Map<String, String> getBuildVariableService(
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
String buildId,
|
||||
Set<String> keys
|
||||
);
|
||||
}
|
||||
|
@ -1,4 +1,78 @@
|
||||
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.pojo.element.Element;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 流水线代码库使用服务接口
|
||||
* @version 1.0
|
||||
*/
|
||||
public interface RepoPipelineRefService {
|
||||
|
||||
/**
|
||||
* 更新代码库流水线引用
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param action 操作类型
|
||||
* @param projectId 项目ID
|
||||
* @param pipelineId 流水线ID
|
||||
*/
|
||||
void updateRepoPipelineRef(String userId, String action, String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 更新流水线引用
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param projectId 项目ID
|
||||
* @param pipelineId 流水线ID
|
||||
*/
|
||||
void updatePipelineRef(String userId, String projectId, String pipelineId);
|
||||
|
||||
/**
|
||||
* 更新所有流水线引用
|
||||
*
|
||||
* @param projectId 项目ID,可为空
|
||||
*/
|
||||
void updateAllPipelineRef(String projectId);
|
||||
|
||||
/**
|
||||
* 分析流水线引用并保存
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param action 操作类型
|
||||
* @param projectId 项目ID
|
||||
* @param pipelineId 流水线ID
|
||||
* @param model 流水线模型
|
||||
* @param channel 渠道
|
||||
*/
|
||||
void analysisPipelineRefAndSave(
|
||||
String userId,
|
||||
String action,
|
||||
String projectId,
|
||||
String pipelineId,
|
||||
Model model,
|
||||
String channel
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取任务参数
|
||||
*
|
||||
* @param element 元素
|
||||
* @return 任务参数Map
|
||||
*/
|
||||
Map<String, Object> getTaskParams(Element element);
|
||||
|
||||
/**
|
||||
* 获取市场构建代码库配置
|
||||
*
|
||||
* @param input 输入参数
|
||||
* @param variables 变量Map
|
||||
* @return 代码库配置
|
||||
*/
|
||||
RepositoryConfig getMarketBuildRepoConfig(Map<?, ?> input, Map<String, String> variables);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user