diff --git a/Dockerfile b/Dockerfile index 1403e58..3974f70 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,3 @@ FROM tomcat:8 # Take the war and copy to webapps of tomcat -COPY target/*.war /usr/local/tomcat/webapps/ -# Added for jenkins demo +COPY target/newapp.war /usr/local/tomcat/webapps/ diff --git a/Jenkinsfile b/Jenkinsfile index d4ac0cc..e961b06 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,23 +1,42 @@ node{ stage('SCM Checkout'){ - git 'https://github.com/javahometech/my-app' + git 'https://github.com/damodaranj/my-app.git' } stage('Compile-Package'){ - // Get maven home path - def mvnHome = tool name: 'maven-3', type: 'maven' - sh "${mvnHome}/bin/mvn package" + + def mvnHome = tool name: 'maven3', type: 'maven' + sh "${mvnHome}/bin/mvn clean package" + sh 'mv target/myweb*.war target/newapp.war' } - stage('Email Notification'){ - mail bcc: '', body: '''Hi Welcome to jenkins email alerts - Thanks - Hari''', cc: '', from: '', replyTo: '', subject: 'Jenkins Job', to: 'hari.kammana@gmail.com' + stage('SonarQube Analysis') { + def mvnHome = tool name: 'maven3', type: 'maven' + withSonarQubeEnv('sonar') { + sh "${mvnHome}/bin/mvn sonar:sonar" + } + } + stage('Build Docker Imager'){ + sh 'docker build -t saidamo/myweb:0.0.2 .' } - stage('Slack Notification'){ - slackSend baseUrl: 'https://hooks.slack.com/services/', - channel: '#jenkins-pipeline-demo', - color: 'good', - message: 'Welcome to Jenkins, Slack!', - teamDomain: 'javahomecloud', - tokenCredentialId: 'slack-demo' + stage('Docker Image Push'){ + withCredentials([string(credentialsId: 'dockerPass', variable: 'dockerPassword')]) { + sh "docker login -u saidamo -p ${dockerPassword}" + } + sh 'docker push saidamo/myweb:0.0.2' } + stage('Nexus Image Push'){ + sh "docker login -u admin -p admin123 54.171.156.244:8083" + sh "docker tag saidamo/myweb:0.0.2 54.171.156.244:8083/damo:1.0.0" + sh 'docker push 54.171.156.244:8083/damo:1.0.0' + } + + stage('Remove Previous Container'){ + try{ + sh 'docker rm -f tomcattest' + }catch(error){ + // do nothing if there is an exception + } + stage('Docker deployment'){ + sh 'docker run -d -p 8090:8080 --name tomcattest saidamo/myweb:0.0.2' + } +} } diff --git a/deploy-to-tomcat b/deploy-to-tomcat index 283046e..62063a9 100644 --- a/deploy-to-tomcat +++ b/deploy-to-tomcat @@ -1,12 +1,26 @@ node{ - + def tomcatIp = '172.31.14.131' + def tomcatUser = 'ec2-user' + def stopTomcat = "ssh ${tomcatUser}@${tomcatIp} /opt/tomcat8/bin/shutdown.sh" + def startTomcat = "ssh ${tomcatUser}@${tomcatIp} /opt/tomcat8/bin/startup.sh" + def copyWar = "scp -o StrictHostKeyChecking=no target/myweb.war ${tomcatUser}@${tomcatIp}:/opt/tomcat8/webapps/" stage('SCM Checkout'){ - git 'https://github.com/javahometech/my-app' + git branch: 'master', + credentialsId: 'javahometech', + url: 'https://github.com/javahometech/myweb' + } + stage('Maven Build'){ + def mvnHome = tool name: 'maven3', type: 'maven' + sh "${mvnHome}/bin/mvn clean package" + } + + stage('Deploy Dev'){ + sh 'mv target/myweb*.war target/myweb.war' + + sshagent(['tomcat-dev']) { + sh "${stopTomcat}" + sh "${copyWar}" + sh "${startTomcat}" + } } - stage('Compile-Package'){ - // Get maven home path - def mvnHome = tool name: 'maven-3', type: 'maven' - sh "${mvnHome}/bin/mvn package" - } - } diff --git a/docker-ci-cd b/docker-ci-cd deleted file mode 100644 index a4d09c3..0000000 --- a/docker-ci-cd +++ /dev/null @@ -1,39 +0,0 @@ -node{ - stage('Git Checkout'){ - git 'https://github.com/javahometech/my-app' - } - stage('Maven Package'){ - sh 'mvn clean package' - sh 'mv target/myweb*.war target/myweb.war' - } - - stage('Build Docker Imager'){ - sh 'docker build -t kammana/myweb:0.0.1 .' - } - - stage('Push to Docker Hub'){ - - withCredentials([string(credentialsId: 'github-pwd', variable: 'dockerHubPwd')]) { - sh "docker login -u kammana -p ${dockerHubPwd}" - } - sh 'docker push kammana/myweb:0.0.1' - } - stage('Remove Previous Container'){ - try{ - def dockerRm = 'docker rm -f myweb' - sshagent(['docker-dev']) { - sh "ssh -o StrictHostKeyChecking=no ec2-user@172.31.17.196 ${dockerRm}" - } - }catch(error){ - // do nothing if there is an exception - } - } - stage('Deploy to Dev Environment'){ - def dockerRun = 'docker run -d -p 8080:8080 --name myweb kammana/myweb:0.0.1 ' - sshagent(['docker-dev']) { - sh "ssh -o StrictHostKeyChecking=no ec2-user@172.31.17.196 ${dockerRun}" - } - - } - -} diff --git a/docker-ci-cd-youtube b/docker-ci-cd-youtube deleted file mode 100644 index 1d7d648..0000000 --- a/docker-ci-cd-youtube +++ /dev/null @@ -1,25 +0,0 @@ -node{ - stage('SCM Checkout'){ - git credentialsId: 'git-creds', url: 'https://github.com/javahometech/my-app' - } - stage('Mvn Package'){ - def mvnHome = tool name: 'maven-3', type: 'maven' - def mvnCMD = "${mvnHome}/bin/mvn" - sh "${mvnCMD} clean package" - } - stage('Build Docker Image'){ - sh 'docker build -t kammana/my-app:2.0.0 .' - } - stage('Push Docker Image'){ - withCredentials([string(credentialsId: 'docker-pwd', variable: 'dockerHubPwd')]) { - sh "docker login -u kammana -p ${dockerHubPwd}" - } - sh 'docker push kammana/my-app:2.0.0' - } - stage('Run Container on Dev Server'){ - def dockerRun = 'docker run -p 8080:8080 -d --name my-app kammana/my-app:2.0.0' - sshagent(['dev-server']) { - sh "ssh -o StrictHostKeyChecking=no ec2-user@172.31.18.198 ${dockerRun}" - } - } -} diff --git a/file.txt b/file.txt new file mode 100644 index 0000000..3b18e51 --- /dev/null +++ b/file.txt @@ -0,0 +1 @@ +hello world diff --git a/function-demo b/function-demo index 3869d26..60dc045 100644 --- a/function-demo +++ b/function-demo @@ -1,3 +1,4 @@ +// Added for demo node{ stage('SCM Checkout'){ git 'https://github.com/javahometech/my-app' diff --git a/jenkins-pipeline-9am-sep-2018 b/jenkins-pipeline-9am-sep-2018 deleted file mode 100644 index 8c96ff7..0000000 --- a/jenkins-pipeline-9am-sep-2018 +++ /dev/null @@ -1,32 +0,0 @@ -try{ - node{ - stage('Git Checkout'){ - git credentialsId: 'github', - url: 'https://github.com/javahometech/my-app', - branch: "${params.gitBranch}" - } - - stage('Maven Build'){ - sh 'mvn clean package' - } - stage('Deploy to Dev'){ - sh 'mv target/*.war target/myweb.war' - sshagent(['tomcat-dev']) { - sh 'ssh ec2-user@172.31.17.196 rm -rf /opt/tomcat8/webapps/myweb*' - sh 'scp target/myweb.war ec2-user@172.31.17.196:/opt/tomcat8/webapps/' - sh 'ssh ec2-user@172.31.17.196 sudo service tomcat restart' - } - slackSend channel: '#devops-2', - color: 'good', - message: "Job - ${env.JOB_NAME}, Completed successfully Build URL is ${env.BUILD_URL}" - - - } -} - -}catch(error){ - slackSend channel: '#devops-2', - color: 'danger', - message: "Job - ${env.JOB_NAME}, Failed, Build URL is ${env.BUILD_URL}" - error 'Something wrong' -} diff --git a/pipeline-docker-ci-cd b/pipeline-docker-ci-cd deleted file mode 100644 index 0b5800b..0000000 --- a/pipeline-docker-ci-cd +++ /dev/null @@ -1,41 +0,0 @@ - - -node{ - stage('Git Checkout'){ - git url: 'https://github.com/javahometech/my-app', - branch:'master' - } - stage('MVN Package'){ - def mvnHome = tool name: 'maven-3', type: 'maven' - sh "${mvnHome}/bin/mvn clean package" - } - stage('Build Docker Image'){ - sh 'docker build -t kammana/my-app:0.0.1 .' - } - - stage('Upload Image to DockerHub'){ - withCredentials([string(credentialsId: 'docker-hub', variable: 'password')]) { - sh "docker login -u kammana -p ${password}" - } - sh 'docker push kammana/my-app:0.0.1' - } - stage('Remove Old Containers'){ - sshagent(['my-app-dev']) { - try{ - def sshCmd = 'ssh -o StrictHostKeyChecking=no ec2-user@172.31.18.198' - def dockerRM = 'docker rm -f my-app' - sh "${sshCmd} ${dockerRM}" - }catch(error){ - - } - } - } - stage('Deploy-Dev'){ - sshagent(['my-app-dev']) { - input 'Deploy to Dev?' - def sshCmd = 'ssh -o StrictHostKeyChecking=no ec2-user@172.31.18.198' - def dockerRun = 'docker run -d -p 8080:8080 --name my-app kammana/my-app:0.0.1' - sh "${sshCmd} ${dockerRun}" - } - } -} diff --git a/pom.xml b/pom.xml index 2fcc67d..0dbbed8 100755 --- a/pom.xml +++ b/pom.xml @@ -4,12 +4,20 @@ in.javahome myweb war - 0.0.3 + 0.0.5 my-app + + http://maven.apache.org + + org.apache.poi + poi + 3.7 + + javax.servlet javax.servlet-api @@ -27,12 +35,12 @@ nexus - http://172.31.17.173:8081/repository/maven-snapshots/ + http://13.233.125.37:8081/repository/maven-snapshots/ nexus - http://172.31.17.173:8081/repository/maven-releases/ + http://13.233.125.37:8081/repository/maven-releases/ diff --git a/sonar-status-check b/sonar-status-check deleted file mode 100644 index 8f82dc4..0000000 --- a/sonar-status-check +++ /dev/null @@ -1,47 +0,0 @@ -node{ - stage('SCM Checkout'){ - git 'https://github.com/javahometech/my-app' - } - stage('Compile-Package'){ - // Get maven home path - def mvnHome = tool name: 'maven-3', type: 'maven' - sh "${mvnHome}/bin/mvn package" - } - - stage('SonarQube Analysis') { - def mvnHome = tool name: 'maven-3', type: 'maven' - withSonarQubeEnv('sonar-6') { - sh "${mvnHome}/bin/mvn sonar:sonar" - } - } - - stage("Quality Gate Statuc Check"){ - timeout(time: 1, unit: 'HOURS') { - def qg = waitForQualityGate() - if (qg.status != 'OK') { - slackSend baseUrl: 'https://hooks.slack.com/services/', - channel: '#jenkins-pipeline-demo', - color: 'danger', - message: 'SonarQube Analysis Failed', - teamDomain: 'javahomecloud', - tokenCredentialId: 'slack-demo' - error "Pipeline aborted due to quality gate failure: ${qg.status}" - } - } - } - - stage('Email Notification'){ - mail bcc: '', body: '''Hi Welcome to jenkins email alerts - Thanks - Hari''', cc: '', from: '', replyTo: '', subject: 'Jenkins Job', to: 'hari.kammana@gmail.com' - } - stage('Slack Notification'){ - slackSend baseUrl: 'https://hooks.slack.com/services/', - channel: '#jenkins-pipeline-demo', - color: 'good', - message: 'Welcome to Jenkins, Slack!', - teamDomain: 'javahomecloud', - tokenCredentialId: 'slack-demo' - } - -} diff --git a/sonarqube-analysis b/sonarqube-analysis deleted file mode 100644 index 5c0c50a..0000000 --- a/sonarqube-analysis +++ /dev/null @@ -1,32 +0,0 @@ -node{ - stage('SCM Checkout'){ - git 'https://github.com/javahometech/my-app' - } - stage('Compile-Package'){ - // Get maven home path - def mvnHome = tool name: 'maven-3', type: 'maven' - sh "${mvnHome}/bin/mvn package" - } - - stage('SonarQube Analysis') { - def mvnHome = tool name: 'maven-3', type: 'maven' - withSonarQubeEnv('sonar-6') { - sh "${mvnHome}/bin/mvn sonar:sonar" - } - } - - stage('Email Notification'){ - mail bcc: '', body: '''Hi Welcome to jenkins email alerts - Thanks - Hari''', cc: '', from: '', replyTo: '', subject: 'Jenkins Job', to: 'hari.kammana@gmail.com' - } - stage('Slack Notification'){ - slackSend baseUrl: 'https://hooks.slack.com/services/', - channel: '#jenkins-pipeline-demo', - color: 'good', - message: 'Welcome to Jenkins, Slack!', - teamDomain: 'javahomecloud', - tokenCredentialId: 'slack-demo' - } - -} diff --git a/src/main/java/in/javahome/myweb/controller/Calculator.java b/src/main/java/in/javahome/myweb/controller/Calculator.java index 6eba58e..06fa370 100755 --- a/src/main/java/in/javahome/myweb/controller/Calculator.java +++ b/src/main/java/in/javahome/myweb/controller/Calculator.java @@ -9,6 +9,8 @@ public class Calculator { * @return int */ public int add(int i, int j){ + String s = null; + s.toString(); return i+j; } public int multiply(int i, int j){ diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index 02ec063..174ce8b 100755 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -11,7 +11,7 @@
-

