流水线执行修改,bug修复
This commit is contained in:
parent
13943cd7e2
commit
ac2ed85474
@ -0,0 +1,19 @@
|
||||
package cd.casic.ci.api;
|
||||
|
||||
import cd.casic.ci.process.util.CryptogramUtil;
|
||||
import cd.casic.ci.process.util.SftpUploadUtil;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController("/test")
|
||||
public class TestController {
|
||||
@PostMapping("/upload")
|
||||
public void uploadTest(){
|
||||
|
||||
try {
|
||||
SftpUploadUtil.uploadFileViaSftp("175.6.27.228",22,"hnidc", CryptogramUtil.doDecrypt("cb2ee50ff663312808773f1698b801d2f9d6073f9684473e090767edbc2dba93"),null,"/ops/ops-pro/ops-server.jar","/home/casic/706/ai_test_527","ops-server.jar");
|
||||
} catch (SftpUploadUtil.SftpUploadException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
@ -53,16 +53,12 @@ public class ParallelDispatcher implements BaseDispatcher{
|
||||
}
|
||||
// 等待当前阶段执行
|
||||
latch.await();
|
||||
// TODO 检查是否全部执行成功 ,目前没有逻辑就是忽略错误
|
||||
// 当前执行失败
|
||||
if (pipelineRunContext.getState().get()== ContextStateEnum.BAD_ENDING.getCode()) {
|
||||
log.error("并行执行停止");
|
||||
break;
|
||||
}
|
||||
// TODO 检查是否全部执行成功 ,目前没有逻辑就是忽略错误
|
||||
// 当前执行失败
|
||||
// while (pipelineRunContext.getState().get() != ContextStateEnum.RUNNING.getCode()) {
|
||||
// // 想办法借助工具类 或者直接wait
|
||||
// pipelineRunContext.pause();
|
||||
// }
|
||||
}
|
||||
}
|
||||
@Override
|
||||
|
@ -12,7 +12,8 @@ public enum ContextStateEnum {
|
||||
SUSPEND(3,"挂起"),
|
||||
STOP(-1,"停止"),
|
||||
HAPPY_ENDING(4,"执行成功"),
|
||||
BAD_ENDING(5,"执行失败")
|
||||
BAD_ENDING(5,"执行失败"),
|
||||
SKIP_TO(6,"跳过")
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
@ -25,6 +26,7 @@ public enum ContextStateEnum {
|
||||
TRANSITIONS.put(RUNNING, Set.of(RUNNING,SUSPEND, HAPPY_ENDING, BAD_ENDING, STOP));
|
||||
TRANSITIONS.put(SUSPEND, Set.of(SUSPEND,INIT, READY, BAD_ENDING, RUNNING,STOP));
|
||||
//...初始化其他状态转移关系
|
||||
TRANSITIONS.put(SKIP_TO,Collections.emptySet());
|
||||
}
|
||||
|
||||
ContextStateEnum(Integer code, String msg) {
|
||||
|
@ -12,6 +12,7 @@ import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
|
||||
import cd.casic.ci.process.process.dataObject.task.PipTask;
|
||||
import cd.casic.framework.commons.exception.ServiceException;
|
||||
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -65,7 +66,8 @@ public class DefaultRunContextManager implements RunContextManager {
|
||||
if (contextMap.containsKey(id)) {
|
||||
PipelineRunContext oldPipeline = contextMap.get(id);
|
||||
oldPipeline.changeContextStateAndChild(ContextStateEnum.BAD_ENDING);
|
||||
List<PipTask> taskList = taskDao.selectList("pipelineId", id);
|
||||
LambdaQueryWrapper<PipTask> wrapper = new LambdaQueryWrapper<>();
|
||||
List<PipTask> taskList = taskDao.selectList(wrapper);
|
||||
List<String> taskIdList = taskList.stream().map(PipTask::getId).toList();
|
||||
// 清空上一次的日志
|
||||
loggerManager.flushMemory(taskIdList);
|
||||
|
@ -30,7 +30,7 @@ public abstract class BaseRunContext {
|
||||
/**
|
||||
* 运行状态
|
||||
* */
|
||||
private AtomicInteger state;
|
||||
private final AtomicInteger state;
|
||||
/**
|
||||
* 启动时间
|
||||
* */
|
||||
@ -90,10 +90,6 @@ public abstract class BaseRunContext {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 保证一直都操作同一个引用的值
|
||||
private void setState(AtomicInteger state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前或者子上下文
|
||||
|
@ -6,6 +6,7 @@ import cd.casic.ci.process.engine.runContext.TaskRunContext;
|
||||
import cd.casic.ci.process.engine.worker.base.BaseWorker;
|
||||
import cd.casic.ci.process.process.service.machine.MachineInfoService;
|
||||
import cd.casic.ci.process.process.service.target.TargetVersionService;
|
||||
import cd.casic.ci.process.util.SftpUploadUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
@ -67,6 +67,7 @@ public abstract class BaseWorker implements Runnable{
|
||||
execute(taskRunContext);
|
||||
} catch (Exception e) {
|
||||
log.error("================worker执行报错:",e);
|
||||
// todo 根据配置决定失败是跳过还是直接失败,如果直接跳过,状态改为跳过,如果直接失败状态就改为失败
|
||||
taskRunContext.changeContextState(ContextStateEnum.BAD_ENDING);
|
||||
append(context,e.getMessage());
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user