pipeline { agent any environment { BUILD_USER = "" } 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 dist.tar.gz dist/' } } stage('deploy job') { steps { sshPublisher(publishers: [sshPublisherDesc(configName: 'ECS-CooleShow-47.98.131.38-pre', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'cd /mnt/datadisk/www/jenkins/cooleshow/h5-colexiu && rm -rf dist/ && tar -zxf *.tar.gz && rm *.tar.gz', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/mnt/datadisk/www/jenkins/cooleshow/h5-colexiu', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '**/*.tar.gz')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) } } stage('clean job') { steps { sh 'rm dist.tar.gz' } } } post { success { dingtalk ( robot: "Jenkins", 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: "Jenkins", 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}", ] ) } } }