Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
holmes
Commits
41d98087
Commit
41d98087
authored
Nov 17, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增测试流程时,执行提测说明的SQL和构建pipeline项目
parent
0bf0a99b
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
1 deletion
+32
-1
PipelineController.java
...va/cn/qg/holmes/controller/gitlab/PipelineController.java
+31
-0
AutoUtilsServiceImpl.java
.../cn/qg/holmes/service/auto/impl/AutoUtilsServiceImpl.java
+1
-1
No files found.
src/main/java/cn/qg/holmes/controller/gitlab/PipelineController.java
View file @
41d98087
...
...
@@ -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
();
...
...
src/main/java/cn/qg/holmes/service/auto/impl/AutoUtilsServiceImpl.java
View file @
41d98087
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment