node('docker') {
    def app_name = 'jenkins'
    def app_port = '8080'
    def workdir = 'dockerfiles/services/jenkins'
    def dockerhost = 'dkhost:2376'

    stage('prepare') {
        git credentialsId: 'f1f58215-c789-44a2-9b72-50e4425cb061', url: 'ssh://git@git.xai-corp.net:10022/xai-corp.net/provisioning.git'
        sh 'ls'
    }

    stage('build') {
        dir(workdir) {
            sh "DOCKER_HOST=${dockerhost} docker-compose -f docker-compose.yml pull"
        }
    }

    stage('deploy') {
        dir(workdir) {
            sh """
                export DOCKER_HOST=${dockerhost}
                docker stack deploy -c docker-compose.yml jenkins
                docker service update -q jenkins_app
            """
        }
    }

    stage('smoke tests') {
        dir(workdir) {
            retry(5) {
                sleep 30
                sh "curl -If http://dkhost:8080/metrics/ejkxeVI-iKLy968ji9AnfYmOHGIh1kYd3gA500JqrRxzTeenT06ynR5Dqo0CQplO/healthcheck"
            }
        }
    }
}
