diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/CustomCompilerWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/CustomCompilerWorker.java index d0f5d7ea..0f37c432 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/CustomCompilerWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/CustomCompilerWorker.java @@ -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.process.dataObject.pipeline.PipPipeline; 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.service.target.TargetVersionService; 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 org.apache.commons.lang3.StringUtils; +import java.io.File; import java.util.Map; /** @@ -21,7 +28,8 @@ import java.util.Map; @Slf4j @WorkAtom(taskType = "CUSTOM_COMPILE") public class CustomCompilerWorker extends SshWorker { - + @Resource + private TargetVersionService targetVersionService; @Override public void execute(TaskRunContext context) { @@ -56,9 +64,29 @@ public class CustomCompilerWorker extends SshWorker { String resourceId = pipeline.getResourceId(); ResourceFindResp resourceById = getResourceManagerService().findResourceById(resourceId); 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 得改一下 - statusCode = shell(resourceMachine, CryptogramUtil.doDecrypt(resourceMachine.getPassword()),context, + statusCode = shell(resourceMachine, null,context, "echo \"编译命令执行\"", + "cd /home/casic/706/ai_test_527", commandScript ); } catch (Exception e) { diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/SastWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/SastWorker.java index 64e4884a..6e2252aa 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/SastWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/SastWorker.java @@ -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.task.PipTask; import cd.casic.ci.process.process.service.sast.SastService; +import com.alibaba.excel.util.StringUtils; import com.alibaba.fastjson.JSON; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -35,6 +36,10 @@ public class SastWorker extends BaseWorker { log.info("==========运行context:{}===========", JSON.toJSONString(context)); if (contextDef instanceof PipTask task) { String applicationId = (String)task.getTaskProperties().get("applicationId"); + if (StringUtils.isEmpty(applicationId)) { + append(context,"未获取到sast信息"); + toBadEnding(); + } SastApplicationEchoResp applicationEcho = sastService.getApplicationEcho(applicationId); append(context,"获取到sast任务配置"+JSON.toJSONString(applicationEcho)); SastApplicationCreateReq sastApplicationCreateReq = converter.converter(applicationEcho);