/*
  1. added 
     client_max_body_size 0;
     to avoid 413 error
*/

node {
  def app
  def registryAddress
  def registryCredential
  try {
    // environment {
      registryAddress = "https://registry.sidali.sixsenz.net"
      registryCredential = 'DockerRegistry-ID'
    // }
	
    stage('Checkout') {
      checkout scm
    }
	
    stage('Initialize'){
      def dockerHome = tool 'myDocker'
      env.PATH = "${dockerHome}/bin:${env.PATH}"
    }
	
    stage('Environment') {
      sh 'git --version'
      echo "Branch: master"
      sh 'docker -v'
      sh 'printenv'
    }
	
    stage('Test Build'){
     sh 'docker build -t ptb-be -f dockerfile .'
    }
	
    stage('Build Deploy '){
            // // now you are on slave labeled with 'label'
            // def workspace = WORKSPACE
            // // ${workspace} will now contain an absolute path to job workspace on slave

            // workspace = env.WORKSPACE
            // // ${workspace} will still contain an absolute path to job workspace on slave

            // // When using a GString at least later Jenkins versions could only handle the env.WORKSPACE variant:
            // echo "Current workspace is ${env.WORKSPACE}"

            // // the current Jenkins instances will support the short syntax, too:
            // echo "Current workspace is $WORKSPACE"
        docker.withTool("myDocker"){
            docker.withRegistry(registryAddress, registryCredential) {

                def dockerImage = docker.build("ptb-be:${env.BUILD_ID}")

                /* Push the container to the custom Registry */
                dockerImage.push()
                dockerImage.push('latest')
            }
        }
        // echo 'env.BRANCH_NAME : ' + env.BRANCH_NAME
        // if(env.BRANCH_NAME == 'master'){
        //     script {
        //         app = docker.build("ptb-be:latest")
        //         echo 'app content : ' + app
        //         dockerImage = registryAddress + ":$BUILD_NUMBER"
        //         echo 'dockerImage : ' + dockerImage
        //         echo 'registryCredential : ' + registryCredential
        //         echo 'registryAddress : ' + registryAddress
        //         echo 'withRegistry running...'
        //         docker.withRegistry( "http://"+registryAddress, registryCredential ) {
        //             echo 'withRegistry inside... app.push start'
        //             //app.push("${BUILD_NUMBER}")
        //             app.push('ptb-be:latest')
        //             echo 'app.push done'
        //             echo 'withRegistry inside... app.push latest start'
        //             app.push(latest)
        //             echo 'withRegistry inside... app.push latest done'
        //         }
        //     }
        // }

     }
  }
  catch (err) {
    throw err
  }
}