Browse Source

优化代码

reghao 6 năm trước cách đây
mục cha
commit
82df9e7318
100 tập tin đã thay đổi với 246 bổ sung851 xóa
  1. 1 2
      README.md
  2. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/Container.java
  3. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/ContainerConfig.java
  4. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/ContainerInfo.java
  5. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/ContainerOps.java
  6. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/DockerApi.java
  7. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/DockerAuth.java
  8. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/DockerClient.java
  9. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/DockerException.java
  10. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/DockerHeader.java
  11. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/HostConfig.java
  12. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/ImageOps.java
  13. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/httpclient/HttpClient.java
  14. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/httpclient/HttpClientHandler.java
  15. 0 0
      common/src/main/java/cn/reghao/autodop/common/dockerc/httpclient/UnixSocketClient.java
  16. 0 117
      common/src/main/java/cn/reghao/autodop/common/http/DefaultWebRequest.java
  17. 0 16
      common/src/main/java/cn/reghao/autodop/common/http/HttpApi.java
  18. 0 15
      common/src/main/java/cn/reghao/autodop/common/http/WebRequest.java
  19. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/AppStatusController.java
  20. 4 5
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/BuildController.java
  21. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/pojo/BuildLog.java
  22. 34 23
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppBuildPipeline.java
  23. 51 55
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppIntegrate.java
  24. 0 16
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/CompileCode.java
  25. 0 54
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/Maven.java
  26. 0 34
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/DingNotify.java
  27. 0 25
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/Notify.java
  28. 0 36
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/msg/DingContent.java
  29. 0 39
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/msg/DingMarkdown.java
  30. 0 31
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/msg/DingText.java
  31. 0 11
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/msg/NotifyContent.java
  32. 0 28
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/vc/VersionControl.java
  33. 4 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/deploy/AppDeploy.java
  34. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/deploy/Deployer.java
  35. 17 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/CodeCompiler.java
  36. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/DefaultCompiler.java
  37. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/DnktMgrPreCompile.java
  38. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/DotnetPreCompile.java
  39. 78 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/MavenCompiler.java
  40. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/PreCompile.java
  41. 3 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/ShellCompiler.java
  42. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/CodePacker.java
  43. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/DnktMgrZipPack.java
  44. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/DockerPack.java
  45. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/DotnetPack.java
  46. 0 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/ZipPack.java
  47. 0 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/ZipRemotePack.java
  48. 28 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/updater/CodeUpdater.java
  49. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/updater/GitImpl.java
  50. 3 5
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/updater/SvnImpl.java
  51. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/AuthFailureHandlerImpl.java
  52. 18 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/AuthSuccessHandlerImpl.java
  53. 0 51
      dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/WebUserDetailsServiceImpl.java
  54. 0 32
      dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/filter/LoginRedirectFilter.java
  55. 0 39
      dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/AuthController.java
  56. 0 24
      dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/DataController.java
  57. 0 28
      dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/ErrorPageController.java
  58. 0 33
      dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/SysController.java
  59. 0 34
      dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/ViewController.java
  60. 0 23
      dmaster/src/main/java/cn/reghao/autodop/dmaster/view/pojo/Menu.java
  61. 0 25
      dmaster/src/main/java/cn/reghao/autodop/dmaster/view/pojo/SideBar.java
  62. 0 1
      dmaster/src/main/resources/static/layui/css/layui.css
  63. 0 1
      dmaster/src/main/resources/static/layui/css/layui.mobile.css
  64. 0 2
      dmaster/src/main/resources/static/layui/css/modules/code.css
  65. 0 1
      dmaster/src/main/resources/static/layui/css/modules/laydate/default/laydate.css
  66. BIN
      dmaster/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png
  67. BIN
      dmaster/src/main/resources/static/layui/css/modules/layer/default/icon.png
  68. 0 1
      dmaster/src/main/resources/static/layui/css/modules/layer/default/layer.css
  69. BIN
      dmaster/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif
  70. BIN
      dmaster/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif
  71. BIN
      dmaster/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif
  72. BIN
      dmaster/src/main/resources/static/layui/font/iconfont.eot
  73. 0 25
      dmaster/src/main/resources/static/layui/font/iconfont.svg
  74. BIN
      dmaster/src/main/resources/static/layui/font/iconfont.ttf
  75. BIN
      dmaster/src/main/resources/static/layui/font/iconfont.woff
  76. BIN
      dmaster/src/main/resources/static/layui/font/iconfont.woff2
  77. BIN
      dmaster/src/main/resources/static/layui/images/face/0.gif
  78. BIN
      dmaster/src/main/resources/static/layui/images/face/1.gif
  79. BIN
      dmaster/src/main/resources/static/layui/images/face/10.gif
  80. BIN
      dmaster/src/main/resources/static/layui/images/face/11.gif
  81. BIN
      dmaster/src/main/resources/static/layui/images/face/12.gif
  82. BIN
      dmaster/src/main/resources/static/layui/images/face/13.gif
  83. BIN
      dmaster/src/main/resources/static/layui/images/face/14.gif
  84. BIN
      dmaster/src/main/resources/static/layui/images/face/15.gif
  85. BIN
      dmaster/src/main/resources/static/layui/images/face/16.gif
  86. BIN
      dmaster/src/main/resources/static/layui/images/face/17.gif
  87. BIN
      dmaster/src/main/resources/static/layui/images/face/18.gif
  88. BIN
      dmaster/src/main/resources/static/layui/images/face/19.gif
  89. BIN
      dmaster/src/main/resources/static/layui/images/face/2.gif
  90. BIN
      dmaster/src/main/resources/static/layui/images/face/20.gif
  91. BIN
      dmaster/src/main/resources/static/layui/images/face/21.gif
  92. BIN
      dmaster/src/main/resources/static/layui/images/face/22.gif
  93. BIN
      dmaster/src/main/resources/static/layui/images/face/23.gif
  94. BIN
      dmaster/src/main/resources/static/layui/images/face/24.gif
  95. BIN
      dmaster/src/main/resources/static/layui/images/face/25.gif
  96. BIN
      dmaster/src/main/resources/static/layui/images/face/26.gif
  97. BIN
      dmaster/src/main/resources/static/layui/images/face/27.gif
  98. BIN
      dmaster/src/main/resources/static/layui/images/face/28.gif
  99. BIN
      dmaster/src/main/resources/static/layui/images/face/29.gif
  100. BIN
      dmaster/src/main/resources/static/layui/images/face/3.gif

+ 1 - 2
README.md

@@ -1,2 +1 @@
-# 运维自动化系统
-
+# autodop

