pipeline {

    agent {label 'local'}

    stages {
        stage('Build') {
            // 项目构建
            steps {
                echo 'building in local..'
                sh 'npm i'
                sh 'npm run build:ex'
            }
        }

        stage('Test') {
            //代码评审
            steps {
                echo 'testing the codes'
            }
        }

        stage('Initialize'){
            //项目目录结构初始化
            steps {
                  sh "ansible ${env.DEPLOY_ENV} -m script -a '${env.SCRIPT_DIR}/public/initialize.sh ${env.DEPLOY_DIR}'"
            }
         }

        stage('Deploy'){
            // 项目部署
             steps {
                dir("${env.WORKSPACE}/distex/"){
                  sh "tar -zcf ${env.WORKSPACE}/${env.JOB_NAME}.tar.gz *"
                }
                sh "ansible ${env.DEPLOY_NAME} -s -m unarchive -a 'src=${env.WORKSPACE}/${env.JOB_NAME}.tar.gz dest=${env.DEPLOY_DIR}/current owner=${env.DEPLOY_USER}'"
            }
        }

        stage('Startup'){
             //启动应用程序
             steps {
                echo 'The application is deployed!'
             }
        }
    }
	
	post{
	    always{
		    dir("${env.WORKSPACE}"){
                sh "rm ${env.JOB_NAME}.tar.gz"
            }  
		}
	}
}
