pipeline {
    agent any
    environment {
        def mvnHome = tool 'maven-3.6.3'
        def jdk_home = tool 'jdk8'
        def build_tag = ''
        def version='1.0.15'
        def pj_name = 'polestar-statement-services'
        def nameSpace = 'yutu'
        def harborUrl = '120.27.1.123:8089/yutu'
        def imageId = ''
        def hostName = '121.36.16.56'
        def FilebeatImageId = 'docker.elastic.co/beats/filebeat:7.10.1'
        //Logstash地址
        def LogstashHost = '192.168.0.220'
        //JVM参数
        def JAVA_OPTS_VALUE = '-Xms2048m -Xmx2048m -XX:PermSize=2048M -XX:MaxPermSize=2048M'
    }
    stages {
        stage('build jar') {
            steps{
                script {
                    env.PATH = "${jdk_home}/bin:${mvnHome}/bin:${env.PATH}"
                    //env.PATH = "${mvnHome}/apache-maven-3.6.3/bin:${env.PATH}"

                }
                //sh 'mvn clean package'
                sh 'mvn clean install -Dmaven.test.skip=true'
            }
        }
        stage('build image') {
            steps{
                script {
                    build_tag = sh(returnStdout: true, script: "date '+%Y%m%d%H%M%S'").trim()
                    imageId = "${harborUrl}/${pj_name}:${build_tag}"
                }
                //sh "docker build --build-arg jarfile='target/${pj_name}.jar' -t ${imageId} ."
                sh "docker build --build-arg jarfile='target/${pj_name}-${version}.jar' --build-arg javaopt='${JAVA_OPTS_VALUE}' -t ${imageId} ."
            }
        }
        stage('push image') {
            steps{
                sh "docker login -u yutu -p Yutu.2020 http://${harborUrl}"
                sh "docker push ${imageId}"
                sh "docker rmi ${imageId}"
            }
        }
        stage('deploy to k8s') {
            steps{
                script {
                    k8sPjname = sh(returnStdout: true, script: "echo ${pj_name} | sed 's/_//g'").trim()
                }
                sh "sed -i 's#myImageId#${imageId}#g' k8s.yaml"
                sh "sed -i 's/myPjName/${k8sPjname}/g' k8s.yaml"
                sh "sed -i 's/myNameSpace/${nameSpace}/g' k8s.yaml"
                sh "sed -i 's/myHostName/${hostName}/g' k8s.yaml"
                sh "sed -i 's/myIndexName/${pj_name}/g' k8s.yaml"
                sh "sed -i 's#JAVA_OPTS_VALUE#${JAVA_OPTS_VALUE}#g' k8s.yaml"
                sh "sed -i 's/myLogstashHost/${LogstashHost}/g' k8s.yaml"
                sh "sed -i 's#myFilebeatImageId#${FilebeatImageId}#g' k8s.yaml"
                sh "kubectl apply -f  k8s.yaml"
            }
        }
    }
}