pipeline {
    environment {
    registry = "https://seporegistry.azurecr.io"
    registryCredential = "e4feeff0-0582-466d-ac00-f04bdbe42473"
    dockerImage = ''
    dockerImageTest = ''
    dockerBaseTest = ''
    }
    agent any
    stages {
       stage ('Building base image') {
           steps{
               script {
                   dockerBaseTest = docker.build("salvatti_base", '-f ./docker/base/Dockerfile .')
                         }
                      }
                  }
       stage ('Building test image') {
           steps{
               script {

                   dockerImageTest = docker.build("salvatti_backend" + ":master-test", '-f ./docker/test/Dockerfile .')
                  }
               }
           }
       stage ('Run docker composer install'){
           steps{
               script {
                   dockerImageTest.inside{
                          sh 'composer install'
                        }
                      }
                    }
                  }
       stage ('Run docker container testing'){
            steps{
                script {
                    dockerImageTest.inside{
                    sh 'php ./vendor/bin/phpunit'
                  }
                }
              }
            }
       stage ('Building production image') {
           steps{
               script {
                   dockerImage = docker.build("salvatti_backend" + ":master", '-f ./docker/prod/Dockerfile .')
                      }
               }
           }
       stage('Deploy Image') {
           steps{
               script {
                   docker.withRegistry( registry, registryCredential ) {
                   dockerImage.push()
                 }
               }
           }
       }
       stage('Login to SSH') {
           steps{
               script{
               sh 'docker-compose -f /home/yellows/salvatti_backend/docker-compose.yaml up -d'
               }
           }
       }
    }
}


