Browse Source

feat: 添加前端node12 14 16版本

zhaoxingrui 4 năm trước cách đây
mục cha
commit
6b894fb90e

+ 2 - 1
web/src/main/java/cn/seecoder/web/core/pipeline/PipelineFactory.java

@@ -27,9 +27,10 @@ public class PipelineFactory {
      * @param deployName   流水线部署k8s的应用名称,devcloud后端采用Pipeline中的name作为project name
      * @return
      */
-    public static Pipeline init(String configJson, String namespace, String deployName) throws PipelineException {
+    public static Pipeline init(Integer id, String configJson, String namespace, String deployName) throws PipelineException {
         //初始化context
         Context context = Context.builder()
+                .pipelineId(id)
                 .deployName(deployName)
                 .namespace(namespace)
                 .build();

+ 5 - 1
web/src/main/java/cn/seecoder/web/core/pipeline/handler/NodeImageBuildHandler.java

@@ -3,6 +3,7 @@ package cn.seecoder.web.core.pipeline.handler;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;
 import cn.seecoder.web.core.pipeline.template.PipelineTemplateTable;
+import cn.seecoder.web.service.pipeline.PipelineService;
 import com.spotify.docker.client.ProgressHandler;
 import com.spotify.docker.client.exceptions.DockerException;
 import com.spotify.docker.client.messages.ProgressMessage;
@@ -36,9 +37,12 @@ public class NodeImageBuildHandler extends AbstractHandler{
 
     public final GitApi gitApi;
 
+    public final PipelineService pipelineService;
+
     public NodeImageBuildHandler() {
         dockerApi = SpringUtil.getBean(DockerApi.class);
         gitApi = SpringUtil.getBean(GitApi.class);
+        pipelineService = SpringUtil.getBean(PipelineService.class);
     }
 
     private String repoUrl;
@@ -50,7 +54,7 @@ public class NodeImageBuildHandler extends AbstractHandler{
     @Override
     public void process(Context context) throws PipelineException {
         //0. 变量准备
-        String templateName = PipelineTemplateTable.NODE_10;
+        String templateName = pipelineService.getTemplateNameById(context.getPipelineId());
         String imageName = context.getNamespace() + "-" + context.getDeployName();
 
         // 1. 有git从git拿到地址仓库

+ 6 - 0
web/src/main/java/cn/seecoder/web/core/pipeline/template/PipelineTemplateTable.java

@@ -27,6 +27,9 @@ public class PipelineTemplateTable {
     //模板名
     public static final String SPRINGBOOT_JAVA8 = "SPRINGBOOT_JAVA8";
     public static final String NODE_10 = "NODE_10";
+    public static final String NODE_12 = "NODE_12";
+    public static final String NODE_14 = "NODE_14";
+    public static final String NODE_16 = "NODE_16";
     public static final String MYSQL = "MYSQL";
 
 
@@ -36,6 +39,9 @@ public class PipelineTemplateTable {
     static {
         templateNames = new HashSet<String>();
         templateNames.add(NODE_10);
+        templateNames.add(NODE_12);
+        templateNames.add(NODE_14);
+        templateNames.add(NODE_16);
         templateNames.add(SPRINGBOOT_JAVA8);
         templateNames.add(MYSQL);
 

+ 4 - 0
web/src/main/java/cn/seecoder/web/model/po/pipeline/PipelinePO.java

@@ -1,7 +1,9 @@
 package cn.seecoder.web.model.po.pipeline;
 
+import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * @author PuHong Weng
@@ -10,6 +12,8 @@ import lombok.Data;
  */
 @Data
 @Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class PipelinePO {
 
     Integer id;

+ 1 - 1
web/src/main/java/cn/seecoder/web/service/impl/pipeline/DeploymentServiceImpl.java

@@ -144,7 +144,7 @@ public class DeploymentServiceImpl implements DeploymentService {
 
         Pipeline pipeline = null;
         try {
-            pipeline = PipelineFactory.init(pipelinePO.getConfigJson(), projectPO.getUniqueK8sNamespace(), pipelinePO.getName());
+            pipeline = PipelineFactory.init(pipelinePO.getId(), pipelinePO.getConfigJson(), projectPO.getUniqueK8sNamespace(), pipelinePO.getName());
             pipeline.addConfig("pipelineRecordId", record.getId().toString());
             pipeline.start();
             record.setResult(PipelineRecordPO.DEPLOY_SUCCESS);

+ 6 - 0
web/src/main/java/cn/seecoder/web/service/impl/pipeline/PipelineServiceImpl.java

@@ -179,4 +179,10 @@ public class PipelineServiceImpl implements PipelineService {
         recordVO.setPipelineName(pipelineMapper.selectById(recordPO.getPipelineId()).getName());
         return recordVO;
     }
+
+    @Override
+    public String getTemplateNameById(Integer id) {
+        PipelinePO po = pipelineMapper.selectById(id);
+        return po.getTemplateName();
+    }
 }

+ 5 - 0
web/src/main/java/cn/seecoder/web/service/pipeline/PipelineService.java

@@ -61,4 +61,9 @@ public interface PipelineService {
     List<String> getTemplateNames();
 
     PipelineRecordVO retrieveRecordById(Integer id);
+
+    /**
+     * 获取一条前端流水线使用的NODE版本信息
+     */
+    String getTemplateNameById(Integer id);
 }

+ 18 - 0
web/src/main/resources/template/config/NODE_12.json

@@ -0,0 +1,18 @@
+[
+  {
+    "name": "node-image-build",
+    "active": true,
+    "configs": {
+      "repoUrl": "#todo",
+      "branchName": "#todo",
+      "nginxConfig": "#todo"
+    }
+  },
+  {
+    "name": "deploy",
+    "active": true,
+    "configs": {
+      "port": "#todo"
+    }
+  }
+]

+ 18 - 0
web/src/main/resources/template/config/NODE_14.json

@@ -0,0 +1,18 @@
+[
+  {
+    "name": "node-image-build",
+    "active": true,
+    "configs": {
+      "repoUrl": "#todo",
+      "branchName": "#todo",
+      "nginxConfig": "#todo"
+    }
+  },
+  {
+    "name": "deploy",
+    "active": true,
+    "configs": {
+      "port": "#todo"
+    }
+  }
+]

+ 18 - 0
web/src/main/resources/template/config/NODE_16.json

@@ -0,0 +1,18 @@
+[
+  {
+    "name": "node-image-build",
+    "active": true,
+    "configs": {
+      "repoUrl": "#todo",
+      "branchName": "#todo",
+      "nginxConfig": "#todo"
+    }
+  },
+  {
+    "name": "deploy",
+    "active": true,
+    "configs": {
+      "port": "#todo"
+    }
+  }
+]

+ 12 - 0
web/src/main/resources/template/dockerfile/NODE_12

@@ -0,0 +1,12 @@
+# 前端打包dockerfile
+FROM node:12-alpine as builder
+WORKDIR /code
+RUN yarn config set registry https://registry.npm.taobao.org/
+ADD package.json /code
+RUN yarn install
+ADD . /code
+RUN yarn build
+
+FROM nginx:1.19-alpine
+COPY --from=builder /code/nginx.conf /etc/nginx/conf.d/nginx.conf
+COPY --from=builder /code/dist/ /var/www/html/dist/

+ 12 - 0
web/src/main/resources/template/dockerfile/NODE_14

@@ -0,0 +1,12 @@
+# 前端打包dockerfile
+FROM node:14-alpine as builder
+WORKDIR /code
+RUN yarn config set registry https://registry.npm.taobao.org/
+ADD package.json /code
+RUN yarn install
+ADD . /code
+RUN yarn build
+
+FROM nginx:1.19-alpine
+COPY --from=builder /code/nginx.conf /etc/nginx/conf.d/nginx.conf
+COPY --from=builder /code/dist/ /var/www/html/dist/

+ 12 - 0
web/src/main/resources/template/dockerfile/NODE_16

@@ -0,0 +1,12 @@
+# 前端打包dockerfile
+FROM node:16-alpine as builder
+WORKDIR /code
+RUN yarn config set registry https://registry.npm.taobao.org/
+ADD package.json /code
+RUN yarn install
+ADD . /code
+RUN yarn build
+
+FROM nginx:1.19-alpine
+COPY --from=builder /code/nginx.conf /etc/nginx/conf.d/nginx.conf
+COPY --from=builder /code/dist/ /var/www/html/dist/