自定义编译worker修改, sastworker修改

This commit is contained in:
even 2025-06-13 17:37:22 +08:00
parent ed48073df9
commit fca1dabb41
2 changed files with 35 additions and 2 deletions

View File

@ -8,11 +8,18 @@ import cd.casic.ci.process.engine.runContext.TaskRunContext;
import cd.casic.ci.process.engine.worker.base.SshWorker; import cd.casic.ci.process.engine.worker.base.SshWorker;
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine; import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine;
import cd.casic.ci.process.process.dataObject.target.TargetVersion;
import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.ci.process.process.service.target.TargetVersionService;
import cd.casic.ci.process.util.CryptogramUtil; import cd.casic.ci.process.util.CryptogramUtil;
import cd.casic.ci.process.util.SftpUploadUtil;
import cd.casic.framework.commons.exception.ServiceException;
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.util.Map; import java.util.Map;
/** /**
@ -21,7 +28,8 @@ import java.util.Map;
@Slf4j @Slf4j
@WorkAtom(taskType = "CUSTOM_COMPILE") @WorkAtom(taskType = "CUSTOM_COMPILE")
public class CustomCompilerWorker extends SshWorker { public class CustomCompilerWorker extends SshWorker {
@Resource
private TargetVersionService targetVersionService;
@Override @Override
public void execute(TaskRunContext context) { public void execute(TaskRunContext context) {
@ -56,9 +64,29 @@ public class CustomCompilerWorker extends SshWorker {
String resourceId = pipeline.getResourceId(); String resourceId = pipeline.getResourceId();
ResourceFindResp resourceById = getResourceManagerService().findResourceById(resourceId); ResourceFindResp resourceById = getResourceManagerService().findResourceById(resourceId);
PipResourceMachine resourceMachine = resourceById.getResourceMachine(); PipResourceMachine resourceMachine = resourceById.getResourceMachine();
//根据目标id查询目标信息
if (StringUtils.isEmpty(pipeline.getTargetVersionId())){
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"目标文件不存在");
}
TargetVersion targetVersion = targetVersionService.getById(pipeline.getTargetVersionId());
String filePath = targetVersion.getFilePath();
File file = new File(filePath);
if (!file.exists() || !file.canRead()) {
log.error("目标文件不存在或不可读");
localVariables.put("statusCode", "-1");
append(context,"目标文件不存在或不可读");
toBadEnding();
}
append(context,"上传文件"+targetVersion.getFileName()+"到目标服务器IP:"+resourceMachine.getMachineHost());
append(context,"上传路径:"+"/home/casic/706/ai_test_527");
// 上传目标 到目标服务器
SftpUploadUtil.uploadFileViaSftp(resourceMachine.getMachineHost(),Integer.valueOf(resourceMachine.getSshPort()),resourceMachine.getUsername(), CryptogramUtil.doDecrypt(resourceMachine.getPassword()),null,file.getAbsolutePath(),"/home/casic/706/ai_test_527",file.getName());
//TODO 得改一下 //TODO 得改一下
statusCode = shell(resourceMachine, CryptogramUtil.doDecrypt(resourceMachine.getPassword()),context, statusCode = shell(resourceMachine, null,context,
"echo \"编译命令执行\"", "echo \"编译命令执行\"",
"cd /home/casic/706/ai_test_527",
commandScript commandScript
); );
} catch (Exception e) { } catch (Exception e) {

View File

@ -11,6 +11,7 @@ import cd.casic.ci.process.process.converter.SastConverter;
import cd.casic.ci.process.process.dataObject.base.PipBaseElement; import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.ci.process.process.service.sast.SastService; import cd.casic.ci.process.process.service.sast.SastService;
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -35,6 +36,10 @@ public class SastWorker extends BaseWorker {
log.info("==========运行context{}===========", JSON.toJSONString(context)); log.info("==========运行context{}===========", JSON.toJSONString(context));
if (contextDef instanceof PipTask task) { if (contextDef instanceof PipTask task) {
String applicationId = (String)task.getTaskProperties().get("applicationId"); String applicationId = (String)task.getTaskProperties().get("applicationId");
if (StringUtils.isEmpty(applicationId)) {
append(context,"未获取到sast信息");
toBadEnding();
}
SastApplicationEchoResp applicationEcho = sastService.getApplicationEcho(applicationId); SastApplicationEchoResp applicationEcho = sastService.getApplicationEcho(applicationId);
append(context,"获取到sast任务配置"+JSON.toJSONString(applicationEcho)); append(context,"获取到sast任务配置"+JSON.toJSONString(applicationEcho));
SastApplicationCreateReq sastApplicationCreateReq = converter.converter(applicationEcho); SastApplicationCreateReq sastApplicationCreateReq = converter.converter(applicationEcho);