pipeline {
  agent any
  //变量定义
  environment {
    REGISTRY = 'registry.cn-hangzhou.aliyuncs.com'
    ALIYUN_NAMESPACE = 'arsn'
  }

  stages {
    //1.拉取源码
    stage('Git Checkout'){
      steps {
        git branch: 'master', credentialsId: 'gitblit', url: 'http://192.168.0.105:10010/r/zhba_management_w.git'
      }
    }
    //2.编译成jar包
    stage('Maven Build') {
      steps {
        sh 'ls'
        sh 'mvn clean package -Dmaven.test.skip=true'
        sh 'ls target/'
      }
    }
    //3.构建镜像
    stage('Build and Push Image'){
      steps{
        sh 'docker build -f Dockerfile -t zhbaw:latest .'
      }
    }
    //4.拉取镜像并启动
    stage('推送镜像'){
      steps{
          script{
            withCredentials([usernamePassword(credentialsId: 'aliyun', passwordVariable: 'password', usernameVariable: 'username')]) {
                sh 'echo "$password" | docker login $REGISTRY -u "$username" --password-stdin'
                sh 'docker tag zhbaw:latest $REGISTRY/$ALIYUN_NAMESPACE/zhbaw:SNAPSHOT-$BUILD_NUMBER'
                sh 'docker push  $REGISTRY/$ALIYUN_NAMESPACE/zhbaw:SNAPSHOT-$BUILD_NUMBER'
                sh 'docker rmi  $REGISTRY/$DOCKERHUB_NAMESPACE/zhbaw:SNAPSHOT-$BUILD_NUMBER'
                sh 'docker rmi  zhbaw:latest'
            }
          }
       }
    }
    //5.部署
    stage('deploy to dev') {
      steps {
          input '是否部署？'
          sh 'docker-compose up -d'
          sh 'docker rmi  $REGISTRY/$DOCKERHUB_NAMESPACE/zhbaw:SNAPSHOT-$(BUILD_NUMBER-1)'
        }
    }
  }
}
