@ -5,13 +5,12 @@ pipeline {
HARBOR_HOST = "registry.cn-hangzhou.aliyuncs.com"
HARBOR_HOST = "registry.cn-hangzhou.aliyuncs.com"
NAMESPACE_NAME = "newrain_wang"
NAMESPACE_NAME = "newrain_wang"
REPOSITORY_NAME = "my-web-app"
REPOSITORY_NAME = "my-web-app"
TAG = "v3 .0"
TAG = "v2 .0"
REPLICAS = 4
REPLICAS = 4
YAML_PATH = "k8s/"
YAML_PATH = "k8s/"
DEPLOYMENT_NAME = "deploy.yml"
DEPLOYMENT_NAME = "deploy.yml"
STATUS_URL = "http://qf.jenkins.vip:30210/job/test/${BUILD_NUMBER}"
STATUS_URL = "http://qf.jenkins.vip:30210/job/test/${BUILD_NUMBER}"
CONSOLE_URL = "http://qf.jenkins.vip:30210/job/test/${BUILD_NUMBER}/console"
CONSOLE_URL = "http://qf.jenkins.vip:30210/job/test/${BUILD_NUMBER}/console"
status = "${currentBuild.result}"
}
}
agent {
agent {
kubernetes {
kubernetes {
@ -83,52 +82,85 @@ spec:
}
}
}
}
post {
post {
alway s {
succes s {
dingtalk (
dingtalk (
robot: '4eabbd09-a21a-40a9-84db-6440c0daebec',
robot: '4eabbd09-a21a-40a9-84db-6440c0daebec',
type: 'MARKDOWN',
type: 'MARKDOWN',
title: '镜像推送 ${PROJECT_NAME}',
title: '镜像构建成功 ${PROJECT_NAME}',
text: [
text: [
'### 项目 ${PROJECT_NAME}',
'### 项目 ${PROJECT_NAME}',
'---',
'---',
'- 状态:<font color=#FF0000 >、$(currentBuild.result) \${currentBuild.result} ${env.status}</font>',
'- 状态:<font color=#00FF00 >成功</font>',
'- 阶段:构建镜像',
'- 版本:${BUILD_NUMBER}',
'- 版本:${BUILD_NUMBER}',
'- [查看部署详情](${STATUS_URL})',
'- [查看部署详情](${STATUS_URL})',
'- [查看日志Console](${CONSOLE_URL})'
'- [查看日志Console](${CONSOLE_URL})'
],
],
at: [
at: ['17694993496']
'17694993496'
)
]
}
failure {
dingtalk (
robot: '4eabbd09-a21a-40a9-84db-6440c0daebec',
type: 'MARKDOWN',
title: '镜像构建失败 ${PROJECT_NAME}',
text: [
'### 项目 ${PROJECT_NAME}',
'---',
'- 状态:<font color=#FF0000 >失败</font>',
'- 阶段:构建镜像',
'- 版本:${BUILD_NUMBER}',
'- [查看部署详情](${STATUS_URL})',
'- [查看日志Console](${CONSOLE_URL})'
],
at: ['17694993496']
)
)
}
}
}
}
}
}
stage('部署到kubernetes') {
stage('部署到kubernetes') {
steps {
steps {
container('kubectl') {
container('kubectl') {
sh """
sh """
sed -i "s/REPLICAS/${env.REPLICAS}/;s/HARBOR_HOST/${env.HARBOR_HOST}/;s/NAMESPACE_NAME/${env.NAMESPACE_NAME}/;s/REPOSITORY_NAME/${env.REPOSITORY_NAME}/;s/TAG/${env.TAG}/" ${env.YAML_PATH}${env.DEPLOYMENT_NAME}
sed -i "s/REPLICAS/${env.REPLICAS}/;s/HARBOR_HOST/${env.HARBOR_HOST}/;s/NAMESPACE_NAME/${env.NAMESPACE_NAME}/;s/REPOSITORY_NAME/${env.REPOSITORY_NAME}/;s/TAG/${env.TAG}/" ${env.YAML_PATH}${env.DEPLOYMENT_NAME}
kubectl apply -f ${env.YAML_PATH}
kubectl apply -f ${env.YAML_PATH}${env.DEPLOYMENT_NAME}
"""
"""
}
}
}
}
post {
post {
always {
success {
dingtalk (
robot: '4eabbd09-a21a-40a9-84db-6440c0daebec',
type: 'MARKDOWN',
title: '部署成功 ${PROJECT_NAME}',
text: [
'### 项目 ${PROJECT_NAME}',
'---',
'- 状态:<font color=#00FF00 >成功</font>',
'- 阶段:部署到kubernetes',
'- 版本:${BUILD_NUMBER}',
'- [查看部署详情](${STATUS_URL})',
'- [查看日志Console](${CONSOLE_URL})'
],
at: ['17694993496']
)
}
failure {
dingtalk (
dingtalk (
robot: '4eabbd09-a21a-40a9-84db-6440c0daebec',
robot: '4eabbd09-a21a-40a9-84db-6440c0daebec',
type: 'MARKDOWN',
type: 'MARKDOWN',
title: '项目部署 ${PROJECT_NAME}',
title: '部署失败 ${PROJECT_NAME}',
text: [
text: [
'### 项目 ${PROJECT_NAME}',
'### 项目 ${PROJECT_NAME}',
'---',
'---',
'- 状态:<font color=#FF0000 >${currentBuild.result}</font>',
'- 状态:<font color=#FF0000 >失败</font>',
'- 阶段:部署到kubernetes',
'- 版本:${BUILD_NUMBER}',
'- 版本:${BUILD_NUMBER}',
'- [查看部署详情](${STATUS_URL})',
'- [查看部署详情](${STATUS_URL})',
'- [查看日志Console](${CONSOLE_URL})'
'- [查看日志Console](${CONSOLE_URL})'
],
],
at: [
at: ['17694993496']
'17694993496'
]
)
)
}
}
}
}