Browse Source

增加Jenkins构建文件

shangke 2 years ago
parent
commit
19f7b81ee4
1 changed files with 84 additions and 0 deletions
  1. 84 0
      Jenkinsfile

+ 84 - 0
Jenkinsfile

@@ -0,0 +1,84 @@
+pipeline {
+    agent any
+
+    environment {
+       BUILD_USER = ""
+       REMOTE_PATH = "/mnt/datadisk/www/daya-mall-admin"
+       BUILD_FILE = "dist.tar.gz"
+       ROBOT_ID = "a346e21b-706e-4881-8e3b-6c48d16d0c3b"
+       SSH_AUTH = "ECS-Daya-47.114.176.40-dev"
+    }
+
+    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}",
+                ]
+            )
+        }
+    }
+}