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

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

parent 0bf0a99b
......@@ -13,6 +13,9 @@ import cn.qg.holmes.service.quality.DingRobotService;
import cn.qg.holmes.service.quality.JiraService;
import cn.qg.holmes.service.quality.SubmitTestInstructionService;
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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -20,6 +23,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
......@@ -53,6 +57,9 @@ public class PipelineController {
@Autowired
JiraService jiraService;
@Autowired
JenkinsService jenkinsService;
/**
* gitlab webhook
* @param request
......@@ -164,12 +171,36 @@ public class PipelineController {
String dingUrl = dingRobot.getDingUrl();
Integer submitTestInstructionId = dingRobot.getSubmitTestInstructionId();
SubmitTestInstruction submitTestInstruction = submitTestInstructionService.getById(submitTestInstructionId);
// 提测说明不为空时
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 msg = DingdingUtils.buildTestSubmitInstructionMsg(projectName, submitTestUrl);
boolean sendToDingResult = DingdingUtils.sendToDingding(msg, dingUrl);
log.info("创建测试流程时,发送给数据组的通知结果:" + sendToDingResult);
}
log.info("新增dingRobot以及对应pipeline成功: {}", dingRobotPipelineVo);
return JsonResult.buildSuccessResult(true);
} catch (Exception e) {
e.printStackTrace();
......
......@@ -191,7 +191,7 @@ public class AutoUtilsServiceImpl implements AutoUtilsService {
params.put("sql", sql);
params.put("type", type);
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);
log.info("SQL返回结果:{}", result);
// 只有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