Commit 41d98087 authored by 黎博's avatar 黎博

新增测试流程时,执行提测说明的SQL和构建pipeline项目

parent 0bf0a99b
...@@ -13,6 +13,9 @@ import cn.qg.holmes.service.quality.DingRobotService; ...@@ -13,6 +13,9 @@ import cn.qg.holmes.service.quality.DingRobotService;
import cn.qg.holmes.service.quality.JiraService; import cn.qg.holmes.service.quality.JiraService;
import cn.qg.holmes.service.quality.SubmitTestInstructionService; import cn.qg.holmes.service.quality.SubmitTestInstructionService;
import cn.qg.holmes.utils.DingdingUtils; import cn.qg.holmes.utils.DingdingUtils;
import cn.qg.holmes.utils.HttpClientUtils;
import cn.qg.holmes.utils.JenkinsService;
import com.alibaba.fastjson.JSONArray;
import com.atlassian.jira.rest.client.api.domain.BasicProject; import com.atlassian.jira.rest.client.api.domain.BasicProject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -20,6 +23,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -20,6 +23,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -53,6 +57,9 @@ public class PipelineController { ...@@ -53,6 +57,9 @@ public class PipelineController {
@Autowired @Autowired
JiraService jiraService; JiraService jiraService;
@Autowired
JenkinsService jenkinsService;
/** /**
* gitlab webhook * gitlab webhook
* @param request * @param request
...@@ -164,12 +171,36 @@ public class PipelineController { ...@@ -164,12 +171,36 @@ public class PipelineController {
String dingUrl = dingRobot.getDingUrl(); String dingUrl = dingRobot.getDingUrl();
Integer submitTestInstructionId = dingRobot.getSubmitTestInstructionId(); Integer submitTestInstructionId = dingRobot.getSubmitTestInstructionId();
SubmitTestInstruction submitTestInstruction = submitTestInstructionService.getById(submitTestInstructionId); SubmitTestInstruction submitTestInstruction = submitTestInstructionService.getById(submitTestInstructionId);
// 提测说明不为空时
if (submitTestInstruction != null) { if (submitTestInstruction != null) {
// 开始循环执行SQL
String database = submitTestInstruction.getDatabase();
List<Map> databaseMapList = JSONArray.parseArray(database, Map.class);
String sqlExecUrl = "https://qa-platform.liangkebang.com/sql/execute";
Map<String, String> sqlExecParams = new HashMap<>();
sqlExecParams.put("namespace", dingRobot.getNamespace());
for (Map map: databaseMapList) {
String db = map.get("db").toString();
String sql = map.get("sql").toString();
sqlExecParams.put("database", db);
sqlExecParams.put("sql", sql);
sqlExecParams.put("type", sql.split(" ")[0]);
String response = HttpClientUtils.doGet(sqlExecUrl, sqlExecParams);
log.info("开始在数据库:{} 执行SQL: {}, 返回结果:{}", db, sql, response);
}
// 开始循环部署项目
for (Pipeline pipeline: pipelineList) {
log.info("首次创建提测说明,部署项目:{}, 分支:{}, 项目类型:{}, Namespace:{}", pipeline.getServiceName(),
pipeline.getServiceBranch(), pipeline.getServiceType(), pipeline.getNamespace());
jenkinsService.buildTkeJob(pipeline.getServiceType(), pipeline.getServiceName(), pipeline.getServiceBranch(), pipeline.getNamespace());
}
String submitTestUrl = "http://flash-fe.liangkebang.net/qa/detailTestDescription?projectName=" + projectName + "&jiraProjectKey=" + jiraProjectKey; String submitTestUrl = "http://flash-fe.liangkebang.net/qa/detailTestDescription?projectName=" + projectName + "&jiraProjectKey=" + jiraProjectKey;
String msg = DingdingUtils.buildTestSubmitInstructionMsg(projectName, submitTestUrl); String msg = DingdingUtils.buildTestSubmitInstructionMsg(projectName, submitTestUrl);
boolean sendToDingResult = DingdingUtils.sendToDingding(msg, dingUrl); boolean sendToDingResult = DingdingUtils.sendToDingding(msg, dingUrl);
log.info("创建测试流程时,发送给数据组的通知结果:" + sendToDingResult); log.info("创建测试流程时,发送给数据组的通知结果:" + sendToDingResult);
} }
log.info("新增dingRobot以及对应pipeline成功: {}", dingRobotPipelineVo);
return JsonResult.buildSuccessResult(true); return JsonResult.buildSuccessResult(true);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -191,7 +191,7 @@ public class AutoUtilsServiceImpl implements AutoUtilsService { ...@@ -191,7 +191,7 @@ public class AutoUtilsServiceImpl implements AutoUtilsService {
params.put("sql", sql); params.put("sql", sql);
params.put("type", type); params.put("type", type);
log.info("开始执行SQL:{}", sql); log.info("开始执行SQL:{}", sql);
String url = "https://qa-platform-yxm.liangkebang.net/sql/execute"; String url = "https://qa-platform.liangkebang.com/sql/execute";
String result = HttpClientUtils.doGet(url, params); String result = HttpClientUtils.doGet(url, params);
log.info("SQL返回结果:{}", result); log.info("SQL返回结果:{}", result);
// 只有select才需要加入Map // 只有select才需要加入Map
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment