#!/usr/bin/env groovy

pipeline {
    agent any
    options {
        timeout(time: 1, unit: 'HOURS')
        timestamps()
        ansiColor('xterm')
    }

    environment {
        AWS_DEFAULT_REGION = 'us-west-2'
    }

    stages {
        stage('Build') {
            steps {
                sh "docker build -t twitch_chef_builder ."
            }
        }

        stage('Deploy') {
            when { branch 'main' }

            steps {
                withAWS(role: "jenkins_chef_builder", roleAccount: "147030575244", region: "us-west-2") {
                    sh """
                    |REGISTRY_URL="147030575244.dkr.ecr.us-west-2.amazonaws.com"
                    |IMAGE_NAME="twitch_chef_builder"
                    |IMAGE_VERSION="latest"
                    |FULL_DOCKER_URL="\$REGISTRY_URL/\$IMAGE_NAME:\$IMAGE_VERSION"
                    |aws ecr get-login-password | docker login --username AWS --password-stdin "\$REGISTRY_URL"
                    |docker tag twitch_chef_builder:latest "\$FULL_DOCKER_URL"
                    |docker push "\$FULL_DOCKER_URL"
                    """.stripMargin()
                }
            }
        }
    }
}
