pipeline {
    agent any
    triggers {
        gerrit customUrl: '',
            gerritProjects: [
                [branches: [[compareType: 'PLAIN', pattern: 'master']],
                 compareType: 'PLAIN',
                 disableStrictForbiddenFileVerification: false,
                 pattern: 'master']],
            triggerOnEvents: [
                commentAddedContains('!build'),
                patchsetCreated(excludeDrafts: true, excludeNoCodeChange: true)]
    }
    options {
        ansiColor('xterm')
    }
    parameters {
            string(name: 'GERRIT_REFSPEC',
                   defaultValue: 'refs/heads/master',
                   description: 'The Gerrit refspec to fetch.')
    }
    stages {
        stage('SCM Checkout') {
            steps {
                checkout changelog: true, poll: false,
                    scm: [$class: 'GitSCM',
                        branches: [[name: 'FETCH_HEAD']],
                        doGenerateSubmoduleConfigurations: false,
                        extensions: [
                            [$class: 'CloneOption', noTags: true, reference: '', shallow: true],
                            [$class: 'WipeWorkspace']],
                        submoduleCfg: [],
                        userRemoteConfigs: [[refspec: '${GERRIT_REFSPEC}', url: 'https://${JAMI_GERRIT_URL}/dhtnet']]]
            }
        }
        stage('Build') {
            steps {
                script {
                    docker.build("dhtnet:${env.BUILD_ID}", "--target test .")
                }
            }
        }
        stage('Show result') {
            steps {
                sh """
                id=\$(docker create dhtnet:${env.BUILD_ID})
                docker cp \$id:/result.summary result.summary
                cat result.summary
                docker cp \$id:/coverage coverage
                docker rm -v \$id
                """
            }
        }
        stage('Upload') {
            steps {
                sshagent(['5825b39b-dfc6-435f-918e-12acc1f56221']) {
                    sh("rsync -a coverage ${env.SSH_HOST_DL_RING_CX}:/srv/repository/ring/docs/dhtnet/")
                }
            }
        }
    }
}
