#!groovy

@Library('infraLib') _

pipeline {
  agent {
    label 'linux-agents'
  }

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

  environment {
    TWINE_USERNAME = utility.getSecretValueByIdAndJsonPath('infra/jenkins/common/pypi_nexus', 'gdb-infra-dev', '.username')
    TWINE_PASSWORD = utility.getSecretValueByIdAndJsonPath('infra/jenkins/common/pypi_nexus', 'gdb-infra-dev', '.password')
  }

  stages {
    stage('Build Package') {
      steps {
        sh "make docker/package/build"
      }
    }
    stage('Upload Package') {
      when { branch 'master' }
      steps {
        sh "make docker/package/upload"
      }
    }
    stage('Build image') {
      when { branch 'master' }
      steps {
        sh "make docker/login"
        sh "make docker/image/build"
      }
    }
    stage('Upload image') {
      when { branch 'master' }
      steps {
        sh "make docker/login"
        sh "make docker/image/push"
      }
    }
  }
}
