Prechádzať zdrojové kódy

添加对持久化 BuildLog 抛出异常的处理

reghao 2 rokov pred
rodič
commit
18dacee099

+ 13 - 0
manager/src/main/java/cn/reghao/devops/manager/app/model/po/AppBuilding.java

@@ -75,4 +75,17 @@ public class AppBuilding {
         this.buildBy = buildLog.getBuildBy();
         this.onBuilding = false;
     }
+
+    public void afterBuild(BuildLog buildLog, String errMsg) {
+        this.buildLogId = buildLog.getBuildLogId();
+        this.commitId = buildLog.getCommitId();
+        this.commitTime = buildLog.getCommitTime();
+
+        this.buildTime = buildLog.getBuildTime();
+        this.buildCode = 1;
+        this.buildResult =errMsg;
+        this.packagePath = buildLog.getPackagePath();
+        this.buildBy = buildLog.getBuildBy();
+        this.onBuilding = false;
+    }
 }

+ 0 - 2
manager/src/main/java/cn/reghao/devops/manager/app/service/bd/impl/BuildAppImpl.java

@@ -92,9 +92,7 @@ public class BuildAppImpl implements BuildApp {
                     Result result = buildChainResult.getResult();
                     AppBuilding appBuilding = buildStat.afterBuild(buildChainResult);
                     log.info("{} 异步构建完成", appId);
-
                     if (appBuilding == null) {
-                        log.error("持久化 BuildLog 抛出异常");
                         return;
                     }
 

+ 6 - 3
manager/src/main/java/cn/reghao/devops/manager/app/service/bd/impl/BuildStatImpl.java

@@ -15,6 +15,8 @@ import cn.reghao.devops.manager.app.service.bd.BuildStat;
 import cn.reghao.devops.common.build.chain.impl.BuildChainResult;
 import cn.reghao.jutil.jdk.db.PageBound;
 import cn.reghao.jutil.jdk.db.PageList;
+import cn.reghao.jutil.jdk.result.Result;
+import cn.reghao.jutil.jdk.result.ResultStatus;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -89,15 +91,16 @@ public class BuildStatImpl implements BuildStat {
         String appId = appDto.getAppId();
         AppConfig appConfig = appConfigRepository.findByAppId(appId);
         BuildLog buildLog = new BuildLog(buildChainResult, appConfig);
+        AppBuilding appBuilding = appBuildings.get(appId);
         try {
             buildLogRepository.save(buildLog);
-
-            AppBuilding appBuilding = appBuildings.get(appId);
             appBuilding.afterBuild(buildLog);
             deployStat.afterBuild(appBuilding);
             return appBuilding;
         } catch (Exception e) {
-            e.printStackTrace();
+            String errMsg = e.getMessage();
+            appBuilding.afterBuild(buildLog, errMsg);
+            log.error("持久化 BuidlLog 抛出异常: {}", errMsg);
         }
 
         return null;