pipeline {
  agent any
  options {
    buildDiscarder(logRotator(numToKeepStr: '5'))
  }
  environment {
    DOCKERHUB_CREDENTIALS = credentials('dockerhub')
  }
  stages {
    stage('Build') {
      steps {
        sh 'whoami'
        sh 'docker build -t buzzerburger/test:latest ./app'
      }
    }
    stage('test') {
      steps {
        sh 'docker run -d --name shankar buzzerburger/test'
        sh 'docker exec shankar php artisan test'
        sh 'docker rm shankar -f'  
      }
    }
    stage('Login') {
      steps {
        sh 'echo $DOCKERHUB_CREDENTIALS_PSW | docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin'
      }
    }
    stage('Push') {
      steps {
        sh 'docker push buzzerburger/test'
      }
    }
  }
  post {
    always {
      sh 'docker logout'
      sh 'docker rmi buzzerburger/test'
    }
  }
} 