56 lines
1.5 KiB
Groovy
56 lines
1.5 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
DOCKERHUB_USER = 'vipin2025devops'
|
|
IMAGE_NAME = 'myapp'
|
|
IMAGE_TAG = "latest"
|
|
K8S_DEPLOYMENT = 'k8s/deployment.yaml'
|
|
K8S_SERVICE = 'k8s/service.yaml'
|
|
}
|
|
|
|
stages {
|
|
stage('Checkout Code') {
|
|
steps {
|
|
checkout scm
|
|
}
|
|
}
|
|
|
|
stage('Build Docker Image') {
|
|
steps {
|
|
powershell """
|
|
docker build -t ${DOCKERHUB_USER}/${IMAGE_NAME}:${IMAGE_TAG} .
|
|
"""
|
|
}
|
|
}
|
|
|
|
stage('Push Image to Docker Hub') {
|
|
steps {
|
|
withCredentials([usernamePassword(credentialsId: 'docker-hub-credentials', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
|
|
powershell """
|
|
echo $env:DOCKER_PASS | docker login -u $env:DOCKER_USER --password-stdin
|
|
docker push ${DOCKERHUB_USER}/${IMAGE_NAME}:${IMAGE_TAG}
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Deploy to Kubernetes') {
|
|
steps {
|
|
powershell """
|
|
kubectl apply -f ${K8S_DEPLOYMENT}
|
|
kubectl apply -f ${K8S_SERVICE}
|
|
"""
|
|
}
|
|
}
|
|
|
|
stage('Verify Deployment') {
|
|
steps {
|
|
powershell """
|
|
kubectl get pods -o wide
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|