65 lines
1.8 KiB
Groovy
65 lines
1.8 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
REGISTRY = "10.77.77.41:5000/slalog"
|
|
IMAGE_NAME = "sla-separacao"
|
|
IMAGE_TAG = "${BUILD_NUMBER}"
|
|
K8S_DIR = "k8s"
|
|
K8S_NAMESPACE = "ci-cd"
|
|
}
|
|
|
|
stages {
|
|
stage('Checkout') {
|
|
steps {
|
|
checkout scm
|
|
}
|
|
}
|
|
|
|
stage('Build Docker Image') {
|
|
steps {
|
|
script {
|
|
sh """
|
|
docker build -t ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} .
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Push Docker Image') {
|
|
steps {
|
|
script {
|
|
sh """
|
|
docker push ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Deploy to Kubernetes') {
|
|
steps {
|
|
script {
|
|
sh """
|
|
export KUBECONFIG=/var/lib/jenkins/.kube/config
|
|
sed -i 's|image: .*sla-separacao:.*|image: ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}|' k8s/deployment.yaml
|
|
kubectl apply -n ${K8S_NAMESPACE} -f k8s/deployment.yaml
|
|
kubectl apply -n ${K8S_NAMESPACE} -f k8s/service.yaml
|
|
kubectl apply -n ${K8S_NAMESPACE} -f k8s/hpa.yaml
|
|
git checkout -- k8s/deployment.yaml
|
|
kubectl rollout status deployment/sla-separacao-deployment -n ${K8S_NAMESPACE} --timeout=180s
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
success {
|
|
echo "Deploy realizado com sucesso."
|
|
}
|
|
failure {
|
|
echo "Falha no pipeline."
|
|
}
|
|
}
|
|
}
|