57 lines
1.8 KiB
Groovy
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()
|
|
}
|
|
}
|
|
} |