def REGION = "us-west-1"
def AMI = "ami-0dd655843c87b6930"
def TYPE = "t2.2xlarge"

pipeline {
    environment {
        AWS_ACCESS_KEY_ID = credentials("prod-s3-aws-access-key-id")
        AWS_SECRET_ACCESS_KEY = credentials("prod-s3-aws-secret-access-key")
    }

    agent {
        dockerfile {
            filename 'scripts/release/common/docker/setup.Dockerfile'
            args '-u root'
        }
    }

    stages {
        stage("create ec2 instance") {
            steps {
                sh script: "scripts/release/common/create.sh ${REGION} ${AMI} ${TYPE}"
            }
        }

        stage("setup") {
            steps {
                sh script: "scripts/release/build/stage/setup/run.sh ${env.GIT_BRANCH}"
            }
        }

        stage("build") {
            steps {
                sh script: "scripts/release/build/stage/build/run.sh"
            }
        }

        stage("package") {
            steps {
                sh script: "scripts/release/build/stage/package/run.sh"
            }
        }

        stage("sign") {
            steps {
                input "Forward gpg-agent"
                sh script: "scripts/release/build/stage/sign/run.sh"
            }
        }

        stage("verify signatures") {
            steps {
                sh script: "scripts/release/build/stage/verify/run.sh"
            }
        }

        stage("upload") {
            steps {
                script {
                    sh script: "scripts/release/build/stage/upload/run.sh ${env.GIT_BRANCH}"
                }
            }
        }

        stage("delete ec2 instance") {
            steps {
                sh script: "scripts/release/common/delete.sh ${REGION}"
            }
        }

        stage("trigger test job") {
            steps {
                build job: 'test-packages',
                parameters: [
                    string(name: 'branch', value: env.GIT_BRANCH)
                ]
            }
        }
    }
}

