NAM-APJATEL-BACKEND/Jenkinsfile

57 lines
1.8 KiB
Groovy

pipeline {
agent any
environment {
REGISTRY_URL = 'git.winteraccess.id'
IMAGE_NAME = 'winter-access/backend_nam'
KUBE_CONFIG_ID = '8c2082d8-ab78-48b5-a27b-6717387a5ce6'
CREDENTIALS_ID = '8242519c-ed9e-447a-ad63-1f8d7368cf68'
}
stages {
stage('Checkout Code') {
steps {
git branch: 'dev', url: 'https://git.winteraccess.id/winter-access/backend_nam.git', credentialsId: "${CREDENTIALS_ID}"
}
}
stage('Build Docker Image') {
steps {
script {
def shortSha = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
def imageTag = "dev-${shortSha}"
sh "docker build -t ${REGISTRY_URL}/${IMAGE_NAME}:${imageTag} ."
}
}
}
stage('Push Docker Image') {
steps {
script {
def shortSha = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
def imageTag = "dev-${shortSha}"
sh "docker push ${REGISTRY_URL}/${IMAGE_NAME}:${imageTag}"
sh "docker push ${REGISTRY_URL}/${IMAGE_NAME}:dev"
sh "docker push ${REGISTRY_URL}/${IMAGE_NAME}:latest"
}
}
}
stage('Deploy to Kubernetes') {
steps {
script {
withCredentials([string(credentialsId: "${KUBE_CONFIG_ID}", variable: 'KUBE_CONFIG')]) {
writeFile file: 'kubeconfig', text: KUBE_CONFIG
sh "kubectl apply -f deploy/kubernetes/dev.yaml --kubeconfig=kubeconfig"
}
}
}
}
}
post {
always {
cleanWs()
}
}
}