diff --git a/Dockerfile b/Dockerfile index 4324eba4..543e95d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,3 @@ -# test -FROM bitnami/tomcat +FROM bitnami/tomcat:latest ENV ALLOW_EMPTY_PASSWORD=yes -COPY addressbook.war /opt/bitnami/tomcat/webapps_default/addressbook.war +COPY target/*.war /opt/bitnami/tomcat/webapps_default/addressbook.war diff --git a/Jenkinsfile b/Jenkinsfile index 57caa9d7..d66c59ab 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,19 +1,69 @@ pipeline { agent any + + environment { + GIT_REPO = 'https://github.com/suhassg25/addressbook.git' + AWS_REGION = 'ap-south-1' + ECR_REPO = '409171460696.dkr.ecr.ap-south-1.amazonaws.com/jenkinsecr' + IMAGE_TAG = 'latest' + IMAGE_URI = "${ECR_REPO}:${IMAGE_TAG}" + EKS_CLUSTER = 'my-cluster' + } + stages { - stage('Compile') { - steps { - sh 'mvn compile' + + stage('Clean Workspace') { + steps { + deleteDir() + } + } + + stage('Clone') { + steps { + git url: "${GIT_REPO}", branch: 'master' + } + } + + stage('Build') { + steps { + sh 'mvn clean package' + } + } + + stage('Login to ECR') { + steps { + sh ''' + aws ecr get-login-password --region $AWS_REGION \ + | docker login --username AWS --password-stdin $ECR_REPO + ''' + } + } + + stage('Build Docker Image') { + steps { + sh 'docker build -t $IMAGE_URI .' } } - stage('test') { - steps { - sh 'mvn test' + + stage('Push Image') { + steps { + sh 'docker push $IMAGE_URI' } } - stage('package') { - steps { - sh 'mvn package' + + stage('Deploy to EKS') { + steps { + sh ''' + echo "Current directory:" + pwd + + echo "List files:" + ls -l + aws eks update-kubeconfig --region $AWS_REGION --name $EKS_CLUSTER + + kubectl apply -f deployment.yaml + kubectl apply -f servicelb.yaml + ''' } } } diff --git a/deployment.yaml b/deployment.yaml index ab6ace49..61bf73ca 100644 --- a/deployment.yaml +++ b/deployment.yaml @@ -1,4 +1,4 @@ -# test + apiVersion: apps/v1 kind: Deployment metadata: @@ -19,7 +19,7 @@ spec: app: mydeploy spec: containers: - - image: rajendrait99/addressbook:1.0 + - image: 409171460696.dkr.ecr.ap-south-1.amazonaws.com/jenkinsecr:latest name: addressbook ports: - containerPort: 8080 diff --git a/pom.xml b/pom.xml index 6bebf532..fa03adac 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.edurekademo.tutorial addressbook war - 2.0 + 3.4 Vaadin Addressbook example @@ -79,7 +79,7 @@ javax.servlet javax.servlet-api 3.0.1 - compile + provided