| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | pipeline {    agent any    environment {       BUILD_USER = ""       REMOTE_PATH = "/mnt/datadisk/www/jmedu/orchestra-adimn"       BUILD_FILE = "dist.tar.gz"       ROBOT_ID = "a346e21b-706e-4881-8e3b-6c48d16d0c3b"       SSH_AUTH = "ECS-CooleShow-47.98.131.38-pre"    }    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})",                    '- 状态:<font color=#00CD00 >成功</font>',                    "- 持续时间:${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})",                    '- 状态:<font color=#EE0000 >失败</font>',                    "- 持续时间:${currentBuild.durationString}".split("and counting")[0],                    "- 执行人:${BUILD_USER}",                ]            )        }    }}
 |