diff --git a/java-maven-sonar-argocd-helm-k8s/spring-boot-app/JenkinsFile b/java-maven-sonar-argocd-helm-k8s/spring-boot-app/JenkinsFile index a5bb545622..b3ba4a78aa 100644 --- a/java-maven-sonar-argocd-helm-k8s/spring-boot-app/JenkinsFile +++ b/java-maven-sonar-argocd-helm-k8s/spring-boot-app/JenkinsFile @@ -2,67 +2,81 @@ pipeline { agent { docker { image 'abhishekf5/maven-abhishek-docker-agent:v1' - args '--user root -v /var/run/docker.sock:/var/run/docker.sock' // mount Docker socket to access the host's Docker daemon + args '--user root -v /var/run/docker.sock:/var/run/docker.sock' // Ensure root user and Docker socket access } } + environment { + DOCKER_CONFIG = '/root/.docker' // Avoid permission issues with Docker config + SONAR_URL = 'http://34.201.116.83:9000' + } stages { stage('Checkout') { steps { - sh 'echo passed' - //git branch: 'main', url: 'https://github.com/iam-veeramalla/Jenkins-Zero-To-Hero.git' + echo 'Checkout stage passed' + // Uncomment to enable Git checkout + // git branch: 'main', url: 'https://github.com/iam-veeramalla/Jenkins-Zero-To-Hero.git' } } stage('Build and Test') { steps { - sh 'ls -ltr' - // build the project and create a JAR file - sh 'cd java-maven-sonar-argocd-helm-k8s/spring-boot-app && mvn clean package' + sh ''' + echo "Listing files in workspace..." + ls -ltr + echo "Building Maven project..." + cd java-maven-sonar-argocd-helm-k8s/spring-boot-app + mvn clean package + ''' } } stage('Static Code Analysis') { - environment { - SONAR_URL = "http://34.201.116.83:9000" - } steps { withCredentials([string(credentialsId: 'sonarqube', variable: 'SONAR_AUTH_TOKEN')]) { - sh 'cd java-maven-sonar-argocd-helm-k8s/spring-boot-app && mvn sonar:sonar -Dsonar.login=$SONAR_AUTH_TOKEN -Dsonar.host.url=${SONAR_URL}' + sh ''' + echo "Running SonarQube analysis..." + cd java-maven-sonar-argocd-helm-k8s/spring-boot-app + mvn sonar:sonar -Dsonar.login=$SONAR_AUTH_TOKEN -Dsonar.host.url=${SONAR_URL} + ''' } } } stage('Build and Push Docker Image') { environment { DOCKER_IMAGE = "abhishekf5/ultimate-cicd:${BUILD_NUMBER}" - // DOCKERFILE_LOCATION = "java-maven-sonar-argocd-helm-k8s/spring-boot-app/Dockerfile" - REGISTRY_CREDENTIALS = credentials('docker-cred') } steps { script { - sh 'cd java-maven-sonar-argocd-helm-k8s/spring-boot-app && docker build -t ${DOCKER_IMAGE} .' - def dockerImage = docker.image("${DOCKER_IMAGE}") - docker.withRegistry('https://index.docker.io/v1/', "docker-cred") { - dockerImage.push() - } + sh ''' + echo "Building Docker image..." + mkdir -p /root/.docker + cd java-maven-sonar-argocd-helm-k8s/spring-boot-app + docker build -t ${DOCKER_IMAGE} . + ''' + def dockerImage = docker.image("${DOCKER_IMAGE}") + docker.withRegistry('https://index.docker.io/v1/', 'docker-cred') { + dockerImage.push() + } } } } stage('Update Deployment File') { - environment { - GIT_REPO_NAME = "Jenkins-Zero-To-Hero" - GIT_USER_NAME = "iam-veeramalla" - } - steps { - withCredentials([string(credentialsId: 'github', variable: 'GITHUB_TOKEN')]) { - sh ''' - git config user.email "abhishek.xyz@gmail.com" - git config user.name "Abhishek Veeramalla" - BUILD_NUMBER=${BUILD_NUMBER} - sed -i "s/replaceImageTag/${BUILD_NUMBER}/g" java-maven-sonar-argocd-helm-k8s/spring-boot-app-manifests/deployment.yml - git add java-maven-sonar-argocd-helm-k8s/spring-boot-app-manifests/deployment.yml - git commit -m "Update deployment image to version ${BUILD_NUMBER}" - git push https://${GITHUB_TOKEN}@github.com/${GIT_USER_NAME}/${GIT_REPO_NAME} HEAD:main - ''' - } + environment { + GIT_REPO_NAME = "Jenkins-Zero-To-Hero" + GIT_USER_NAME = "iam-veeramalla" + } + steps { + withCredentials([string(credentialsId: 'github', variable: 'GITHUB_TOKEN')]) { + sh ''' + echo "Updating Kubernetes deployment manifest..." + git config user.email "abhishek.xyz@gmail.com" + git config user.name "Abhishek Veeramalla" + cd java-maven-sonar-argocd-helm-k8s + sed -i "s/replaceImageTag/${BUILD_NUMBER}/g" spring-boot-app-manifests/deployment.yml + git add spring-boot-app-manifests/deployment.yml + git commit -m "Update deployment image to version ${BUILD_NUMBER}" + git push https://${GITHUB_TOKEN}@github.com/${GIT_USER_NAME}/${GIT_REPO_NAME} HEAD:main + ''' } + } } } }