#!groovy

def main() {
    String gitUrl = "${env.GERRIT_SCHEME}://${env.GERRIT_HOST}:${env.GERRIT_PORT}/${env.GERRIT_PROJECT}"
    String gitRef = env.GERRIT_REFSPEC

    stage('SCM checkout') {
        echo "Checking out git repository from ${gitUrl} @ ${gitRef}"

        checkout \
            $class: 'GitSCM',
            branches: [[
                name: 'FETCH_HEAD'
            ]],
            userRemoteConfigs: [[
                url: gitUrl,
                refspec: gitRef,
                credentialsId: env.GIT_CREDENTIALS_ID
            ]],
            extensions: [[
                $class: 'WipeWorkspace'
            ]]
    }

    stage('tox') {
        sh '''#!/bin/bash -ex
        tox -v
        '''

    }
}

String podTpl = """
    apiVersion: "v1"
    kind: "Pod"
    spec:
      securityContext:
          runAsUser: 1000
      containers:
      - name: "main"
        image: "${env.DOCKER_IMAGE}"
        command:
        - "cat"
        securityContext:
          privileged: false
        tty: true
"""

if (env.K8S_CLUSTER == 'unset') {
    node(env.NODE_LABEL) {
        docker.image(env.DOCKER_IMAGE).inside('--entrypoint=""') {
            main()
        }
    }
} else {
    podTemplate(
            cloud: env.K8S_CLUSTER,
            yaml: podTpl,
            showRawYaml: false
        ) {
            node(POD_LABEL) {
            container('main') {
                main()
            }
        }
    }
}
