Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
global-jenkinsfile
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
global-jenkinsfile
Commits
41f83e25
Commit
41f83e25
authored
Apr 03, 2018
by
wentao.suo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ffff
parent
06ffc612
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
146 additions
and
133 deletions
+146
-133
StageBucket.groovy
src/org/qg/docker_new/StageBucket.groovy
+88
-50
Utils.groovy
src/org/qg/docker_new/Utils.groovy
+2
-1
qgDockerPiplineWithDocer.groovy
vars/qgDockerPiplineWithDocer.groovy
+56
-82
No files found.
src/org/qg/docker_new/StageBucket.groovy
View file @
41f83e25
...
@@ -4,18 +4,39 @@ import org.qg.docker.Utils;
...
@@ -4,18 +4,39 @@ import org.qg.docker.Utils;
import
groovy.json.JsonSlurperClassic
;
import
groovy.json.JsonSlurperClassic
;
def
_utils
=
new
org
.
qg
.
docker
.
Utils
();
def
_utils
=
new
org
.
qg
.
docker
.
Utils
();
def
harborGroup
=
"library"
def
debug
()
{
def
debug
()
{
_utils
().
beautyEcho
(
"debug"
,
"info"
)
_utils
().
beautyEcho
(
"debug"
,
"info"
)
}
}
def
before_prepare
(
contextDir
)
{
def
before_prepare
()
{
sh
"rm -rf ${contextDir}"
sh
"cd /home/quant_group/qg-dockerfiles; git pull; cd -"
sh
"cd /home/quant_group/qg-dockerfiles; git pull; cd -"
sh
"cd /home/quant_group/config_repository; git pull origin master; cd -"
sh
"cd /home/quant_group/config_repository; git pull origin master; cd -"
}
}
def
prepare_config
(
buildType
,
systemName
,
contextDir
)
{
switch
(
buildType
)
{
case
"java"
:
prepare_java
(
systemName
,
contextDir
)
break
case
"nodejs"
:
prepare_nodejs
(
systemName
,
contextDir
)
break
case
"python"
:
prepare_python
(
systemName
,
contextDir
)
break
case
"lua-ui"
:
prepare_luaui
(
systemNames
,
contextDir
)
break
default:
echo
"未知的buildType: ${config.buildType}"
break
}
}
def
prepare_java
(
systemName
,
contextDir
)
{
def
prepare_java
(
systemName
,
contextDir
)
{
sh
"cp -rf /home/quant_group/qg-dockerfiles/templates/java ${contextDir}"
sh
"cp -rf /home/quant_group/qg-dockerfiles/templates/java ${contextDir}"
sh
"cp -rf /home/quant_group/config_repository/java/${systemName}.properties ${contextDir}/application.properties"
sh
"cp -rf /home/quant_group/config_repository/java/${systemName}.properties ${contextDir}/application.properties"
...
@@ -49,13 +70,8 @@ def prepare_python(systemName, contextDir) {
...
@@ -49,13 +70,8 @@ def prepare_python(systemName, contextDir) {
sh
"cp -rf /home/quant_group/config_repository/python/${systemName}.ini ${contextDir}/config.ini"
sh
"cp -rf /home/quant_group/config_repository/python/${systemName}.ini ${contextDir}/config.ini"
}
}
def
checkout
(
branchName
,
system
Name
)
{
def
checkout
(
git_path
,
branch
Name
)
{
git_path
=
project_attr
(
systemName
)[
"gitPath"
]
if
(
git_path
==
"git@gitabc.xyqb.com:data-riskcontrol/urge-dispatcher.git"
){
git_path
=
"git@gitabc.xyqb.com:data-riskcontrol/urge_dispatcher.git"
}
_utils
().
beautyEcho
(
"git_path:"
+
git_path
,
"info"
)
git
branch:
branchName
,
credentialsId:
'e1ccb1ac-1282-4fb4-b766-530ca1a2a2db'
,
url:
git_path
git
branch:
branchName
,
credentialsId:
'e1ccb1ac-1282-4fb4-b766-530ca1a2a2db'
,
url:
git_path
}
}
...
@@ -156,29 +172,18 @@ def build_java(namespace, systemName, contextDir) {
...
@@ -156,29 +172,18 @@ def build_java(namespace, systemName, contextDir) {
sh
'/usr/share/maven/bin/mvn clean package -P test -D maven.test.skip=true'
sh
'/usr/share/maven/bin/mvn clean package -P test -D maven.test.skip=true'
}
}
def
copy_files_java
(
systemName
,
contextDir
)
{
def
copy_files
(
buildType
,
target
,
contextDir
){
switch
(
systemName
)
{
switch
(
buildType
){
case
"baitiao-zhitou"
:
case
"java"
jar_path
=
"xyqb-btzt-internal/target/*.jar"
copy_files_java
(
target
,
contextDir
)
break
case
"baitiao"
:
jar_path
=
"baitiao-api/target/*.jar"
break
case
"xyqb-display"
:
jar_path
=
"display-api/target/*.jar"
break
case
"zero-gateway-zuul"
:
jar_path
=
"app-starter/target/*.jar"
break
case
"baitiao-op-backend"
:
jar_path
=
"xyqb-backend/target/*.jar"
break
default:
jar_path
=
"target/*.jar"
break
break
default
echo
"%{buildType} not copy...."
}
}
}
sh
"cp ${jar_path} ${contextDir}/"
def
copy_files_java
(
target
,
contextDir
)
{
sh
"cp ${target}/*.jar ${contextDir}/app.jar"
}
}
def
build_nodejs
(
namespace
,
systemName
,
contextDir
)
{
def
build_nodejs
(
namespace
,
systemName
,
contextDir
)
{
...
@@ -311,3 +316,36 @@ def update_microservice(namespace, name, image, tier) {
...
@@ -311,3 +316,36 @@ def update_microservice(namespace, name, image, tier) {
def
getDocketPackageImage
(
buildType
){
def
packageImageInfo
=[:]
switch
(
buildType
)
{
case
"java"
:
def
args
=
"-v /root/.m2:/root/.m2 "
args
+=
"-v /home/quant_group/qg-dockerfiles:/home/quant_group/qg-dockerfiles "
args
+=
"-v /home/quant_group/config_repository:/home/quant_group/config_repository "
args
+=
"-v /home/quant_group/pacakge/:/home/quant_group/pacakge/ "
packageImageInfo
[
"image"
]
=
"192.168.4.36/baseimg/jenkins-slave:2018040302"
packageImageInfo
[
"args"
]
=
args
break
case
"nodejs"
:
packageImageInfo
[
"image"
]
=
""
packageImageInfo
[
"args"
]
=
""
break
case
"python"
:
packageImageInfo
[
"image"
]
=
""
packageImageInfo
[
"args"
]
=
""
break
case
"lua-ui"
:
packageImageInfo
[
"image"
]
=
""
packageImageInfo
[
"args"
]
=
""
break
default:
echo
"未知的buildType: ${config.buildType}"
break
}
return
packageImageInfo
}
src/org/qg/docker_new/Utils.groovy
View file @
41f83e25
...
@@ -5,7 +5,8 @@ def root = "/home/quantgroup/"
...
@@ -5,7 +5,8 @@ def root = "/home/quantgroup/"
def
contextDir
(
key
)
{
def
contextDir
(
key
)
{
uuid
=
UUID
.
randomUUID
().
toString
()
uuid
=
UUID
.
randomUUID
().
toString
()
contextDir
=
"/home/quant_group/pacakge//${key}"
contextDir
=
"/home/quant_group/pacakge/${key}"
sh
"mkdir -p ${contextDir}"
return
contextDir
return
contextDir
}
}
...
...
vars/qgDockerPiplineWithDocer.groovy
View file @
41f83e25
import
org.qg.docker.*
import
java.time.*
def
getTime
(){
def
_stage
=
new
org
.
qg
.
docker_new
.
StageBucket
()
LocalDateTime
t
=
LocalDateTime
.
now
();
def
_utils
=
new
org
.
qg
.
docker_new
.
Utils
()
return
t
as
String
}
def
call
(
body
)
{
def
call
(
body
)
{
def
config
=
[:]
def
config
=
[:]
def
timeStemp
=
new
Date
().
format
(
"yyyyMMddHHmmss"
)
def
env
=
body
.
env
def
env
=
body
.
env
def
branchName
=
env
.
BRANCH_NAME
def
branchName
=
env
.
BRANCH_NAME
def
gitRepo
=
env
.
GIT_REPO
def
gitRepo
=
env
.
GIT_REPO
...
@@ -22,19 +16,15 @@ def call(body) {
...
@@ -22,19 +16,15 @@ def call(body) {
t
=
gitRepo
.
split
(
"/"
)
t
=
gitRepo
.
split
(
"/"
)
def
gitGroup
=
t
[
0
]
def
gitGroup
=
t
[
0
]
def
originSystemName
=
t
[
1
]
def
systemName
=
t
[
1
].
toLowerCase
()
def
systemName
=
originSystemName
.
toLowerCase
()
echo
"====JOB_NAME : ${env.JOB_NAME}"
def
contextDir
def
imageTag
def
harborGroup
=
"library"
regex
=
"[`,./;\\[\\]&<>?:\"()|-]+"
/* def workspace = "/home/quant_ group/jenkins_home/workspace/${env.JOB_NAME}"*/
def
imageTag
k8sSystemName
=
systemName
.
replaceAll
(
"_"
,
"-"
)
def
timeStemp
=
new
Date
().
format
(
"yyyyMMddHHmmss"
)
safeBranchName
=
branchName
.
replaceAll
(
regex
,
"_"
)
def
_stage
=
new
org
.
qg
.
docker
.
StageBucket
()
def
_utils
=
new
org
.
qg
.
docker
.
Utils
()
def
contextDir
=
"/home/quant_group/pacakge/${systemName}-${timeStemp}"
body
.
resolveStrategy
=
Closure
.
DELEGATE_FIRST
body
.
resolveStrategy
=
Closure
.
DELEGATE_FIRST
body
.
delegate
=
config
body
.
delegate
=
config
...
@@ -43,47 +33,39 @@ def call(body) {
...
@@ -43,47 +33,39 @@ def call(body) {
node
{
node
{
try
{
try
{
sh
"mkdir -p ${contextDir}"
withDockerServer
([
uri:
"tcp://192.168.4.96:2375/"
])
{
stage
(
'prepare'
)
{
contextDir
=
contextDir$
{
systemName
}-
$
{
timeStemp
}
def
volume
=
"-v /root/.m2:/root/.m2 "
_stage
.
before_prepare
()
volume
+=
"-v /home/quant_group/qg-dockerfiles:/home/quant_group/qg-dockerfiles "
volume
+=
"-v /home/quant_group/config_repository:/home/quant_group/config_repository "
volume
+=
"-v /home/quant_group/pacakge/:/home/quant_group/pacakge/ "
docker
.
image
(
"192.168.4.36/baseimg/jenkins-slave:2018040302"
).
inside
(
volume
){
git_path
=
project_attr
(
systemName
)[
"gitPath"
]
if
(
git_path
==
"git@gitabc.xyqb.com:data-riskcontrol/urge-dispatcher.git"
){
git_path
=
"git@gitabc.xyqb.com:data-riskcontrol/urge_dispatcher.git"
}
}
git
branch:
branchName
,
credentialsId:
'e1ccb1ac-1282-4fb4-b766-530ca1a2a2db'
,
url:
git_path
pacegeDockerInfo
=
_stage
.
getDocketPackageImage
(
config
.
buildType
)
sh
'mvn clean package -P test -D maven.test.skip=true'
withDockerServer
([
uri:
"tcp://192.168.4.96:2375/"
])
{
applicaton_properties
=
"/home/quant_group/config_repository/java/${systemName}.properties"
echo
applicaton_properties
stage
(
'checkout & build'
)
{
docker
.
image
(
pacegeDockerInfo
[
"images"
]).
inside
(
pacegeDockerInfo
[
"args"
]){
project_attr
=
_stage
.
project_attr
(
systemName
)
gitPath
=
project_attr
[
"gitPath"
]
sh
"if [ -f ${applicaton_properties} ]; then cp -rf ${applicaton_properties} ${contextDir}/application.properties; else echo \"## useing apollo ##\" > ${contextDir}/application.properties; fi"
/*checkout code*/
_stage
.
checkout
(
git_path
,
branchName
)
sh
"cp -rf /home/quant_group/qg-dockerfiles/templates_new/java/* ${contextDir}"
/*prepare config*/
_stage
.
prepare_config
(
systemName
,
contextDir
)
sh
"cp target/*.jar ${contextDir}/app.jar"
/*build*/
buildCmd
=
project_attr
[
"buildCmd"
]
sh
"${buildCmd}"
/*copy files*/
_stage
.
copy_files
(
config
.
buildType
,
project_attr
[
"jarFilePath"
],
contextDir
)
}
}
}
stage
(
'make docker image'
)
{
regex
=
"[`,./;\\[\\]&<>?:\"()|-]+"
k8sSystemName
=
systemName
.
replaceAll
(
"_"
,
"-"
)
safeBranchName
=
branchName
.
replaceAll
(
regex
,
"_"
)
defaultSystemName
=
"project"
timeStemp
=
new
Date
().
format
(
"yyyyMMddHHmmss"
)
imageTag
=
"192.168.4.36/${harborGroup}/${k8sSystemName}:${safeBranchName}-${timeStemp}"
imageTag
=
"192.168.4.36/${harborGroup}/${k8sSystemName}:${safeBranchName}-${timeStemp}"
withDockerRegistry
([
credentialsId:
'harbor-qajenkins'
,
url:
"http://192.168.4.36"
])
{
withDockerRegistry
([
credentialsId:
'harbor-qajenkins'
,
url:
"http://192.168.4.36"
])
{
def
build_schema
=
"BUILD_TIME: ${timeStemp} ,BUILD_NUMBER: ${buildNumber},SYSTEM_NAME: ${systemName},BRANCH_NAME: ${branchName}, CLUSTER: ${cluster}"
def
build_schema
=
"BUILD_TIME: ${timeStemp} ,BUILD_NUMBER: ${buildNumber},SYSTEM_NAME: ${systemName},BRANCH_NAME: ${branchName}, CLUSTER: ${cluster}"
...
@@ -97,10 +79,12 @@ def call(body) {
...
@@ -97,10 +79,12 @@ def call(body) {
}
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
ansiColor
(
'xterm'
)
{
ansiColor
(
'xterm'
)
{
...
@@ -110,20 +94,10 @@ def call(body) {
...
@@ -110,20 +94,10 @@ def call(body) {
throw
err
throw
err
}
}
}
finlly
(){
}
finlly
(){
sh
"rm -rf ${contextDir}"
sh
"rm -rf ${contextDir}"
_stage
.
clean_images
(
imageTag
)
_stage
.
clean_images
(
imageTag
)
}
}
}
}
}
}
@NonCPS
def
jsonParse
(
def
json
)
{
new
groovy
.
json
.
JsonSlurperClassic
().
parseText
(
json
)
}
def
project_attr
(
systemName
)
{
response
=
httpRequest
"http://192.168.4.3:10088/config_server/get_project_attr/${systemName}"
def
res_json
=
jsonParse
(
response
.
content
)
return
res_json
}
\ No newline at end of file
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