import groovy.json.JsonBuilder
import groovy.json.JsonOutput
import jenkins.util.*;
import jenkins.model.*

pipeline {
    agent any
    environment {
        SERVICE=sh(script:"cat deploy/env-prd | grep SERVICE_NAME | cut -f2 -d '=' | sed -e 's/-//g' ", returnStdout: true).trim()
        GIT_TAG=sh(script:"cat deploy/env-prd | grep GIT_TAG | cut -f2 -d '=' ", returnStdout: true).trim()
    }
    stages {
        stage('development') {
            agent any
            when {
                branch 'develop'
            }
            steps {
                sh '$(/var/jenkins_home/.local/bin/aws ecr get-login --no-include-email --region us-east-1)'
                sh 'docker build --build-arg var_env=dev -t 261567712600.dkr.ecr.us-east-1.amazonaws.com/$SERVICE:latest-dev .'
                sh 'docker push 261567712600.dkr.ecr.us-east-1.amazonaws.com/$SERVICE:latest-dev'
                withAWS(credentials: 'aws-celula-integracao-plataformas') {
                    sh "/var/jenkins_home/.local/bin/aws ecs update-service --region us-east-1 --force-new-deployment --service src-app-$SERVICE-dev --cluster ecs-tvg-stg"
                }
            }
        }
        stage('release') {
            agent any
            when {
                branch 'release/*'
            }
            steps {
                sh '$(/var/jenkins_home/.local/bin/aws ecr get-login --no-include-email --region us-east-1)'
                sh 'docker build --build-arg var_env=stg -t 261567712600.dkr.ecr.us-east-1.amazonaws.com/$SERVICE:latest-stg .'
                sh 'docker push 261567712600.dkr.ecr.us-east-1.amazonaws.com/$SERVICE:latest-stg'
                withAWS(credentials: 'aws-celula-integracao-plataformas') {
                    sh "/var/jenkins_home/.local/bin/aws ecs update-service --region us-east-1 --force-new-deployment --service src-app-$SERVICE-stg --cluster ecs-tvg-stg"
                }
            }
        }
        stage('prodution') {
            agent any
            when {
                branch 'master'
            }
            steps {
                input('Do you want to proceed?')
            }
        }
            stage('If Proceed is clicked'){
                agent any
                when {
                    branch 'master'
                }
            steps {
                sh '$(/var/jenkins_home/.local/bin/aws ecr get-login --no-include-email --region us-east-1)'
                sh 'docker  build --build-arg var_env=prd -t 261567712600.dkr.ecr.us-east-1.amazonaws.com/$SERVICE:$GIT_TAG .'
                sh 'docker push 261567712600.dkr.ecr.us-east-1.amazonaws.com/$SERVICE:$GIT_TAG'
                sh "chmod u+x ./scripts/deploy.sh"
                sh "./scripts/deploy.sh"
                }
        }
    }
}
