106 lines
3.8 KiB
Plaintext
106 lines
3.8 KiB
Plaintext
|
|
pipeline {
|
||
|
|
agent {
|
||
|
|
label "master node"
|
||
|
|
}
|
||
|
|
|
||
|
|
environment {
|
||
|
|
// 以年-月-日_时-分-秒生成备份版本号
|
||
|
|
BACKUP_TAG = "${new Date().format('yyyy-MM-dd_HH-mm-ss')}"
|
||
|
|
LOCAL_SMB_SYNC_DIR="/home/smb/"
|
||
|
|
|
||
|
|
// 压缩的文件名
|
||
|
|
BUILD_GZIP_FILE = "gm.tgz"
|
||
|
|
// 压缩的文件夹
|
||
|
|
GZIP_DIRECTIORY = "gm"
|
||
|
|
|
||
|
|
SSH_REMOTE_USER = "cicd"
|
||
|
|
SSH_REMOTE_HOST = "124.222.61.148"
|
||
|
|
SSH_REMOTE_PORT = 22
|
||
|
|
|
||
|
|
// 远端的更新包上传目录
|
||
|
|
SSH_REMOTE_PUSH_DIR = "~/smb_update/"
|
||
|
|
|
||
|
|
// 远程的项目更新目录(只能输入文件夹名字, 不然会报错)
|
||
|
|
SSH_REMOTE_SMB_DIR = "/home/smb/"
|
||
|
|
}
|
||
|
|
stages {
|
||
|
|
stage("COPY File") {
|
||
|
|
steps {
|
||
|
|
script {
|
||
|
|
echo "Attention: COPY File - I Start"
|
||
|
|
|
||
|
|
if (fileExists(GZIP_DIRECTIORY)) {
|
||
|
|
echo "Attention: COPY File - I Will Backup Old Dir"
|
||
|
|
sh "mv ${GZIP_DIRECTIORY} ${GZIP_DIRECTIORY}_${BACKUP_TAG}"
|
||
|
|
}
|
||
|
|
|
||
|
|
sh "mkdir ${GZIP_DIRECTIORY}"
|
||
|
|
sh "/usr/bin/cp -r ${LOCAL_SMB_SYNC_DIR}/* ${GZIP_DIRECTIORY}/"
|
||
|
|
echo "Attention: COPY File - I Finish"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
stage ("GZIP File") {
|
||
|
|
steps {
|
||
|
|
script {
|
||
|
|
echo "Attention: GZIP File - I Start"
|
||
|
|
if (fileExists(BUILD_GZIP_FILE)) {
|
||
|
|
echo "Attention: GZIP File - I Will Remove Old Package!"
|
||
|
|
sh "rm -rf $BUILD_GZIP_FILE"
|
||
|
|
}
|
||
|
|
sh "tar czf ${BUILD_GZIP_FILE} ./${GZIP_DIRECTIORY}"
|
||
|
|
echo "Attention: GZIP File - I Finish"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
stage ("SCP File") {
|
||
|
|
steps {
|
||
|
|
echo "Attention: SCP File - I Start"
|
||
|
|
sh """
|
||
|
|
ssh ${SSH_REMOTE_USER}@${SSH_REMOTE_HOST} -p${SSH_REMOTE_PORT} '
|
||
|
|
[ -d ${SSH_REMOTE_PUSH_DIR} ] || mkdir -p ${SSH_REMOTE_PUSH_DIR}
|
||
|
|
'
|
||
|
|
"""
|
||
|
|
sh "scp -P${SSH_REMOTE_PORT} ${BUILD_GZIP_FILE} ${SSH_REMOTE_USER}@${SSH_REMOTE_HOST}:${SSH_REMOTE_PUSH_DIR}/"
|
||
|
|
echo "Attention: SCP File - I Finish"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
stage ("Pre Update") {
|
||
|
|
steps {
|
||
|
|
echo "Attention: Pre Update - I Start"
|
||
|
|
sh """
|
||
|
|
ssh ${SSH_REMOTE_USER}@${SSH_REMOTE_HOST} -p${SSH_REMOTE_PORT} '
|
||
|
|
cd ${SSH_REMOTE_PUSH_DIR}
|
||
|
|
[ -d ${GZIP_DIRECTIORY} ] && mv ${GZIP_DIRECTIORY} ${GZIP_DIRECTIORY}_${BACKUP_TAG}
|
||
|
|
tar xf ${BUILD_GZIP_FILE} && rm -rf ${BUILD_GZIP_FILE}
|
||
|
|
'
|
||
|
|
"""
|
||
|
|
echo "Attention: Pre Update - I Finish"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// 确认更新
|
||
|
|
stage("Confirm Tips"){
|
||
|
|
steps {
|
||
|
|
echo "Attention: Update Project - Administrator Decide Update This Project!"
|
||
|
|
}
|
||
|
|
input {
|
||
|
|
message "Next Process Will Update Project, Continue?"
|
||
|
|
ok "Yes, Do It."
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// 更新项目
|
||
|
|
stage("Update Project") {
|
||
|
|
steps {
|
||
|
|
echo "Attention: Update Project - I Will Start!"
|
||
|
|
sh """
|
||
|
|
ssh ${SSH_REMOTE_USER}@${SSH_REMOTE_HOST} -p${SSH_REMOTE_PORT} '
|
||
|
|
cd ${SSH_REMOTE_PUSH_DIR}
|
||
|
|
/usr/bin/cp -r ${GZIP_DIRECTIORY}/* ${SSH_REMOTE_SMB_DIR}/
|
||
|
|
'
|
||
|
|
"""
|
||
|
|
echo "Attention: Update Project - I Finish!"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|