+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/Container.java → common/src/main/java/cn/reghao/autodop/common/dockerc/Container.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/ContainerConfig.java → common/src/main/java/cn/reghao/autodop/common/dockerc/ContainerConfig.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/ContainerInfo.java → common/src/main/java/cn/reghao/autodop/common/dockerc/ContainerInfo.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/ContainerOps.java → common/src/main/java/cn/reghao/autodop/common/dockerc/ContainerOps.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/DockerApi.java → common/src/main/java/cn/reghao/autodop/common/dockerc/DockerApi.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/DockerAuth.java → common/src/main/java/cn/reghao/autodop/common/dockerc/DockerAuth.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/DockerClient.java → common/src/main/java/cn/reghao/autodop/common/dockerc/DockerClient.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/DockerException.java → common/src/main/java/cn/reghao/autodop/common/dockerc/DockerException.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/DockerHeader.java → common/src/main/java/cn/reghao/autodop/common/dockerc/DockerHeader.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/HostConfig.java → common/src/main/java/cn/reghao/autodop/common/dockerc/HostConfig.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/ImageOps.java → common/src/main/java/cn/reghao/autodop/common/dockerc/ImageOps.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/httpclient/WebClient.java → common/src/main/java/cn/reghao/autodop/common/dockerc/httpclient/HttpClient.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/httpclient/HttpClientHandler.java → common/src/main/java/cn/reghao/autodop/common/dockerc/httpclient/HttpClientHandler.java


+ 0 - 0
common/src/main/java/cn/reghao/autodop/common/docker/httpclient/UnixSocketClient.java → common/src/main/java/cn/reghao/autodop/common/dockerc/httpclient/UnixSocketClient.java


+ 0 - 117
common/src/main/java/cn/reghao/autodop/common/http/DefaultWebRequest.java

