Add Jenkinsfile for CI/CD pipeline

This commit is contained in:
root 2025-04-27 08:44:23 +07:00
parent c0b920034e
commit 09b135e612

37
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,37 @@
pipeline {
agent any
environment {
REGISTRY = "docker.rri.co.id"
IMAGE_NAME = "ci3-app"
IMAGE_TAG = "latest"
KUBE_NAMESPACE = "default"
DEPLOYMENT_NAME = "ci3-deployment"
}
stages {
stage('Checkout') {
steps {
git url: 'http://git.rri.co.id/admin/ci3-app.git'
}
}
stage('Build Docker Image') {
steps {
sh "docker build -t ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} ."
}
}
stage('Push Image') {
steps {
withCredentials([usernamePassword(credentialsId: 'docker-credentials', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
sh """
echo \$DOCKER_PASS | docker login ${REGISTRY} -u \$DOCKER_USER --password-stdin
docker push ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
"""
}
}
}
stage('Deploy to Kubernetes') {
steps {
sh "kubectl set image deployment/${DEPLOYMENT_NAME} php=${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} -n ${KUBE_NAMESPACE}"
}
}
}
}