pipeline {
    agent {
        dockerfile {
            filename 'Dockerfile.build'
            args '-v /var/run/docker.sock:/var/run/docker.sock'
        }
    }
    stages {
        stage('Install QEMU') {
            steps {
                sh 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes'
            }
        }
        stage('Build') {
            steps {
                sh 'DOCKER_BUILD_OPTIONS="--no-cache" ./scripts/build.sh'
            }
        }
        stage('Publish') {
            steps {
                withCredentials([usernamePassword(credentialsId: 'docker_hub_login', usernameVariable: 'DOCKER_HUB_USERNAME', passwordVariable: 'DOCKER_HUB_PASSWORD')]) {
                    sh 'docker login -u "${DOCKER_HUB_USERNAME}" -p "${DOCKER_HUB_PASSWORD}"'
                }
                sh 'docker push thebrokenrail/minecraft-pi'
            }
        }
        stage('Package') {
            steps {
                sh './scripts/package.sh'
            }
            post {
                success {
                    archiveArtifacts artifacts: 'out/*', fingerprint: true
                }
            }
        }
    }
}