pipeline {
  environment {
    registry = 'https://registry.hub.docker.com'
    registryCredential = 'dockerhub_jcabillot'
    dockerImage = 'jcabillot/tracks'
  }

  agent any

  triggers {
    cron('@midnight')
  }

  stages {
    stage('Clone repository') {
      steps{
        checkout scm
      }
    }

    stage('Build image') {
      steps{
        sh 'docker build --force-rm=true --no-cache=true --pull -t ${dockerImage} .'
      }
    }

    stage('Deploy Image') {
      steps{
        script {
          withCredentials([usernamePassword(credentialsId: 'dockerhub_jcabillot', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
            sh 'docker login --username ${DOCKER_USER} --password ${DOCKER_PASS}'
            sh 'docker push ${dockerImage}'
          }
        }
      }
    }
  }
}