Javahome App - 0.0.3

+

Hi this is my first project work

diff --git a/src/test/java/in/javahome/myweb/controller/CalculatorTest.java b/src/test/java/in/javahome/myweb/controller/CalculatorTest.java index e815aad..140d8d2 100755 --- a/src/test/java/in/javahome/myweb/controller/CalculatorTest.java +++ b/src/test/java/in/javahome/myweb/controller/CalculatorTest.java @@ -1,14 +1,53 @@ package in.javahome.myweb.controller; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Properties; + import junit.framework.Assert; import junit.framework.TestCase; public class CalculatorTest extends TestCase { Calculator cal = new Calculator(); - public void testAdd(){ - Assert.assertEquals(cal.add(10, 20), 30); + + public void testAdd() { + Properties prop = new Properties(); + + OutputStream output = null; + + try + { + + output = new FileOutputStream("../config.properties"); + + // set the properties value + prop.setProperty("database", "localhost"); + prop.setProperty("dbuser", "hari"); + prop.setProperty("dbpassword", "password"); + + // save properties to project root folder + prop.store(output, null); + + }catch( + IOException io) + { + io.printStackTrace(); + }finally + { + if (output != null) { + try { + output.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } } - public void testMultiply(){ + + public void testMultiply() { Assert.assertEquals(cal.multiply(10, 20), 200); } }