diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/afl/AFLWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/afl/AFLWorker.java index 505591fc..840a8550 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/afl/AFLWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/afl/AFLWorker.java @@ -12,6 +12,7 @@ import cd.casic.ci.process.process.dataObject.history.PipPipelineHisInstance; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; 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.aflAnalyzer.AflCrashesAnalyzerService; import cd.casic.ci.process.process.service.aflManager.AflInfoService; import cd.casic.ci.process.process.service.aflManager.AflPlotInfoService; import cd.casic.ci.process.process.service.aflManager.AflSeedInfoService; @@ -44,6 +45,8 @@ public class AFLWorker extends DockerWorker { private AflPlotInfoService aflPlotInfoService; @Resource private LocalAflCrashesService localAflCrashesService; + @Resource + private AflCrashesAnalyzerService crashesAnalyzerService; @Override public void execute(TaskRunContext context) { int statusCode = -1; @@ -114,7 +117,7 @@ public class AFLWorker extends DockerWorker { } localVariables.put(DIYImageExecuteCommandConstant.STATUS_CODE, statusCode); afterTaskExecute(context); - afterPipelineExecute(context,pipeline); + afterPipelineExecute(context,pipeline,resourceById,allDir+"/aflCrash"); } } private String cdSourceName(String fileName){ @@ -167,7 +170,7 @@ public class AFLWorker extends DockerWorker { log.error("保存afl信息失败,入参{}", JSON.toJSONString(req),e); } } - private void afterPipelineExecute(TaskRunContext context,PipPipeline pipeline){ + private void afterPipelineExecute(TaskRunContext context,PipPipeline pipeline,ResourceDetailResp resource,String crashesOutputPath){ append(context,"开始拉取afl输出信息"); PipTask contextDef = (PipTask)context.getContextDef(); String pipelineId =contextDef.getPipelineId(); @@ -197,5 +200,11 @@ public class AFLWorker extends DockerWorker { localAflCrashesService.saveLocalAflCrashesInfo(crashesSaveReq); } }); + postHandlerManager.registerPostHandler(new ExecuteTaskPostHandler(taskId,pipelineId) { + @Override + public void executeAfterDone(PipPipelineHisInstance instance) { + crashesAnalyzerService.saveCrashesByOutputPath(crashesOutputPath,resource,instance.getPipelineId(),taskId,instance.getId()); + } + }); } }