pipeline {
    agent { label 'docker' }

    options {
        buildDiscarder(logRotator(numToKeepStr: '20'))
        disableConcurrentBuilds()
        timeout(time: 30, unit: 'MINUTES')
        timestamps()
    }

    triggers {
        pollSCM('H * * * *')
        cron('H H H * *')
    }

    stages {
        stage('Build') {
            steps {
                script {
                    docker.withRegistry('https://docker.snppla.net', 'nexus_push') {
                        def customImage = docker.build("docker.snppla.net/snppla/deluge-web:${env.GIT_BRANCH}", '--pull ./')
                        customImage.push()
                    }
                }
            }
        }
    }

    post {
        success {
            emailext body: "${env.BUILD_URL} was built", to: '$DEFAULT_RECIPIENTS', recipientProviders: [developers()], subject: "Built Pipeline: ${currentBuild.fullDisplayName}"
        }
        failure {
            emailext body: "Something is wrong with ${env.BUILD_URL}", to: '$DEFAULT_RECIPIENTS', recipientProviders: [developers()], subject: "Failed Pipeline: ${currentBuild.fullDisplayName}"
        }
        fixed {
            emailext body: "The pipeline was fixed with ${env.BUILD_URL}", to: '$DEFAULT_RECIPIENTS', recipientProviders: [developers()], subject: "Pipeline fixed: ${currentBuild.fullDisplayName}"
        }
    }
}
