Compare commits
5 Commits
cicd-setup
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7353b45f91 | ||
|
|
de9f10b90b | ||
|
|
a3b38923d8 | ||
|
|
c643bffb51 | ||
|
|
a06fc69fce |
56
Jenkinsfile
vendored
56
Jenkinsfile
vendored
@ -2,54 +2,74 @@ pipeline {
|
||||
agent any
|
||||
|
||||
environment {
|
||||
DOCKERHUB_USER = 'vipin2025devops'
|
||||
IMAGE_NAME = 'myapp'
|
||||
IMAGE_TAG = "latest"
|
||||
K8S_DEPLOYMENT = 'k8s/deployment.yaml'
|
||||
K8S_SERVICE = 'k8s/service.yaml'
|
||||
IMAGE_TAG = 'latest'
|
||||
DOCKERHUB_USER = 'vipin2025devops'
|
||||
DEPLOYMENT_FILE = 'k8s/deployment.yaml'
|
||||
SERVICE_FILE = 'k8s/service.yaml'
|
||||
KUBECONFIG = 'C:\\Users\\rlkri\\.kube\\config'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout Code') {
|
||||
steps {
|
||||
checkout scm
|
||||
git branch: 'main',
|
||||
url: 'https://git.opsmonsters.in/vipin.p/my-react-app.git',
|
||||
credentialsId: 'git-opsmonsters-cred'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Docker Image') {
|
||||
stage('Build & Push Docker Image') {
|
||||
steps {
|
||||
powershell """
|
||||
docker build -t ${DOCKERHUB_USER}/${IMAGE_NAME}:${IMAGE_TAG} .
|
||||
script {
|
||||
withCredentials([usernamePassword(credentialsId: 'dockerhub-credentials', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
|
||||
bat """
|
||||
echo %DOCKER_PASS% | docker login -u %DOCKER_USER% --password-stdin
|
||||
docker build -t %DOCKER_USER%/%IMAGE_NAME%:%IMAGE_TAG% .
|
||||
docker push %DOCKER_USER%/%IMAGE_NAME%:%IMAGE_TAG%
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Push Image to Docker Hub') {
|
||||
stage('Verify Docker Image') {
|
||||
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}
|
||||
bat """
|
||||
docker images | findstr %DOCKERHUB_USER%/%IMAGE_NAME%
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy to Kubernetes') {
|
||||
steps {
|
||||
powershell """
|
||||
kubectl apply -f ${K8S_DEPLOYMENT}
|
||||
kubectl apply -f ${K8S_SERVICE}
|
||||
bat """
|
||||
kubectl apply -f %DEPLOYMENT_FILE% --validate=false
|
||||
kubectl apply -f %SERVICE_FILE% --validate=false
|
||||
kubectl get pods -o wide
|
||||
kubectl get svc
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
stage('Verify Deployment') {
|
||||
steps {
|
||||
powershell """
|
||||
bat """
|
||||
echo Pods Status:
|
||||
kubectl get pods -o wide
|
||||
echo Services:
|
||||
kubectl get svc
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
success {
|
||||
echo "Deployment successful!"
|
||||
}
|
||||
failure {
|
||||
echo "Deployment failed. Check logs above."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,6 +14,6 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- name: myapp
|
||||
image: IMAGE_PLACEHOLDER # Jenkins will replace this
|
||||
image: vipin2025devops/myapp:latest
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
|
||||
Loading…
Reference in New Issue
Block a user