Forráskód Böngészése

更新 BuildDirService

reghao 5 napja
szülő
commit
ddd27aad05

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/config/AppProperties.java

@@ -17,5 +17,5 @@ import java.util.Map;
 @Setter
 @Getter
 public class AppProperties {
-    private String devopsDir;
+    private String opsDir;
 }

+ 1 - 9
mgr/src/main/java/cn/reghao/devops/mgr/config/spring/SpringLifecycle.java

@@ -7,7 +7,6 @@ import ch.qos.logback.core.Appender;
 import cn.reghao.devops.common.util.Machine;
 import cn.reghao.devops.mgr.admin.service.LogService;
 import cn.reghao.devops.mgr.config.log.MyLogbackAppender;
-import cn.reghao.devops.mgr.ops.util.BuilderInit;
 import lombok.extern.slf4j.Slf4j;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.DisposableBean;
@@ -31,17 +30,14 @@ import java.io.IOException;
 public class SpringLifecycle implements ApplicationRunner, DisposableBean {
     private final LogService logService;
     private final Environment environment;
-    private final BuilderInit builderInit;
 
-    public SpringLifecycle(LogService logService, Environment environment, BuilderInit builderInit) {
+    public SpringLifecycle(LogService logService, Environment environment) {
         this.logService = logService;
         this.environment = environment;
-        this.builderInit = builderInit;
     }
 
     @Override
     public void run(ApplicationArguments args) throws IOException {
-        initSys();
         log.info("devopsmgr started");
     }
 
@@ -50,10 +46,6 @@ public class SpringLifecycle implements ApplicationRunner, DisposableBean {
         log.info("devopsmgr shutdown...");
     }
 
-    private void initSys() {
-        builderInit.init();
-    }
-
     @EventListener(ApplicationReadyEvent.class)
     public void onApplicationReady() {
         log.info("Application is ready! You can start processing requests.");

+ 6 - 13
mgr/src/main/java/cn/reghao/devops/mgr/ops/app/service/impl/AppBuildServiceImpl.java

@@ -3,6 +3,7 @@ package cn.reghao.devops.mgr.ops.app.service.impl;
 import cn.reghao.devops.mgr.ops.app.db.query.AppBuildRepository;
 import cn.reghao.devops.mgr.ops.build.model.po.RepoAuthConfig;
 import cn.reghao.devops.mgr.ops.app.db.repository.AppConfigRepository;
+import cn.reghao.devops.mgr.ops.build.service.BuildDirService;
 import cn.reghao.devops.mgr.ops.builder.db.repository.BuildLogRepository;
 import cn.reghao.devops.mgr.ops.app.model.dto.AppConfigDto;
 import cn.reghao.devops.mgr.ops.app.model.dto.AppConfigUpdateDto;
@@ -39,16 +40,18 @@ public class AppBuildServiceImpl implements AppBuildService {
     private final AppDeployService appDeployService;
     private final GitClient gitClient;
     private final AppBuildRepository appBuildRepository;
+    private BuildDirService buildDirService;
 
     public AppBuildServiceImpl(AppConfigRepository appConfigRepository, BuildLogRepository buildLogRepository,
                                BuildConfigChecker buildConfigChecker, AppDeployService appDeployService,
-                               GitClient gitClient, AppBuildRepository appBuildRepository) {
+                               GitClient gitClient, AppBuildRepository appBuildRepository, BuildDirService buildDirService) {
         this.appConfigRepository = appConfigRepository;
         this.buildLogRepository = buildLogRepository;
         this.buildConfigChecker = buildConfigChecker;
         this.appDeployService = appDeployService;
         this.gitClient = gitClient;
         this.appBuildRepository = appBuildRepository;
+        this.buildDirService = buildDirService;
     }
 
     @Override
@@ -166,17 +169,7 @@ public class AppBuildServiceImpl implements AppBuildService {
 
     @Override
     public Result clearLocalRepo(String appId) {
-        // TODO 保证 app 没有处在构建状态
-        String localRepo = LocalBuildDir.localRepo + File.separator + appId;
-        File dir = new File(localRepo);
-        try {
-            if (dir.exists()) {
-                FileUtils.cleanDirectory(dir);
-            }
-
-            return Result.result(ResultStatus.SUCCESS);
-        } catch (IOException e) {
-            return Result.result(ResultStatus.FAIL, e.getMessage());
-        }
+        Result result = buildDirService.eraseLocalRepo(appId);
+        return result;
     }
 }

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/BuildDirController.java

@@ -44,7 +44,7 @@ public class BuildDirController {
     @Operation(summary = "清空构建目录", description = "N")
     @PostMapping(value = "/build/dir/erase", produces = MediaType.APPLICATION_JSON_VALUE)
     public String emptyBuildDir() {
-        buildDirService.erase();
+        buildDirService.eraseAll();
         return WebResult.success();
     }
 

+ 2 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/BuildDirService.java

@@ -9,6 +9,7 @@ import cn.reghao.jutil.jdk.web.result.Result;
  */
 public interface BuildDirService {
     void init();
-    void erase();
+    void eraseAll();
+    Result eraseLocalRepo(String appId);
     BuildDir getBuildDir();
 }

+ 15 - 2
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/impl/BuildDirServiceImpl.java

@@ -7,6 +7,7 @@ import cn.reghao.devops.mgr.ops.build.model.po.BuildDir;
 import cn.reghao.devops.mgr.ops.build.service.BuildDirService;
 import cn.reghao.devops.mgr.ops.builder.model.LocalBuildDir;
 import cn.reghao.jutil.jdk.converter.ByteConverter;
+import cn.reghao.jutil.jdk.web.result.Result;
 import jakarta.annotation.PostConstruct;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
@@ -30,7 +31,7 @@ public class BuildDirServiceImpl implements BuildDirService {
 
     public BuildDirServiceImpl(AppProperties appProperties, Disk disk, ByteConverter byteConverter) {
         this.opsDir = appProperties.getOpsDir();
-        this.buildDir = new BuildDir();
+        this.buildDir = new BuildDir(this.opsDir);
         this.disk = disk;
         this.byteConverter = byteConverter;
     }
@@ -75,7 +76,7 @@ public class BuildDirServiceImpl implements BuildDirService {
     }
 
     @Override
-    public synchronized void erase() {
+    public synchronized void eraseAll() {
         // TODO 保证没有 app 处在构建状态
         List<String> dirPathList = List.of(
                 LocalBuildDir.localRepo,
@@ -93,6 +94,18 @@ public class BuildDirServiceImpl implements BuildDirService {
         }
     }
 
+    @Override
+    public Result eraseLocalRepo(String appId) {
+        String localRepo = LocalBuildDir.localRepo + File.separator + appId;
+        File dir = new File(localRepo);
+        try {
+            FileUtils.cleanDirectory(dir);
+        } catch (IOException e) {
+            return Result.fail(e.getMessage());
+        }
+        return Result.success();
+    }
+
     @Override
     public BuildDir getBuildDir() {
         DiskDetail diskDetail = disk.diskDetail(opsDir);

+ 1 - 5
mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/model/LocalBuildDir.java

@@ -1,16 +1,12 @@
 package cn.reghao.devops.mgr.ops.builder.model;
 
-import java.io.Serializable;
-
 /**
  * 本地构建目录
  *
  * @author reghao
  * @date 2020-03-09 14:36:41
  */
-public class LocalBuildDir implements Serializable {
-    private static final long serialVersionUID = 1L;
-
+public class LocalBuildDir {
     // 本地仓库
     public static String localRepo;
     // 编译目录

+ 0 - 45
mgr/src/main/java/cn/reghao/devops/mgr/ops/util/BuilderInit.java

@@ -1,45 +0,0 @@
-package cn.reghao.devops.mgr.ops.util;
-
-import cn.reghao.devops.mgr.config.AppProperties;
-import cn.reghao.devops.mgr.ops.build.service.BuildDirService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.io.File;
-
-/**
- * @author reghao
- * @date 2025-10-07 23:52:25
- */
-@Slf4j
-@Service
-public class BuilderInit {
-    private final AppProperties appProperties;
-    private final BuildDirService buildDirService;
-
-    public BuilderInit(AppProperties appProperties, BuildDirService buildDirService) {
-        this.appProperties = appProperties;
-        this.buildDirService = buildDirService;
-    }
-
-    public void init() {
-        initBuildDir();
-    }
-
-    private void initBuildDir() {
-        String userDir = System.getProperty("user.dir");
-        String baseDir = appProperties.getDevopsDir();
-        File dir = new File(baseDir);
-        if (!dir.exists() && !dir.mkdirs()) {
-            log.error("创建本地构建目录 {} 失败,devops-mgr 结束运行", baseDir);
-            System.exit(1);
-        } else {
-            try {
-                buildDirService.init(baseDir);
-            } catch (Exception e) {
-                log.error("初始化本地构建目录失败,devops-mgr 结束运行: {}", e.getMessage());
-                System.exit(1);
-            }
-        }
-    }
-}

+ 1 - 1
mgr/src/main/resources/application.yml

@@ -67,7 +67,7 @@ spring:
       number_format: 0.##
       auto_import: /utils.ftl as utils
 app:
-  devopsDir: /opt/data/devops_data
+  ops-dir: /opt/data/devops_data
 management:
   endpoints:
     web: