diff --git a/Jenkinsfile b/Jenkinsfile index 73b573f..ee888ed 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,39 +1,99 @@ -node('node1') { - def mvnHome - def javaHome - stage('Preparation') { // for display purposes - mvnHome = tool 'm3' - javaHome = tool 'jdk8' - } +pipeline { + agent any + tools{ + maven 'm3' + jdk 'jdk8' + } + stages { stage('Checkout') { - git 'https://github.com/atinsingh/devopsjava.git' + steps { + checkout scm + } } + stage('Compile') { - // Run the maven build - withEnv([ "JAVA_HOME=$javaHome", "MVN_HOME=$mvnHome"]) { - sh '"$MVN_HOME/bin/mvn" clean compile' - } - } - stage('Test') { - // Run the maven build - withEnv(["JAVA_HOME=$javaHome", "MVN_HOME=$mvnHome"]) { - sh '"$MVN_HOME/bin/mvn" clean test' - } + steps { + sh 'mvn compile' + } } - stage('Publish Test Results') { - junit '**/target/surefire-reports/TEST-*.xml' + stage('SonarQube analysis') { + steps { + withSonarQubeEnv(credentialsId: 'sonarqube',installationName:'sonarqube') { + sh 'mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar' + } + } } - stage('Package') { - // Run the maven build - withEnv(["JAVA_HOME=$javaHome", "MVN_HOME=$mvnHome"]) { - sh '"$MVN_HOME/bin/mvn" clean package' - } +// stage("Quality Gate") { +// steps { +// timeout(time: 2, unit: 'MINUTES') { +// // Parameter indicates whether to set pipeline to UNSTABLE if Quality Gate fails +// // true = set pipeline to UNSTABLE, false = don't +// waitForQualityGate abortPipeline: true +// } +// } +// } + stage('Test') { + steps { + sh 'mvn test' + } } - stage('Archive Artifact') { - archiveArtifacts 'target/*.jar' + stage('Package') { + steps { + sh 'mvn package' + } } - stage('Complete') { - sh 'echo completed' + stage ('Artifactory configuration') { + steps { + rtServer ( + id: "art1", + url: "http://3.16.10.158/artifactory", + credentialsId: "artifactory" + ) + + rtMavenDeployer ( + id: "MAVEN_DEPLOYER", + serverId: "art1", + releaseRepo: "libs-release-local", + snapshotRepo: "libs-snapshot-local" + ) + + rtMavenResolver ( + id: "MAVEN_RESOLVER", + serverId: "art1", + releaseRepo: "libs-release", + snapshotRepo: "libs-snapshot" + ) + } + } + + stage ('Exec Maven') { + steps { + rtMavenRun ( + tool: 'm3', // Tool name from Jenkins configuration + pom: 'pom.xml', + goals: 'install', + deployerId: "MAVEN_DEPLOYER", + resolverId: "MAVEN_RESOLVER" + ) + } + } + + stage ('Publish build info') { + steps { + rtPublishBuildInfo ( + serverId: "art1" + ) + } + } + + + + } + post { + always { + junit '**/*.xml' + slackSend channel: 'devops_sept_2020', color: 'red', message: "BUILD FAILD - $JOB_NAME - $BUILD_ID", teamDomain: 'pragraconsulting2020', tokenCredentialId: 'slack' } + } } diff --git a/pom.xml b/pom.xml index 234f74c..95bba08 100644 --- a/pom.xml +++ b/pom.xml @@ -9,9 +9,9 @@ io.pragra.learning - demo + pragrapp 0.0.1-SNAPSHOT - demo + pragrapp DemoProject For Devops diff --git a/src/main/java/io/pragra/learning/demo/IndexController.java b/src/main/java/io/pragra/learning/demo/IndexController.java index 898f8d3..30ec1f4 100644 --- a/src/main/java/io/pragra/learning/demo/IndexController.java +++ b/src/main/java/io/pragra/learning/demo/IndexController.java @@ -6,6 +6,7 @@ public class IndexController { @GetMapping("/") public String getHome() { + return "index"; } } diff --git a/src/test/java/io/pragra/learning/demo/DemoApplicationTests.java b/src/test/java/io/pragra/learning/demo/DemoApplicationTests.java index addf968..986adda 100644 --- a/src/test/java/io/pragra/learning/demo/DemoApplicationTests.java +++ b/src/test/java/io/pragra/learning/demo/DemoApplicationTests.java @@ -1,5 +1,6 @@ package io.pragra.learning.demo; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -12,7 +13,7 @@ void contextLoads() { @Test void test1(){ - + } @@ -26,4 +27,10 @@ void test3(){ } + + @Test + void test4(){ + + } + }