pipeline {
    agent {
        dockerfile {
            filename 'Dockerfile.build'

            // Install awscli for uploading the built tarballs to S3.
            additionalBuildArgs "--build-arg=packages=awscli --build-arg=branch=${params.BRANCH}"
        }
    }

    stages {
        stage('Build') {
            steps {
                sh 'meson . build'

                // Just build the tarballs and sha256 files
                sh 'ninja -C build provision-phase-1/Endless_Factory_Test.tar.sha256'
            }
        }

        stage('Publish') {
            steps {
                withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: 'iam-user-jenkins-jobs']]) {
                    sh '''aws s3 cp --cache-control "max-age=300" \
                        build/provision-phase-1/Endless_Factory_Test.tar \
                        s3://images-dl.endlessm.com/payg/phase-1/Endless_Factory_Test.tar'''
                    sh '''aws s3 cp --cache-control "max-age=300" \
                        build/provision-phase-1/Endless_Factory_Test.tar.sha256 \
                        s3://images-dl.endlessm.com/payg/phase-1/Endless_Factory_Test.tar.sha256'''
                }
            }
        }
    }
}
