This commit is contained in:
areeqakbr 2025-02-24 14:43:35 +07:00
parent 9995e51e40
commit 701685bb15
1 changed files with 29 additions and 25 deletions

54
Jenkinsfile vendored
View File

@ -1,5 +1,5 @@
pipeline { pipeline {
agent any agent { label 'ubuntu-latest' } // Runs on an Ubuntu-based Jenkins agent
environment { environment {
REGISTRY_URL = 'git.winteraccess.id' REGISTRY_URL = 'git.winteraccess.id'
@ -15,36 +15,37 @@ pipeline {
} }
} }
stage('Build Docker Image') { stage('Get Short SHA') {
agent {
docker {
image 'docker:latest'
args '-v /var/run/docker.sock:/var/run/docker.sock'
}
}
steps { steps {
script { script {
def shortSha = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() env.SHORT_SHA = 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') { stage('Login to Registry') {
agent {
docker {
image 'docker:latest'
args '-v /var/run/docker.sock:/var/run/docker.sock'
}
}
steps { steps {
script { script {
def shortSha = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() sh """
def imageTag = "dev-${shortSha}" echo '${env.REGISTRY_TOKEN}' | docker login ${REGISTRY_URL} --username ${env.REGISTRY_USER} --password-stdin
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('Build and Push Docker Image') {
steps {
script {
def imageTag = "dev-${env.SHORT_SHA}"
sh """
docker build -t ${REGISTRY_URL}/${IMAGE_NAME}:${imageTag} \
-t ${REGISTRY_URL}/${IMAGE_NAME}:dev \
-t ${REGISTRY_URL}/${IMAGE_NAME}:latest \
-f deploy/docker/Dockerfile .
docker push ${REGISTRY_URL}/${IMAGE_NAME}:${imageTag}
docker push ${REGISTRY_URL}/${IMAGE_NAME}:dev
docker push ${REGISTRY_URL}/${IMAGE_NAME}:latest
"""
} }
} }
} }
@ -54,7 +55,10 @@ pipeline {
script { script {
withCredentials([string(credentialsId: "${KUBE_CONFIG_ID}", variable: 'KUBE_CONFIG')]) { withCredentials([string(credentialsId: "${KUBE_CONFIG_ID}", variable: 'KUBE_CONFIG')]) {
writeFile file: 'kubeconfig', text: KUBE_CONFIG writeFile file: 'kubeconfig', text: KUBE_CONFIG
sh "kubectl apply -f deploy/kubernetes/dev.yaml --kubeconfig=kubeconfig" sh """
kubectl apply -f deploy/kubernetes/dev.yaml --kubeconfig=kubeconfig
kubectl set image deployment/backend backend=${REGISTRY_URL}/${IMAGE_NAME}:dev-${env.SHORT_SHA} -n nam-backend-dev --kubeconfig=kubeconfig
"""
} }
} }
} }
@ -66,4 +70,4 @@ pipeline {
cleanWs() cleanWs()
} }
} }
} }