def gitShortCommitSha() {
    return sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
}

pipeline {
    agent any

    options {
        ansiColor('xterm')
        timestamps()
    }

    environment {
        LABEL = "latest"
        GIT_COMMIT = gitShortCommitSha()
    }

    stages {
        stage('Build') {
            steps {
                sh """
                    docker build . \\
                        --pull \\
                        -t docker.pkgs.xarth.tv/ml/python3.7-poetry:\${LABEL} \\
                        -t docker.pkgs.xarth.tv/ml/python3.7-poetry:\${GIT_COMMIT}
                """
            }
        }
        stage('Push') {
            steps {
                sh """
                    docker push docker.pkgs.xarth.tv/ml/python3.7-poetry:\${LABEL}
                    docker push docker.pkgs.xarth.tv/ml/python3.7-poetry:\${GIT_COMMIT}
                """
            }
        }
    }
}
