pipeline {
agent any
environment {
BUILD_USER = ""
REMOTE_PATH = "/mdata/www/mteacher"
BUILD_FILE = "dist.tar.gz"
ROBOT_ID = "a346e21b-706e-4881-8e3b-6c48d16d0c3b"
SSH_AUTH = "WH-MEC-TEST"
}
stages {
stage('build param') {
steps {
wrap([$class: 'BuildUser']) {
script {
BUILD_USER = "${env.BUILD_USER}"
}
}
echo '${BUILD_USER}'
}
}
stage('build job') {
steps {
sh 'node -v'
sh 'npm install && npm run build'
sh "tar -zcf ${BUILD_FILE} dist/"
}
}
stage('deploy job') {
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: "${SSH_AUTH}", transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "cd ${REMOTE_PATH} && rm -rf dist/ && tar -zxf *.tar.gz && rm *.tar.gz", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: "${REMOTE_PATH}", remoteDirectorySDF: false, removePrefix: '', sourceFiles: '**/*.tar.gz')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
stage('clean job') {
steps {
sh "rm ${BUILD_FILE}"
}
}
}
post {
success {
dingtalk (
robot: "${ROBOT_ID}",
type:'ACTION_CARD',
atAll: false,
title: "构建成功:${env.JOB_NAME}",
//messageUrl: 'xxxx',
text: [
"### [${env.JOB_NAME}](${env.JOB_URL}) ",
'---',
"- 任务:[${currentBuild.displayName}](${env.BUILD_URL})",
'- 状态:成功',
"- 持续时间:${currentBuild.durationString}".split("and counting")[0],
"- 执行人:${BUILD_USER}",
]
)
}
failure{
dingtalk (
robot: "${ROBOT_ID}",
type:'ACTION_CARD',
atAll: false,
title: "构建失败:${env.JOB_NAME}",
//messageUrl: 'xxxx',
text: [
"### [${env.JOB_NAME}](${env.JOB_URL}) ",
'---',
"- 任务:[${currentBuild.displayName}](${env.BUILD_URL})",
'- 状态:失败',
"- 持续时间:${currentBuild.durationString}".split("and counting")[0],
"- 执行人:${BUILD_USER}",
]
)
}
}
}