/*
  1. added 
     client_max_body_size 0;
     to avoid 413 error
  
  2. npm install error internet problem, fake update 1
*/

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-fe:latest -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-fe:${env.BUILD_ID}")

                /* Push the container to the custom Registry */
                dockerImage.push()
                dockerImage.push('latest')
            }
        }

     }
  }
  catch (err) {
    throw err
  }
}