@@ -1,117 +0,0 @@
-package cn.reghao.autodop.common.http;
-
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
-import org.apache.http.impl.client.HttpClients;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.*;
-import java.nio.charset.StandardCharsets;
-
-/**
- * @author reghao
- * @date 2019-10-25 22:46:59
- */
-public class DefaultWebRequest implements WebRequest {
-    private static final Logger log = LoggerFactory.getLogger(DefaultWebRequest.class);
-
-    private CloseableHttpClient client;
-
-    public DefaultWebRequest() {
-        // retry 配置,请求失败后不再 retry
-        DefaultHttpRequestRetryHandler retryHandler =
-                new DefaultHttpRequestRetryHandler(0, false);
-
-        client = HttpClients.custom()
-                .setMaxConnTotal(200)
-                .setMaxConnPerRoute(100)
-                .setRetryHandler(retryHandler)
-                .build();
-    }
-
-    @Override
-    public String get(String url) throws Exception {
-        HttpGet get = new HttpGet(url);
-        return executeRequest(get);
-    }
-
-    @Override
-    public String postJson(String url, String json) throws Exception {
-        StringEntity entity = new StringEntity(json, StandardCharsets.UTF_8);
-        entity.setContentEncoding("UTF-8");
-
-        HttpPost post = new HttpPost(url);
-        post.addHeader("Content-Type", "application/json;charset=UTF-8");
-        post.setEntity(entity);
-
-        return executeRequest(post);
-    }
-
-    private String executeRequest(HttpRequestBase method) throws Exception {
-        CloseableHttpResponse response = client.execute(method);
-        return extractResponse(response);
-    }
-
-    private String extractResponse(HttpResponse response) throws Exception {
-        int statusCode = response.getStatusLine().getStatusCode();
-        String result = new String(streamToBytes(response.getEntity().getContent()), StandardCharsets.UTF_8);
-        // TODO 处理 1XX 返回码
-        if (statusCode != HttpStatus.SC_OK) {
-            throw new Exception(result);
-        }
-
-        return result;
-    }
-
-    private byte[] streamToBytes(InputStream in) {
-        if (in != null) {
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            byte[] buffer = new byte[1024];
-            int len;
-            try {
-                while ((len = in.read(buffer)) != -1) {
-                    out.write(buffer, 0, len);
-                }
-
-                return out.toByteArray();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        }
-
-        return null;
-    }
-
-    @Override
-    public void download(String url, String filepath) throws IOException {
-        File file = new File(filepath);
-        HttpGet get = new HttpGet(url);
-        CloseableHttpResponse response = client.execute(get);
-        int statusCode = response.getStatusLine().getStatusCode();
-        if (statusCode == 200) {
-            HttpEntity entity = response.getEntity();
-            InputStream in = entity.getContent();
-            saveFile(in, file);
-        }
-    }
-
-    private void saveFile(InputStream in, File file) throws IOException {
-        FileOutputStream fout = new FileOutputStream(file);
-        int i = -1;
-        byte[] tmp = new byte[1024];
-        while ((i = in.read(tmp)) != -1) {
-            fout.write(tmp, 0, i);
-        }
-        fout.flush();
-        fout.close();
-    }
-}

+ 0 - 16
common/src/main/java/cn/reghao/autodop/common/http/HttpApi.java

@@ -1,16 +0,0 @@
-package cn.reghao.autodop.common.http;
-
-/**
- * @author reghao
- * @date 2020-03-16 15:27:08
- */
-public class HttpApi {
-    public static String url(String address, int port, String api) {
-        String prefix = "http://";
-        if (port != 80) {
-            return prefix + address + ":" + port + api;
-        } else {
-            return prefix + address + api;
-        }
-    }
-}

+ 0 - 15
common/src/main/java/cn/reghao/autodop/common/http/WebRequest.java

@@ -1,15 +0,0 @@
-package cn.reghao.autodop.common.http;
-
-import java.io.IOException;
-
-/**
- * HTTP 请求
- *
- * @author reghao
- * @date 2019-10-25 22:44:27
- */
-public interface WebRequest {
-    String get(String url) throws Exception;
-    String postJson(String url, String json) throws Exception;
-    void download(String url, String filepath) throws IOException;
-}

+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/StatusController.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/AppStatusController.java


+ 4 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/BuildController.java

@@ -3,8 +3,7 @@ package cn.reghao.autodop.dmaster.app.controller;
 import cn.reghao.autodop.common.config.BuildDeployResult;
 import cn.reghao.autodop.dmaster.app.service.AppManager;
 import cn.reghao.autodop.dmaster.app.service.OssService;
-import cn.reghao.autodop.dmaster.app.service.build.AppDeploy;
-import cn.reghao.autodop.dmaster.result.WebResult;
+import cn.reghao.autodop.dmaster.common.result.WebResult;
 import cn.reghao.autodop.dmaster.app.service.build.BuildDispatcher;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -24,15 +23,15 @@ import java.util.Set;
  * @date 2019-08-30 18:49:15
  */
 @Slf4j
-@Api(tags = "应用构建接口")
+@Api(tags = "后端应用构建部署接口")
 @RestController
 @RequestMapping("/api/app")
-public class BuildController {
+public class BackendController {
     private BuildDispatcher buildDispatcher;
     private AppManager appManager;
     private OssService ossService;
 
-    public BuildController(BuildDispatcher buildDispatcher, AppManager appManager, OssService ossService) {
+    public BackendController(BuildDispatcher buildDispatcher, AppManager appManager, OssService ossService) {
         this.buildDispatcher = buildDispatcher;
         this.appManager = appManager;
         this.ossService = ossService;

+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/pojo/BuildMsg.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/pojo/BuildLog.java


+ 34 - 23
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppBuildPipeline.java

@@ -2,43 +2,43 @@ package cn.reghao.autodop.dmaster.app.service.build;
 
 import cn.reghao.autodop.common.config.BuildDeployResult;
 import cn.reghao.autodop.common.utils.JsonUtil;
+import cn.reghao.autodop.dmaster.app.pojo.orchestration.AppOrchestration;
+import cn.reghao.autodop.dmaster.app.service.deploy.AppDeploy;
 import cn.reghao.autodop.dmaster.orchestrate.pojo.SysConfig;
-import cn.reghao.autodop.dmaster.orchestrate.pojo.orchestration.AppOrchestration;
-import cn.reghao.autodop.dmaster.app.service.build.tools.vc.VersionControl;
+import cn.reghao.autodop.dmaster.app.service.tools.updater.CodeUpdater;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.List;
 import java.util.concurrent.Callable;
 
 /**
- * 应用构建任务
+ * 应用更新 -> 编译 -> 打包 -> 部署流水线
+ * 每个应用都对应一个构建任务
  *
  * @author reghao
  * @date 2019-11-16 21:39:53
  */
 @Slf4j
-public class AppBuildPipeline implements Callable<String> {
+public class AppPipeline implements Callable<String> {
     private AppOrchestration app;
     private String version;
     private boolean isDeploy;
-    private boolean isRun;
     private AppIntegrate appIntegrate;
 
     private final String appLocalRepo;
     private final String appCompileDir;
 
-    public AppBuildPipeline(AppOrchestration app, String version, boolean isDeploy, boolean isRun) {
+    public AppPipeline(AppOrchestration app, String version, boolean isDeploy) {
         this.app = app;
         this.version = version;
         this.isDeploy = isDeploy;
-        this.isRun = isRun;
         this.appIntegrate = new AppIntegrate(app);
         // TODO 暂时不使用动态代理
         /*this.appIntegrate = ProxyUtils.createProxyObject(AppIntegrate.class);
         this.appIntegrate.setApp(app);*/
 
-        this.appLocalRepo = SysConfig.localRepos + "/" + app.getIdentifier();
-        this.appCompileDir = SysConfig.compileDir + "/" + app.getIdentifier();
+        this.appLocalRepo = SysConfig.localRepos + "/" + app.getAppId();
+        this.appCompileDir = SysConfig.compileDir + "/" + app.getAppId();
     }
 
     /**
@@ -51,8 +51,19 @@ public class AppBuildPipeline implements Callable<String> {
     @Override
     public String call() {
         BuildDeployResult result = new BuildDeployResult();
-        result.setAppId(app.getIdentifier());
-        /* 更新阶段 */
+        result.setAppId(app.getAppId());
+
+        if (version == null ) {
+            appIntegrate.update();
+        }
+
+        appIntegrate.compile();
+        appIntegrate.pack();
+        if (isDeploy) {
+            appIntegrate.deploy();
+        }
+        
+        /* 更新阶段 *//*
         if (version == null ) {
             try {
                 version = updateApp();
@@ -65,7 +76,7 @@ public class AppBuildPipeline implements Callable<String> {
             }
         }
         result.setVersion(version);
-        log.info("{} -> 代码更新完成", app.getIdentifier());
+        log.info("{} -> 代码更新完成", app.getAppId());
 
         String appEntryDir;
         if (app.getProjBuild() != null) {
@@ -75,12 +86,12 @@ public class AppBuildPipeline implements Callable<String> {
         }
 
         try {
-            /* 编译阶段 */
+            *//* 编译阶段 *//*
             if (appIntegrate.needPreCompile()) {
-                appIntegrate.preCompile(appEntryDir);
+                //appIntegrate.preCompile(appEntryDir);
             }
             // TODO 在通过脚本调用编译器时会卡住
-            appIntegrate.compile(appEntryDir);
+            //appIntegrate.compile(app.getDirname(), appEntryDir);
         } catch (Exception e) {
             e.printStackTrace();
             result.setStage("编译");
@@ -89,9 +100,9 @@ public class AppBuildPipeline implements Callable<String> {
         }
         log.info("{} -> 编译完成", app.getIdentifier());
 
-        /* 打包阶段 */
+        *//* 打包阶段 *//*
         try {
-            appIntegrate.pack(app.getIdentifier(), String.valueOf(version), appEntryDir);
+            //appIntegrate.pack(app.getIdentifier(), String.valueOf(version), appEntryDir);
         } catch (Exception e) {
             e.printStackTrace();
             result.setStage("打包");
@@ -100,25 +111,25 @@ public class AppBuildPipeline implements Callable<String> {
         }
         log.info("{} -> 打包完成", app.getIdentifier());
 
-        /* 部署阶段 */
+        *//* 部署阶段 *//*
         if (isDeploy) {
             List<BuildDeployResult> results = null;
             try {
-                results = AppDeploy.deploy(app, version, isRun);
+                results = AppDeploy.deploy(app, version);
             } catch (Exception e) {
                 e.printStackTrace();
             }
 
             log.info("{} -> 部署完成", app.getIdentifier());
             return JsonUtil.objectToJson(results);
-        }
+        }*/
 
         return JsonUtil.objectToJson(result);
     }
 
-    private String updateApp() throws Exception {
+    /*private String updateApp() throws Exception {
         String remoteRepo = app.getBuild().getCodeRepos().getReposUrl();
-        VersionControl vc = BuilderUtil.versionControl(app.getBuild().getCodeRepos().getReposAuth());
+        CodeUpdater vc = BuilderUtil.versionControl(app.getBuild().getCodeRepos().getReposAuth());
         String version = vc.update(remoteRepo, appLocalRepo + BuilderUtil.dirname(remoteRepo));
 
         String dep = app.getBuild().getCodeRepos().getDependencyUrls();
@@ -129,5 +140,5 @@ public class AppBuildPipeline implements Callable<String> {
             }
         }
         return version;
-    }
+    }*/
 }

+ 51 - 55
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppIntegrate.java

@@ -1,29 +1,34 @@
 package cn.reghao.autodop.dmaster.app.service.build;
 
-import cn.reghao.autodop.dmaster.app.service.build.tools.compiler.*;
-import cn.reghao.autodop.dmaster.app.service.build.tools.packer.*;
+import cn.reghao.autodop.dmaster.app.pojo.build.AppBuild;
+import cn.reghao.autodop.dmaster.app.pojo.build.compile.AppCompile;
+import cn.reghao.autodop.dmaster.app.pojo.build.pack.AppPack;
+import cn.reghao.autodop.dmaster.app.pojo.constant.CompilerType;
+import cn.reghao.autodop.dmaster.app.pojo.constant.PackerType;
+import cn.reghao.autodop.dmaster.app.pojo.deploy.AppDeploy;
+import cn.reghao.autodop.dmaster.app.pojo.orchestration.AppOrchestration;
+import cn.reghao.autodop.dmaster.app.service.tools.compiler.*;
+import cn.reghao.autodop.dmaster.app.service.tools.packer.*;
+import cn.reghao.autodop.dmaster.app.service.tools.updater.CodeUpdater;
 import cn.reghao.autodop.dmaster.orchestrate.pojo.SysConfig;
-import cn.reghao.autodop.dmaster.orchestrate.pojo.build.AppBuild;
-import cn.reghao.autodop.dmaster.orchestrate.pojo.tools.AppPacker;
-import cn.reghao.autodop.dmaster.orchestrate.pojo.tools.CodeCompiler;
-import cn.reghao.autodop.dmaster.orchestrate.pojo.orchestration.AppOrchestration;
 import lombok.extern.slf4j.Slf4j;
 
 /**
- * 应用集成,根据 AppOrchestration 中的值完成编译,打包的配置
+ * 应用构建部署,根据 AppOrchestration 的值完成应用构建和部署的配置
  *
  * @author reghao
  * @date 2019-10-09 10:54:43
  */
 @Slf4j
-public class AppIntegrate {
+public class AppBuildDeploy {
     private final String packDir = SysConfig.packDir;
     private AppOrchestration app;
+    private CodeUpdater codeUpdater;
     private PreCompile preCompile;
-    private CompileCode compileCode;
-    private PackApp packApp;
+    private CodeCompiler codeCompiler;
+    private CodePacker codePacker;
 
-    public AppIntegrate() {
+    public AppBuildDeploy() {
     }
 
     public void setApp(AppOrchestration app) {
@@ -31,45 +36,45 @@ public class AppIntegrate {
         init();
     }
 
-    public AppIntegrate(AppOrchestration app) {
+    public AppBuildDeploy(AppOrchestration app) {
         this.app = app;
         init();
     }
 
     private void init() {
-        AppBuild appBuild = app.getBuild();
-        // 编译初始化
-        CodeCompiler compiler = appBuild.getCodeCompiler();
-        if ("dotnet".equals(compiler.getCompilerType())) {
+        AppBuild appBuild = app.getAppBuild();
+        // 初始化编译配置
+        AppCompile appCompile = appBuild.getAppCompile();
+        if (appCompile.getCompilerType().equals(CompilerType.dotnet.name())) {
             preCompile = new DotnetPreCompile();
-            compileCode = new ShellCompile(compiler.getScript());
-        } else if ("maven".equals(compiler.getCompilerType())) {
-            compileCode = new Maven();
-        } else if ("static".equals(compiler.getCompilerType())) {
-            compileCode = new DefaultCompile();
-            log.warn("静态应用,不需要编译器");
-        } else {
-            //throw new Exception("");
-            log.error("没有编译器");
+            codeCompiler = new ShellCompiler(appCompile.getScript());
+        } else if (appCompile.getCompilerType().equals(CompilerType.maven.name())) {
+            codeCompiler = new MavenCompiler("");
+        } else if (appCompile.getCompilerType().equals(CompilerType.none.name())) {
+            // 静态应用,不需要编译器
+            codeCompiler = new DefaultCompiler();
         }
 
-        // 打包初始化
-        AppPacker packer = appBuild.getAppPacker();
-        if ("docker".equals(packer.getPackerType())) {
-            packApp = new DockerPack(packer);
-        } else if ("maven".equals(packer.getPackerType())) {
-
-        } else if ("zip".equals(packer.getPackerType())) {
-            packApp = new ZipPack(packDir);
-        } else if ("zip-remote".equals(packer.getPackerType())) {
-            packApp = new ZipRemotePack(packDir);
+        // 初始化打包配置
+        AppPack appPack = appBuild.getAppPack();
+        if (appPack.getPackerType().equals(PackerType.docker.name())) {
+            codePacker = new DockerPack(appPack.getAppRootPath());
+        } else if (appPack.getPackerType().equals(PackerType.maven.name())) {
+            codePacker = null;
+        } else if (appPack.getPackerType().equals(PackerType.zip.name())) {
+            codePacker = new ZipPack(packDir);
+        } else if (appPack.getPackerType().equals(PackerType.dotnetBinary.name())) {
+            codePacker = null;
         }
 
         // TODO 特定于 dnkt-mgr 项目的处理
-        if (app.getIdentifier().startsWith("dnkt-mgr")) {
+        if (app.getAppId().startsWith("dnkt-mgr")) {
             preCompile = new DnktMgrPreCompile();
-            packApp = new DnktMgrZipPack(packer);
+            codePacker = new DnktMgrZipPack(appPack.getAppRootPath());
         }
+
+        // 初始化部署配置
+        AppDeploy appDeploy = app.getAppDeploy();
     }
 
     public boolean needPreCompile() {
@@ -85,25 +90,16 @@ public class AppIntegrate {
         preCompile.preCompile(app, appEntryDir);
     }
 
-    /**
-     * 编译源码
-     * TODO 多线程时会阻塞
-     *
-     * @param dir 源码目录
-     * @date 2019-11-07 下午2:02
-     */
-    public void compile(String dir) throws Exception {
-        compileCode.compile(dir);
+    public void update() {
+
     }
 
-    /**
-     * 打包应用
-     *
-     * @param
-     * @return
-     * @date 2019-11-07 下午2:03
-     */
-    public void pack(String appId, String version, String appEntryDir) throws Exception {
-        packApp.pack(appId, version, appEntryDir);
+    public void compile() {
+    }
+
+    public void pack() {
+    }
+
+    public void deploy() {
     }
 }

+ 0 - 16
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/CompileCode.java

@@ -1,16 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.compiler;
-
-/**
- * 编译代码
- *
- * @author reghao
- * @date 2020-01-21 16:17:22
- */
-public interface CompileCode {
-    /**
-     * @param dir 应用目录
-     * @return
-     * @date 2020-01-21 下午4:20
-     */
-    void compile(String dir) throws Exception;
-}

+ 0 - 54
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/Maven.java

@@ -1,54 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.compiler;
-
-import cn.reghao.autodop.dmaster.app.service.build.tools.packer.PackApp;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.maven.shared.invoker.*;
-
-import java.io.File;
-import java.util.Collections;
-
-/**
- * Maven 编译,打包
- *
- * @author reghao
- * @date 2019-10-12 23:55:01
- */
-@Slf4j
-public class Maven implements CompileCode, PackApp {
-    private final String mvnHome;
-
-    public Maven() {
-        this.mvnHome = "/home/reghao/opt/tools/maven-3.6.0";
-        System.setProperty("maven.home", mvnHome);
-    }
-
-    @Override
-    public void compile(String dir) throws Exception {
-        String pomPath = dir + "/pom.xml";
-
-    }
-
-    @Override
-    public void pack(String appId, String version, String appEntryDir) throws Exception {
-    }
-
-    public static void main(String[] args) throws MavenInvocationException {
-        long start = System.currentTimeMillis();
-        String mvnHome = "/home/reghao/opt/tools/maven-3.6.0";
-        System.setProperty("maven.home", mvnHome);
-
-        String pomPath = "/home/reghao/code/aha/spider4j/pom.xml";
-        InvocationRequest request = new DefaultInvocationRequest();
-        request.setPomFile(new File(pomPath));
-        request.setGoals(Collections.singletonList("compile"));
-
-        Invoker invoker = new DefaultInvoker();
-        InvocationResult result = invoker.execute(request);
-        long end = System.currentTimeMillis();
-        if (result.getExitCode() != 0) {
-            log.info("build failed...");
-        } else {
-            log.info("build success, cost {}ms", (end-start));
-        }
-    }
-}

+ 0 - 34
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/DingNotify.java

@@ -1,34 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.notifier;
-
-import cn.reghao.autodop.common.http.DefaultWebRequest;
-import cn.reghao.autodop.common.http.WebRequest;
-import cn.reghao.autodop.common.utils.JsonUtil;
-import cn.reghao.autodop.dmaster.app.service.build.tools.notifier.msg.DingText;
-
-/**
- * 钉钉通知
- *
- * @author reghao
- * @date 2019-08-28 17:27:16
- */
-public class DingNotify implements Notify {
-    private final String webhook;
-    private WebRequest webRequest = new DefaultWebRequest();
-
-    public DingNotify(String webhook) {
-        this.webhook = webhook;
-    }
-
-    @Override
-    public void send(String text) {
-    }
-
-    @Override
-    public void sendJson(String json) throws Exception {
-        DingText text = new DingText();
-        text.putMsg(json);
-
-        // TODO 处理返回值
-        String result = webRequest.postJson(webhook, JsonUtil.objectToJson(text));
-    }
-}

+ 0 - 25
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/Notify.java

@@ -1,25 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.notifier;
-
-/**
- * @author reghao
- * @date 2020-01-24 16:28:06
- */
-public interface Notify {
-    /**
-     * 发送普通文本
-     *
-     * @param
-     * @return
-     * @date 2020-01-24 下午4:33
-     */
-    void send(String text);
-
-    /**
-     * 发送 JSON 文本
-     *
-     * @param
-     * @return
-     * @date 2020-01-24 下午4:33
-     */
-    void sendJson(String json) throws Exception;
-}

+ 0 - 36
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/msg/DingContent.java

@@ -1,36 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.notifier.msg;
-
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 钉钉消息内容
- *
- * @author reghao
- * @date 2019-10-24 15:00:28
- */
-@Data
-public class DingContent<T> implements NotifyContent<T> {
-    private String msgtype;
-    private Map<String, String> at;
-
-    public DingContent(String msgtype) {
-        this.msgtype = msgtype;
-
-        this.at = new HashMap<>();
-        at.put("atMobiles", null);
-        at.put("isAtAll", String.valueOf(true));
-    }
-
-    public void atMobiles(@NotNull String[] mobiles) {
-        at.put("atMobiles", Arrays.toString(mobiles));
-    }
-
-    @Override
-    public void putMsg(T msg) {
-    }
-}

+ 0 - 39
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/msg/DingMarkdown.java

@@ -1,39 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.notifier.msg;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 钉钉消息 markdown 格式
- *
- * @author reghao
- * @date 2019-10-24 15:01:19
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class DingMarkdown extends DingContent<DingMarkdown.Markdown> {
-    private Map<String, String> markdown;
-
-    public DingMarkdown() {
-        super("markdown");
-
-        markdown = new HashMap<>();
-        markdown.put("title", null);
-        markdown.put("text", null);
-    }
-
-    @Override
-    public void putMsg(Markdown msg) {
-        markdown.put("title", msg.getTitle());
-        markdown.put("text", msg.getText());
-    }
-
-    @Data
-    public static class Markdown {
-        private String title;
-        private String text;
-    }
-}

+ 0 - 31
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/msg/DingText.java

@@ -1,31 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.notifier.msg;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 钉钉消息文本格式
- *
- * @author reghao
- * @date 2019-10-24 14:48:41
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class DingText extends DingContent<String> {
-    private Map<String, String> text;
-
-    public DingText() {
-        super("text");
-
-        text = new HashMap<>();
-        text.put("content", null);
-    }
-
-    @Override
-    public void putMsg(String msg) {
-        text.put("content", msg);
-    }
-}

+ 0 - 11
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/notifier/msg/NotifyContent.java

@@ -1,11 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.notifier.msg;
-
-/**
- * 通知内容
- *
- * @author reghao
- * @date 2019-10-24 17:26:20
- */
-public interface NotifyContent<T> {
-    void putMsg(T msg);
-}

+ 0 - 28
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/vc/VersionControl.java

@@ -1,28 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.vc;
-
-/**
- * 版本控制
- *
- * @author reghao
- * @date 2019-10-12 22:24:28
- */
-public interface VersionControl {
-    /**
-     * 更新仓库
-     *
-     * @param remote 远程仓库路径
-     * @param local 本地仓库路径
-     * @return 当前仓库的版本
-     * @date 2019-10-12 下午11:08
-     */
-    String update(String remote, String local) throws Exception;
-
-    /**
-     * 本地仓库版本
-     *
-     * @param local 本地仓库路径
-     * @return 本地仓库版本
-     * @date 2019-10-30 下午5:23
-     */
-    String localVersion(String local) throws Exception;
-}

+ 4 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppDeploy.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/deploy/AppDeploy.java

@@ -2,10 +2,10 @@ package cn.reghao.autodop.dmaster.app.service.build;
 
 import cn.reghao.autodop.common.config.BuildDeployResult;
 import cn.reghao.autodop.common.http.HttpApi;
+import cn.reghao.autodop.common.notification.DingNotify;
+import cn.reghao.autodop.common.notification.Notify;
 import cn.reghao.autodop.common.utils.JsonUtil;
 import cn.reghao.autodop.dmaster.app.pojo.BuildMsg;
-import cn.reghao.autodop.dmaster.app.service.build.tools.notifier.DingNotify;
-import cn.reghao.autodop.dmaster.app.service.build.tools.notifier.Notify;
 import cn.reghao.autodop.dmaster.orchestrate.pojo.orchestration.AppOrchestration;
 import cn.reghao.autodop.dmaster.orchestrate.pojo.tools.AppPacker;
 import cn.reghao.autodop.dmaster.orchestrate.pojo.tools.Notifier;
@@ -31,7 +31,7 @@ public class AppDeploy {
 
         Notify notify = null;
         if ("ding".equalsIgnoreCase(notifier.getNotifierType())) {
-            notify = new DingNotify(notifier.getNotifierAddress());
+            notify = new DingNotify();
         }
 
         AppPacker appPacker = app.getBuild().getAppPacker();
@@ -68,7 +68,7 @@ public class AppDeploy {
                         new BuildMsg(app.getIdentifier(), app.getDescription(), version, app.getEnv());
                 // TODO 异步通知
                 assert notify != null;
-                notify.sendJson(JsonUtil.objectToJson(buildMsg));
+                //notify.sendJson(JsonUtil.objectToJson(buildMsg));
             }
         }
 

+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/Deployer.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/deploy/Deployer.java


+ 17 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/CodeCompiler.java

@@ -0,0 +1,17 @@
+package cn.reghao.autodop.dmaster.app.service.tools.compiler;
+
+/**
+ * 编译代码
+ *
+ * @author reghao
+ * @date 2020-01-21 16:17:22
+ */
+public interface CompileCode {
+    /**
+     * @param appName 应用名字
+     * @param appDir 应用目录
+     * @return
+     * @date 2020-01-21 下午4:20
+     */
+    void compile(String appName, String appDir) throws Exception;
+}

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/DefaultCompile.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/DefaultCompiler.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.compiler;
+package cn.reghao.autodop.dmaster.app.service.tools.compiler;
 
 /**
  * 默认实现,什么也不做
@@ -8,6 +8,6 @@ package cn.reghao.autodop.dmaster.app.service.build.tools.compiler;
  */
 public class DefaultCompile implements CompileCode {
     @Override
-    public void compile(String dir) throws Exception {
+    public void compile(String appName, String appDir) throws Exception {
     }
 }

+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/DnktMgrPreCompile.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/DnktMgrPreCompile.java


+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/DotnetPreCompile.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/DotnetPreCompile.java


+ 78 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/MavenCompiler.java

@@ -0,0 +1,78 @@
+package cn.reghao.autodop.dmaster.app.service.tools.compiler;
+
+import cn.reghao.autodop.dmaster.app.service.tools.packer.PackApp;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.maven.shared.invoker.*;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Maven 编译,打包
+ *
+ * @author reghao
+ * @date 2019-10-12 23:55:01
+ */
+@Slf4j
+public class MavenCompile implements CompileCode, PackApp {
+    private InvocationRequest request;
+    private Invoker invoker;
+    private List<String> compileLog;
+
+    public MavenCompile(String mvnHome) {
+        System.setProperty("maven.home", mvnHome);
+        this.request = new DefaultInvocationRequest();
+        this.invoker = new DefaultInvoker();
+        this.compileLog = new ArrayList<>();
+    }
+
+    @Override
+    public void compile(String appName, String appDir) throws Exception {
+        String pomPath = appDir + "/pom.xml";
+        setInvocationRequest(appName, pomPath);
+        InvocationResult result = invoker.execute(request);
+        if (result.getExitCode() != 0) {
+            log.info("构建失败...");
+        } else {
+            log.info("构建成功...");
+        }
+    }
+
+    /**
+     * mvn clean package -am -Ptest -pl ${app}
+     * // TODO 注意线程安全,也可每个线程创建一个对象
+     *
+     * @param
+     * @return
+     * @date 2020-05-12 上午10:36
+     */
+    private void setInvocationRequest(String appName, String pomPath) {
+        // 清空前一次构建的日志
+        compileLog.clear();
+        request.setPomFile(new File(pomPath));
+        // mvn clean package
+        request.setGoals(Arrays.asList("clean", "package"));
+        // -am
+        request.setAlsoMake(true);
+        // -Ptest
+        request.setProfiles(Collections.singletonList("test"));
+        // -pl auth
+        request.setProjects(Collections.singletonList(appName));
+        request.setOutputHandler(line -> compileLog.add(line));
+    }
+
+    @Override
+    public void pack(String appId, String version, String appEntryDir) throws Exception {
+    }
+
+    public static void main(String[] args) throws Exception {
+        String mvnHome = "/home/reghao/opt/tools/maven-3.6.0";
+        String projPath = "/home/reghao/code/aha/emall";
+
+        CompileCode compileCode = new MavenCompile(mvnHome);
+        compileCode.compile("file", projPath);
+    }
+}

+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/PreCompile.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/PreCompile.java


+ 3 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/ShellCompile.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/compiler/ShellCompiler.java

@@ -1,9 +1,8 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.compiler;
+package cn.reghao.autodop.dmaster.app.service.tools.compiler;
 
 import cn.reghao.autodop.common.shell.ShellExecutor;
 import cn.reghao.autodop.common.shell.ShellResult;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -24,8 +23,8 @@ public class ShellCompile implements CompileCode {
     }
 
     @Override
-    public void compile(String dir) throws Exception {
-        ShellResult result = shell.execute(script, dir);
+    public void compile(String appName, String appDir) throws Exception {
+        ShellResult result = shell.execute(script, appDir);
         if (result.hasError()) {
             Map<String, List<String>> map = new HashMap<>();
             map.put("stdout", result.getStdout());

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/PackApp.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/CodePacker.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.packer;
+package cn.reghao.autodop.dmaster.app.service.tools.packer;
 
 /**
  * 打包应用

+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DnktMgrZipPack.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/DnktMgrZipPack.java


+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DockerPack.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/DockerPack.java


+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DotnetPack.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/DotnetPack.java


+ 0 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/ZipPack.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/ZipPack.java


+ 0 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/ZipRemotePack.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/packer/ZipRemotePack.java

@@ -1,9 +1,6 @@
 package cn.reghao.autodop.dmaster.app.service.build.tools.packer;
 
 import cn.reghao.autodop.common.utils.compression.ZipUtil;
-import cn.reghao.autodop.dmaster.orchestrate.pojo.SysConfig;
-import cn.reghao.autodop.dmaster.orchestrate.pojo.tools.AppPacker;
-import cn.reghao.autodop.dmaster.utils.OssUtil;
 import lombok.extern.slf4j.Slf4j;
 
 import java.io.File;

+ 28 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/updater/CodeUpdater.java

@@ -0,0 +1,28 @@
+package cn.reghao.autodop.dmaster.app.service.tools.updater;
+
+/**
+ * 更新代码
+ *
+ * @author reghao
+ * @date 2019-10-12 22:24:28
+ */
+public interface UpdateCode {
+    /**
+     * 更新代码
+     *
+     * @param remote 远程代码仓库路径
+     * @param local 本地代码仓库路径
+     * @return 当前代码仓库的版本
+     * @date 2019-10-12 下午11:08
+     */
+    String update(String remote, String local) throws Exception;
+
+    /**
+     * 本地代码版本
+     *
+     * @param local 本地代码仓库路径
+     * @return 本地代码仓库版本
+     * @date 2019-10-30 下午5:23
+     */
+    String localVersion(String local) throws Exception;
+}

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/vc/GitImpl.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/updater/GitImpl.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.vc;
+package cn.reghao.autodop.dmaster.app.service.tools.vc;
 
 import org.eclipse.jgit.api.CloneCommand;
 import org.eclipse.jgit.api.Git;

+ 3 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/vc/SvnImpl.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/tools/updater/SvnImpl.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.build.tools.vc;
+package cn.reghao.autodop.dmaster.app.service.tools.vc;
 
 import org.tmatesoft.svn.core.SVNDepth;
 import org.tmatesoft.svn.core.SVNException;
@@ -20,13 +20,13 @@ import java.io.File;
  */
 public class SvnImpl implements VersionControl {
     private SVNUpdateClient updateClient;
-    private ISVNAuthenticationManager authManager;
 
     public SvnImpl(String username, String password) {
         DAVRepositoryFactory.setup();
         SVNRepositoryFactoryImpl.setup();
 
-        authManager = SVNWCUtil.createDefaultAuthenticationManager(username, password.toCharArray());
+        ISVNAuthenticationManager authManager =
+                SVNWCUtil.createDefaultAuthenticationManager(username, password.toCharArray());
         DefaultSVNOptions options = SVNWCUtil.createDefaultOptions(true);
 
         SVNClientManager clientManager = SVNClientManager.newInstance(options, authManager);
@@ -50,8 +50,6 @@ public class SvnImpl implements VersionControl {
     /**
      * 从远程仓库拉取代码
      *
-     * @param
-     * @return
      * @date 2020-01-06 下午3:48
      */
     private void checkout(String remote, File local) throws SVNException {

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/WebAuthenticationFailureHandlerImpl.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/AuthFailureHandlerImpl.java

@@ -15,7 +15,7 @@ import java.io.IOException;
  * @author reghao
  * @date 2019-04-09 00:02:34
  */
-public class WebAuthenticationFailureHandlerImpl implements AuthenticationFailureHandler {
+public class AuthSuccessHandlerImpl implements AuthenticationFailureHandler {
     @Override
     public void onAuthenticationFailure(HttpServletRequest request,
                                         HttpServletResponse response,

+ 18 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/WebAuthenticationSuccessHandlerImpl.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/AuthSuccessHandlerImpl.java

@@ -15,20 +15,35 @@ import java.io.IOException;
  * @author reghao
  * @date 2019-04-08 23:50:51
  */
-public class WebAuthenticationSuccessHandlerImpl implements AuthenticationSuccessHandler {
+public class AuthSuccessHandlerImpl1 implements AuthenticationSuccessHandler {
     @Override
     public void onAuthenticationSuccess(HttpServletRequest request,
                                         HttpServletResponse response,
                                         Authentication authentication)
             throws IOException, ServletException {
 
-        SavedRequest savedRequest = (SavedRequest) request.getSession().getAttribute("SPRING_SECURITY_SAVED_REQUEST");
+        /*SavedRequest savedRequest = (SavedRequest) request.getSession().getAttribute("SPRING_SECURITY_SAVED_REQUEST");
         if (savedRequest != null) {
             String redirectUrl = savedRequest.getRedirectUrl();
             // 跳转到登录前的 URL
             response.sendRedirect(redirectUrl);
         } else {
             response.sendRedirect("/");
-        }
+        }*/
+
+        String body = "";
+        response.getOutputStream().print(body);
+    }
+
+    static class Result {
+        private int code;
+        private ResultData data;
+    }
+
+    static class ResultData {
+        private String msg;
+        private boolean success;
+        private String token;
+        private String user;
     }
 }

+ 0 - 51
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/WebUserDetailsServiceImpl.java

@@ -1,51 +0,0 @@
-package cn.reghao.autodop.dmaster.auth.config;
-
-import cn.reghao.autodop.dmaster.auth.entity.UserAuth;
-import cn.reghao.autodop.dmaster.auth.repository.RoleRepository;
-import cn.reghao.autodop.dmaster.auth.repository.UserAuthRepository;
-import org.springframework.security.authentication.DisabledException;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UserDetailsService;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 实现用户认证类
- *
- * @author reghao
- * @date 2019-05-20 11:03:56
- */
-@Service
-public class WebUserDetailsServiceImpl implements UserDetailsService {
-    private UserAuthRepository userAuthRepository;
-    private RoleRepository roleRepository;
-
-    public WebUserDetailsServiceImpl(UserAuthRepository userAuthRepository, RoleRepository roleRepository) {
-        this.userAuthRepository = userAuthRepository;
-        this.roleRepository = roleRepository;
-    }
-
-    @Override
-    public UserDetails loadUserByUsername(String principal) throws UsernameNotFoundException {
-        // 使用 email 作为 principal
-        UserAuth userAuth = userAuthRepository.findUserAuthByUsername(principal);
-        if (userAuth != null) {
-            String role = roleRepository.findRoleById(userAuth.getRoleId());
-            // 用户获得的授权
-            List<GrantedAuthority> grantedAuthorities = new ArrayList<>();
-            GrantedAuthority grantedAuthority = new SimpleGrantedAuthority(role);
-            grantedAuthorities.add(grantedAuthority);
-
-            return new UserAuth(userAuth.getUsername(), userAuth.getPassword(), grantedAuthorities);
-        } else {
-            // Spring Security 会将 UsernameNotFoundException 捕获并替换,使得前端无法看到信息
-            //throw new UsernameNotFoundException(email + " 未注册");
-            throw new DisabledException(principal + " 未注册");
-        }
-    }
-}

+ 0 - 32
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/filter/LoginRedirectFilter.java

@@ -1,32 +0,0 @@
-package cn.reghao.autodop.dmaster.auth.filter;
-
-import javax.servlet.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import java.io.IOException;
-
-/**
- * 已登录状态下,访问 /signin 页面自动跳转到 /
- *
- * @author reghao
- * @date 2019-06-04 23:06:50
- */
-public class LoginRedirectFilter implements Filter {
-    @Override
-    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
-            throws IOException, ServletException {
-        HttpServletRequest httpRequest = (HttpServletRequest) request;
-        HttpServletResponse httpResponse = (HttpServletResponse) response;
-        HttpSession session = httpRequest.getSession();
-
-        String pattern = "/signin";
-        String url = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length());
-        if (url.equals(pattern) && session.getAttribute("SPRING_SECURITY_CONTEXT") != null) {
-            httpResponse.sendRedirect("/");
-            return;
-        }
-
-        chain.doFilter(request, response);
-    }
-}

+ 0 - 39
dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/AuthController.java

@@ -1,39 +0,0 @@
-package cn.reghao.autodop.dmaster.view.controller;
-
-import cn.reghao.autodop.dmaster.result.WebResult;
-import lombok.Data;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-/**
- * @author reghao
- * @date 2019-08-26 23:57:41
- */
-@Controller
-public class AuthController {
-    @GetMapping("/login")
-    public String login() {
-        return "login";
-    }
-
-    @GetMapping("/logout")
-    public String logout() {
-        return "login";
-    }
-
-    @PostMapping("/login")
-    @ResponseBody
-    public ResponseEntity<String> login1(UserAuth userAuth) {
-        String webResult = new WebResult<>().jsonResult("ok");
-        return ResponseEntity.ok().body(webResult);
-    }
-
-    @Data
-    static class UserAuth {
-        private String username;
-        private String password;
-    }
-}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 24
dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/DataController.java


+ 0 - 28
dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/ErrorPageController.java

@@ -1,28 +0,0 @@
-package cn.reghao.autodop.dmaster.view.controller;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-/**
- * @author reghao
- * @date 2020-05-01 22:22:01
- */
-@Controller
-@RequestMapping("/layuix/views")
-public class ErrorPageController {
-    @GetMapping("/403")
-    public String test403() {
-        return "views/error/403";
-    }
-
-    @GetMapping("/404")
-    public String test404() {
-        return "views/error/404";
-    }
-
-    @GetMapping("/500")
-    public String test500() {
-        return "views/error/500";
-    }
-}

+ 0 - 33
dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/SysController.java

@@ -1,33 +0,0 @@
-package cn.reghao.autodop.dmaster.view.controller;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-/**
- * @author reghao
- * @date 2020-05-01 22:22:01
- */
-@Controller
-@RequestMapping("/layuix/views")
-public class SysController {
-    @GetMapping("/sys/user")
-    public String user() {
-        return "views/sys/user/user";
-    }
-
-    @GetMapping("/user/profile")
-    public String userProfile() {
-        return "views/sys/user/userProfile";
-    }
-
-    @GetMapping("/password/update")
-    public String updatePassword() {
-        return "views/sys/user/passwordUpdate";
-    }
-
-    @GetMapping("/user/profile/update")
-    public String updateProfile() {
-        return "views/sys/user/profileUpdate";
-    }
-}

+ 0 - 34
dmaster/src/main/java/cn/reghao/autodop/dmaster/view/controller/ViewController.java

@@ -1,34 +0,0 @@
-package cn.reghao.autodop.dmaster.view.controller;
-
-import io.swagger.annotations.Api;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2019-08-26 23:57:41
- */
-@Api(tags = "视图")
-@Controller
-public class ViewController {
-    @GetMapping({"/"})
-    public String index() {
-        // templates/index.html
-        return "index";
-    }
-
-    @GetMapping("/layuix/views/index")
-    public String index1() {
-        return "views/index";
-    }
-
-    @GetMapping("/layuix/views/layout")
-    public String layout() {
-        return "views/layout";
-    }
-
-    @GetMapping("/images/captcha")
-    public String captcha() {
-        return "http://localhost:4000/layuix/images/captcha.png";
-    }
-}

+ 0 - 23
dmaster/src/main/java/cn/reghao/autodop/dmaster/view/pojo/Menu.java

@@ -1,23 +0,0 @@
-package cn.reghao.autodop.dmaster.view.pojo;
-
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * @author reghao
- * @date 2020-05-01 14:09:37
- */
-@Data
-public class Menu {
-    private int menuId;
-    private String menuName;
-    private String url;
-    private String permission;
-    private String icon;
-    private String type;
-    private int orderNum;
-    private int parentId;
-    private Date createTime;
-    private Date modifyTime;
-}

+ 0 - 25
dmaster/src/main/java/cn/reghao/autodop/dmaster/view/pojo/SideBar.java

@@ -1,25 +0,0 @@
-package cn.reghao.autodop.dmaster.view.pojo;
-
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2020-05-01 14:05:04
- */
-@Data
-public class SideBar {
-    private int id;
-    private String title;
-    private String icon;
-    private String href;
-    private Object state;
-    private boolean checked;
-    private String attributes;
-    private List<SideBar> childs;
-    private String parentId;
-    private boolean hasParent;
-    private boolean hasChild;
-    private Menu data;
-}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
dmaster/src/main/resources/static/layui/css/layui.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
dmaster/src/main/resources/static/layui/css/layui.mobile.css


+ 0 - 2
dmaster/src/main/resources/static/layui/css/modules/code.css

@@ -1,2 +0,0 @@
-/** layui-v2.5.5 MIT License By https://www.layui.com */
- html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
dmaster/src/main/resources/static/layui/css/modules/laydate/default/laydate.css


BIN
dmaster/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png


BIN
dmaster/src/main/resources/static/layui/css/modules/layer/default/icon.png


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
dmaster/src/main/resources/static/layui/css/modules/layer/default/layer.css


BIN
dmaster/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif


BIN
dmaster/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif


BIN
dmaster/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif


BIN
dmaster/src/main/resources/static/layui/font/iconfont.eot


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 25
dmaster/src/main/resources/static/layui/font/iconfont.svg


BIN
dmaster/src/main/resources/static/layui/font/iconfont.ttf


BIN
dmaster/src/main/resources/static/layui/font/iconfont.woff


BIN
dmaster/src/main/resources/static/layui/font/iconfont.woff2


BIN
dmaster/src/main/resources/static/layui/images/face/0.gif


BIN
dmaster/src/main/resources/static/layui/images/face/1.gif


BIN
dmaster/src/main/resources/static/layui/images/face/10.gif


BIN
dmaster/src/main/resources/static/layui/images/face/11.gif


BIN
dmaster/src/main/resources/static/layui/images/face/12.gif


BIN
dmaster/src/main/resources/static/layui/images/face/13.gif


BIN
dmaster/src/main/resources/static/layui/images/face/14.gif


BIN
dmaster/src/main/resources/static/layui/images/face/15.gif


BIN
dmaster/src/main/resources/static/layui/images/face/16.gif


BIN
dmaster/src/main/resources/static/layui/images/face/17.gif


BIN
dmaster/src/main/resources/static/layui/images/face/18.gif


BIN
dmaster/src/main/resources/static/layui/images/face/19.gif


BIN
dmaster/src/main/resources/static/layui/images/face/2.gif


BIN
dmaster/src/main/resources/static/layui/images/face/20.gif


BIN
dmaster/src/main/resources/static/layui/images/face/21.gif


BIN
dmaster/src/main/resources/static/layui/images/face/22.gif


BIN
dmaster/src/main/resources/static/layui/images/face/23.gif


BIN
dmaster/src/main/resources/static/layui/images/face/24.gif


BIN
dmaster/src/main/resources/static/layui/images/face/25.gif


BIN
dmaster/src/main/resources/static/layui/images/face/26.gif


BIN
dmaster/src/main/resources/static/layui/images/face/27.gif


BIN
dmaster/src/main/resources/static/layui/images/face/28.gif


BIN
dmaster/src/main/resources/static/layui/images/face/29.gif


BIN
dmaster/src/main/resources/static/layui/images/face/3.gif


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác