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
78a1fb02
Commit
78a1fb02
authored
Apr 09, 2018
by
tywldx
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://git.quantgroup.cn/QA/global-jenkinsfile
parents
d3a46911
36e99251
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
129 additions
and
152 deletions
+129
-152
StageBucket.groovy
src/org/qg/docker/StageBucket.groovy
+1
-1
StageBucket.groovy
src/org/qg/docker_new/StageBucket.groovy
+106
-111
qgDockerPiplineWithDockerSlave.groovy
vars/qgDockerPiplineWithDockerSlave.groovy
+22
-40
No files found.
src/org/qg/docker/StageBucket.groovy
View file @
78a1fb02
...
@@ -237,7 +237,7 @@ def dockerbuild_and_push(timeNow, buildNumber, branchName, harborGroup, systemNa
...
@@ -237,7 +237,7 @@ def dockerbuild_and_push(timeNow, buildNumber, branchName, harborGroup, systemNa
def
build_schema
=
"BUILD_TIME:${timeNow}@BUILD_NUMBER:${buildNumber}@SYSTEM_NAME:${systemName}@BRANCH_NAME:${branchName}"
def
build_schema
=
"BUILD_TIME:${timeNow}@BUILD_NUMBER:${buildNumber}@SYSTEM_NAME:${systemName}@BRANCH_NAME:${branchName}"
echo
build_schema
echo
build_schema
def
image
=
docker
.
build
(
imageTag
,
"--build-arg BUILD_SCHEMA=${build_schema} ${contextDir}"
)
def
image
=
docker
.
build
(
imageTag
,
"--build-arg
SYSTEM_NAME=${systemName} --build-arg
BUILD_SCHEMA=${build_schema} ${contextDir}"
)
image
.
push
()
image
.
push
()
if
(
branchName
==
"master"
||
branchName
==
"master--master"
)
{
if
(
branchName
==
"master"
||
branchName
==
"master--master"
)
{
...
...
src/org/qg/docker_new/StageBucket.groovy
View file @
78a1fb02
...
@@ -28,6 +28,7 @@ def before_prepare() {
...
@@ -28,6 +28,7 @@ def before_prepare() {
}
}
def
prepare_config
(
buildType
,
systemName
,
contextDir
)
{
def
prepare_config
(
buildType
,
systemName
,
contextDir
)
{
_utils
().
beautyEcho
(
"Prepare Config +++ type:${buildType} systemName:${systemName}"
,
"info"
)
switch
(
buildType
)
{
switch
(
buildType
)
{
case
"java"
:
case
"java"
:
prepare_java
(
systemName
,
contextDir
)
prepare_java
(
systemName
,
contextDir
)
...
@@ -39,10 +40,10 @@ def prepare_config(buildType,systemName, contextDir) {
...
@@ -39,10 +40,10 @@ def prepare_config(buildType,systemName, contextDir) {
prepare_python
(
systemName
,
contextDir
)
prepare_python
(
systemName
,
contextDir
)
break
break
case
"lua-ui"
:
case
"lua-ui"
:
prepare_luaui
(
systemName
s
,
contextDir
)
prepare_luaui
(
systemName
,
contextDir
)
break
break
default:
default:
echo
"未知的buildType: ${config.buildType}"
_utils
().
beautyEcho
(
"未知的buildType: ${buildType}"
,
"fail"
)
break
break
}
}
}
}
...
@@ -57,21 +58,20 @@ def prepare_nodejs(systemName, contextDir) {
...
@@ -57,21 +58,20 @@ def prepare_nodejs(systemName, contextDir) {
sh
"cp -rf /home/quant_group/config_repository/nodejs/${systemName}.js env.config.js"
sh
"cp -rf /home/quant_group/config_repository/nodejs/${systemName}.js env.config.js"
}
}
def
prepare_luaui
(
systemName
s
,
contextDir
)
{
def
prepare_luaui
(
systemName
,
contextDir
)
{
sh
"cp -rf /home/quant_group/qg-dockerfiles/templates_new/lua-ui/* ${contextDir}"
sh
"cp -rf /home/quant_group/qg-dockerfiles/templates_new/lua-ui/* ${contextDir}"
sh
"cp -rf /home/quant_group/config_repository/lua-ui/lua/*.lua ${contextDir}"
sh
"cp -rf /home/quant_group/config_repository/lua-ui/lua/*.lua ${contextDir}"
def
isVhFileExist
=
fileExists
"/home/quant_group/config_repository/lua-ui/nginx/${systemName
s
}.vh.conf"
def
isVhFileExist
=
fileExists
"/home/quant_group/config_repository/lua-ui/nginx/${systemName}.vh.conf"
if
(
isVhFileExist
)
{
if
(
isVhFileExist
)
{
sh
"cp -rf /home/quant_group/config_repository/lua-ui/nginx/${systemName
s
}.vh.conf ${contextDir}"
sh
"cp -rf /home/quant_group/config_repository/lua-ui/nginx/${systemName}.vh.conf ${contextDir}"
}
else
{
}
else
{
sh
"cp -rf /home/quant_group/config_repository/lua-ui/nginx/default.vh.conf ${contextDir}"
sh
"cp -rf /home/quant_group/config_repository/lua-ui/nginx/default.vh.conf ${contextDir}"
}
}
arrSystem
=
systemNames
.
split
(
"--"
)
for
(
systemName
in
arrSystem
)
{
sh
"cp -rf /home/quant_group/config_repository/lua-ui/config/${systemName}.js ${systemName}.env.config.js"
sh
"cp -rf /home/quant_group/config_repository/lua-ui/config/${systemName}.js ${systemName}.env.config.js"
}
}
}
def
prepare_python
(
systemName
,
contextDir
)
{
def
prepare_python
(
systemName
,
contextDir
)
{
...
@@ -81,7 +81,7 @@ def prepare_python(systemName, contextDir) {
...
@@ -81,7 +81,7 @@ def prepare_python(systemName, contextDir) {
}
}
def
checkout
(
buildType
,
systemName
,
branchName
)
{
def
checkout
(
buildType
,
systemName
,
branchName
)
{
_utils
().
beautyEcho
(
"checkout ${buildType} ${systemName}
${branchName}"
,
"info"
)
_utils
().
beautyEcho
(
"CheckOut +++ type:${buildType} systemName:${systemName} branchName:
${branchName}"
,
"info"
)
switch
(
buildType
){
switch
(
buildType
){
case
"java"
:
case
"java"
:
checkout_java
(
systemName
,
branchName
)
checkout_java
(
systemName
,
branchName
)
...
@@ -96,7 +96,7 @@ def checkout(buildType,systemName, branchName) {
...
@@ -96,7 +96,7 @@ def checkout(buildType,systemName, branchName) {
checkout_luaui
(
systemName
,
branchName
)
checkout_luaui
(
systemName
,
branchName
)
break
break
default:
default:
echo
"未知的buildType: ${c
onfig.
buildType}"
echo
"未知的buildType: ${cbuildType}"
break
break
}
}
}
}
...
@@ -128,54 +128,15 @@ def checkout_nodejs(systemName, branchName) {
...
@@ -128,54 +128,15 @@ def checkout_nodejs(systemName, branchName) {
if
(
bowerFile
)
{
if
(
bowerFile
)
{
sh
"bower install --allow-root"
sh
"bower install --allow-root"
}
}
sh
"npm install
-g
"
sh
"npm install"
}
}
def
checkout_luaui
(
systemNames
,
branchNames
)
{
def
checkout_luaui
(
systemName
,
branchName
)
{
_utils
().
beautyEcho
(
"checkout_lua_ui :"
+
systemNames
,
"info"
)
sh
"cp -rf /home/quant_group/config_repository/lua-ui/npmrc/npmrc /root/.npmrc"
if
(
systemNames
.
contains
(
"--"
)){
_utils
().
beautyEcho
(
"complex ui projects :"
+
systemNames
,
"info"
)
t1
=
systemNames
.
split
(
"/"
)
projects
=
t1
[
1
].
split
(
"--"
)
branches
=
branchNames
.
split
(
"--"
)
t1
.
size
().
times
{
sh
"cp -rf /home/quant_group/config_repository/lua-ui/npmrc/npmrc /root/.npmrc"
dir
(
projects
[
it
])
{
projectAttr
=
project_attr
(
projects
[
it
])
gitPath
=
projectAttr
[
"gitPath"
]
currentPath
=
sh
(
script:
'pwd'
,
returnStdout:
true
).
trim
()
def
folder
=
new
File
(
"${currentPath}/.git/hooks"
)
if
(
!
folder
.
exists
()
)
{
git
branch:
branches
[
it
],
credentialsId:
'e1ccb1ac-1282-4fb4-b766-530ca1a2a2db'
,
url:
gitPath
def
bowerFile
=
fileExists
'./bower.json'
if
(
bowerFile
)
{
sh
"bower install --allow-root"
}
sh
"npm install"
}
else
{
sh
"\\cp -rf /home/quant_group/config_repository/lua-ui/hook/post-merge .git/hooks/"
sh
"chmod +x .git/hooks/post-merge"
git
branch:
branches
[
it
],
credentialsId:
'e1ccb1ac-1282-4fb4-b766-530ca1a2a2db'
,
url:
gitPath
}
}
}
}
else
{
_utils
().
beautyEcho
(
"simple ui project :"
+
systemNames
,
"info"
)
def
systemName
=
systemNames
def
branchName
=
branchNames
_utils
().
beautyEcho
(
"ui project : ${systemName}"
,
"info"
)
projectAttr
=
project_attr
(
systemName
)
projectAttr
=
project_attr
(
systemName
)
gitPath
=
projectAttr
[
"gitPath"
]
gitPath
=
projectAttr
[
"gitPath"
]
...
@@ -198,10 +159,11 @@ def checkout_luaui(systemNames, branchNames) {
...
@@ -198,10 +159,11 @@ def checkout_luaui(systemNames, branchNames) {
sh
"npm install"
sh
"npm install"
}
}
}
def
build
(
buildType
,
systemName
,
contextDir
){
def
build
(
buildType
,
systemName
,
contextDir
){
_utils
().
beautyEcho
(
"Build +++ type:${buildType} systemName:${systemName}"
,
"info"
)
switch
(
buildType
){
switch
(
buildType
){
case
"java"
:
case
"java"
:
build_java
(
systemName
,
contextDir
)
build_java
(
systemName
,
contextDir
)
...
@@ -216,7 +178,7 @@ def build(buildType,systemName, contextDir){
...
@@ -216,7 +178,7 @@ def build(buildType,systemName, contextDir){
build_luaui
(
systemName
,
contextDir
)
build_luaui
(
systemName
,
contextDir
)
break
break
default:
default:
echo
"未知的buildType: ${
config.
buildType}"
echo
"未知的buildType: ${buildType}"
break
break
}
}
...
@@ -252,24 +214,17 @@ def build_python( systemName, contextDir) {
...
@@ -252,24 +214,17 @@ def build_python( systemName, contextDir) {
sh
"mv dist.tgz ${contextDir}"
sh
"mv dist.tgz ${contextDir}"
}
}
def
build_luaui
(
systemNames
,
contextDir
)
{
def
build_luaui
(
systemName
,
contextDir
)
{
arrSystem
=
systemNames
.
split
(
"--"
)
for
(
systemName
in
arrSystem
)
{
dir
(
systemName
)
{
def
res_json
=
project_attr
(
systemName
)
def
res_json
=
project_attr
(
systemName
)
configPath
=
res_json
[
"configPath"
]
configPath
=
res_json
[
"configPath"
]
buildCmd
=
res_json
[
"buildCmd"
]
buildCmd
=
res_json
[
"buildCmd"
]
configName
=
systemName
configName
=
systemName
sh
"mv -f ./${systemName}.env.config.js ${configPath}"
sh
"mv -f ../${systemName}.env.config.js ${configPath}"
sh
buildCmd
sh
buildCmd
sh
"tar zcf ${systemName}.tgz dist/"
sh
"tar zcf ${systemName}.tgz dist/"
sh
"mv ${systemName}.tgz ../${contextDir}"
sh
"mv ${systemName}.tgz ${contextDir}"
}
}
}
}
def
dockerbuild_and_push
(
timeNow
,
buildNumber
,
branchName
,
harborGroup
,
systemName
,
contextDir
)
{
def
dockerbuild_and_push
(
timeNow
,
buildNumber
,
branchName
,
harborGroup
,
systemName
,
contextDir
)
{
...
@@ -343,40 +298,36 @@ def update_microservice(namespace, name, image, tier) {
...
@@ -343,40 +298,36 @@ def update_microservice(namespace, name, image, tier) {
return
res_json
return
res_json
}
}
def
getDocketPackageImage
(
buildType
){
def
getDocketPackageImage
(
buildType
){
echo
"getDocketPackageImage :${buildType}"
echo
"getDocketPackageImage :${buildType}"
def
args
=
""
def
packageImageInfo
=[:]
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/qg-dockerfiles:/home/quant_group/qg-dockerfiles "
args
+=
"-v /home/quant_group/config_repository:/home/quant_group/config_repository "
args
+=
"-v /home/quant_group/config_repository:/home/quant_group/config_repository "
args
+=
"-v /home/quant_group/pacakge/:/home/quant_group/pacakge/ "
args
+=
"-v /home/quant_group/pacakge/:/home/quant_group/pacakge/ "
switch
(
buildType
)
{
case
"java"
:
args
+=
"-v /root/.m2:/root/.m2 "
packageImageInfo
[
"image"
]
=
"192.168.4.36/baseimg/jenkins-slave:2018040302"
packageImageInfo
[
"image"
]
=
"192.168.4.36/baseimg/jenkins-slave:2018040302"
packageImageInfo
[
"args"
]
=
args
packageImageInfo
[
"args"
]
=
args
break
break
case
"nodejs"
:
case
"nodejs"
:
def
args
=
"-v /root/.npm:/root/.npm "
args
+
=
"-v /root/.npm:/root/.npm "
args
+=
"-v /root/.cache:/root/.cache "
args
+=
"-v /root/.cache:/root/.cache "
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-node-slave:2018040402"
packageImageInfo
[
"image"
]
=
"192.168.4.36/baseimg/jenkins-node-slave:2018040402"
packageImageInfo
[
"args"
]
=
""
packageImageInfo
[
"args"
]
=
args
break
break
case
"python"
:
case
"python"
:
packageImageInfo
[
"image"
]
=
""
packageImageInfo
[
"image"
]
=
""
packageImageInfo
[
"args"
]
=
""
packageImageInfo
[
"args"
]
=
""
break
break
case
"lua-ui"
:
case
"lua-ui"
:
def
args
=
"-v /root/.npm:/root/.npm "
args
+
=
"-v /root/.npm:/root/.npm "
args
+=
"-v /root/.cache:/root/.cache "
args
+=
"-v /root/.cache:/root/.cache "
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-node-slave:2018040402"
packageImageInfo
[
"image"
]
=
"192.168.4.36/baseimg/jenkins-node-slave:2018040402"
packageImageInfo
[
"args"
]
=
args
packageImageInfo
[
"args"
]
=
args
break
break
...
@@ -392,4 +343,48 @@ def getDocketPackageImage(buildType){
...
@@ -392,4 +343,48 @@ def getDocketPackageImage(buildType){
return
packageImageInfo
return
packageImageInfo
}
}
def
checkAndBuild
(
buildType
,
systemName
,
branchName
,
contextDir
){
def
pacegeDockerInfo
=
getDocketPackageImage
(
buildType
)
docker
.
image
(
pacegeDockerInfo
[
"image"
]).
inside
(
pacegeDockerInfo
[
"args"
]){
try
{
/*checkout code*/
checkout
(
buildType
,
systemName
,
branchName
)
/*prepare config*/
prepare_config
(
buildType
,
systemName
,
contextDir
)
/*build*/
build
(
buildType
,
systemName
,
contextDir
)
}
catch
(
err
){
sleep
120
throw
err
}
}
}
def
dockerMake
(
imageTag
,
buildNumber
,
systemName
,
branchName
,
cluster
,
timeStemp
){
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}"
echo
build_schema
def
image
=
docker
.
build
(
imageTag
,
"--build-arg SYSTEM_NAME=${systemName} --build-arg BUILD_SCHEMA=${build_schema} ${contextDir}"
)
image
.
push
()
if
(
branchName
==
"master"
||
branchName
==
"master--master"
)
{
image
.
push
(
'latest'
)
}
}
}
vars/qgDockerPiplineWithDockerSlave.groovy
View file @
78a1fb02
...
@@ -40,6 +40,7 @@ def call(body) {
...
@@ -40,6 +40,7 @@ def call(body) {
try
{
try
{
echo
config
.
buildType
echo
config
.
buildType
/* 1 */
stage
(
'prepare'
)
{
stage
(
'prepare'
)
{
_utils
.
beautyEcho
(
"Prepare"
,
"stage"
)
_utils
.
beautyEcho
(
"Prepare"
,
"stage"
)
contextDir
=
_stage
.
contextMkdir
(
"${systemName}-${timeStemp}"
)
contextDir
=
_stage
.
contextMkdir
(
"${systemName}-${timeStemp}"
)
...
@@ -47,55 +48,33 @@ def call(body) {
...
@@ -47,55 +48,33 @@ def call(body) {
}
}
/* 2 */
withDockerServer
([
uri:
"tcp://192.168.4.96:2375/"
])
{
withDockerServer
([
uri:
"tcp://192.168.4.96:2375/"
])
{
stage
(
'checkout & build'
)
{
stage
(
'checkout & build'
)
{
_utils
.
beautyEcho
(
"checkout & build"
,
"stage"
)
_utils
.
beautyEcho
(
"checkout & build"
,
"stage"
)
def
pacegeDockerInfo
=
_stage
.
getDocketPackageImage
(
config
.
buildType
)
docker
.
image
(
pacegeDockerInfo
[
"image"
]).
inside
(
pacegeDockerInfo
[
"args"
]){
def
project_attr
=
_stage
.
project_attr
(
systemName
)
def
gitPath
=
project_attr
[
"gitPath"
]
/*checkout code*/
_utils
.
beautyEcho
(
"checkout"
,
"info"
)
_stage
.
checkout
(
config
.
buildType
,
systemName
,
branchName
)
/*prepare config*/
_utils
.
beautyEcho
(
"prepare config"
,
"info"
)
_stage
.
prepare_config
(
config
.
buildType
,
systemName
,
contextDir
)
/*build*/
_utils
.
beautyEcho
(
"build"
,
"info"
)
_stage
.
build
(
config
.
buildType
,
systemName
,
contextDir
)
}
arrSystem
=
systemName
.
split
(
"--"
)
for
(
systemNameSimple
in
arrSystem
)
{
_stage
.
checkAndBuild
(
config
.
buildType
,
systemNameSimple
,
branchName
,
contextDir
)
}
}
_utils
.
beautyEcho
(
"build over"
,
"info"
)
_utils
.
beautyEcho
(
"build over"
,
"info"
)
}
}
/* 3 */
withDockerServer
([
uri:
"tcp://192.168.4.96:2375/"
])
{
stage
(
'make docker image'
)
{
stage
(
'make docker image'
)
{
_utils
.
beautyEcho
(
"make docker image"
,
"stage"
)
_utils
.
beautyEcho
(
"make docker image"
,
"stage"
)
imageTag
=
_stage
.
imageTag
(
harborGroup
,
k8sSystemName
,
safeBranchName
,
timeStemp
)
imageTag
=
_stage
.
imageTag
(
harborGroup
,
k8sSystemName
,
safeBranchName
,
timeStemp
)
_stage
.
dockerMake
(
imageTag
,
buildNumber
,
systemName
,
branchName
,
cluster
,
timeStemp
)
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}"
echo
build_schema
def
image
=
docker
.
build
(
imageTag
,
"--build-arg BUILD_SCHEMA=${build_schema} ${contextDir}"
)
image
.
push
()
if
(
branchName
==
"master"
||
branchName
==
"master--master"
)
{
image
.
push
(
'latest'
)
}
}
}
}
stage
(
'Deploy To K8s Cluster'
){
stage
(
'Deploy To K8s Cluster'
){
_utils
.
beautyEcho
(
"Deploy To K8s Cluster"
,
"stage"
)
_utils
.
beautyEcho
(
"Deploy To K8s Cluster"
,
"stage"
)
_utils
.
beautyEcho
(
"Deploy image: ${imageTag} to:${namespace}"
,
"info"
)
_stage
.
deploy
(
namespace
,
systemName
,
imageTag
,
config
.
tier
,
isDeploy
)
_stage
.
deploy
(
namespace
,
systemName
,
imageTag
,
config
.
tier
,
isDeploy
)
...
@@ -108,11 +87,11 @@ def call(body) {
...
@@ -108,11 +87,11 @@ def call(body) {
}
catch
(
err
)
{
}
catch
(
err
)
{
_utils
.
beautyEcho
(
err
,
"fail"
)
_utils
.
beautyEcho
(
err
,
"fail"
)
/* sh "rm -rf ${contextDir}"*/
sh
"rm -rf ${contextDir}"
if
(
imageTag
){
if
(
imageTag
){
_stage
.
clean_images
(
imageTag
)
_stage
.
clean_images
(
imageTag
)
}
}
sleep
120
throw
err
throw
err
...
@@ -121,3 +100,6 @@ def call(body) {
...
@@ -121,3 +100,6 @@ def call(body) {
}
}
}
}
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