@Library('flexo-libs')_

def gitCommitSha() {
    return sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
}

def getDate(){
    return sh(script: "echo \$(date +'%Y%m%d%H%M%S')", returnStdout: true).trim()
}

pipeline {
    agent any
    options {
      timestamps()
      ansiColor('xterm')
    }
    environment {
      TAG = gitCommitSha()
      DATE = getDate()
    }
    stages {
        stage('build') {
            steps {
                sh """
mkdir -p packer; cd packer
PACKER_VER=1.2.4
wget -q "https://releases.hashicorp.com/packer/\${PACKER_VER}/packer_\${PACKER_VER}_linux_amd64.zip"
unzip -o packer_\${PACKER_VER}_linux_amd64.zip
cd ..
export PATH=\$(pwd)/packer:\$PATH
make jenkins_build"""
            }
        }
        stage('upload_s3'){
            steps {
                script {
                     if (env.BRANCH_NAME == 'master') {
                        withAgentAWS(role: "provisioner-s3-reverse-proxy-jenkins-assume-role", roleAccount: "805315462901", region: "us-west-2") {
                            sh "aws s3 cp --recursive output s3://provisioner-images-production/jenkins/initramfs_hwraid/\${DATE}-\${TAG}-\${BUILD_ID}/"
                        }
                     } else {
                        withAgentAWS(role: "provisioner-s3-reverse-proxy-jenkins-assume-role", roleAccount: "045385815217", region: "us-east-2") {
                            sh "aws s3 cp --recursive output s3://provisioner-images-staging/jenkins/initramfs_hwraid/\${DATE}-\${TAG}-\${BUILD_ID}/"
                        }
                     }
                }
            }
        }
    }
}
