java-tutorials/spring-jenkins-pipeline/scripted-pipeline-unix-nonunix

86 lines
3.4 KiB
Plaintext
Raw Normal View History

node {
stage 'Clone the project'
git 'https://github.com/dassiorleando/tutorials.git'
dir('spring-jenkins-pipeline') {
stage("Compilation and Analysis") {
parallel 'Compilation': {
if (isUnix()) {
sh "./mvnw clean install -DskipTests"
} else {
bat "./mvnw.cmd clean install -DskipTests"
}
}, 'Static Analysis': {
stage("Checkstyle") {
if (isUnix()) {
sh "./mvnw checkstyle:checkstyle"
step([$class: 'CheckStylePublisher',
canRunOnFailed: true,
defaultEncoding: '',
healthy: '100',
pattern: '**/target/checkstyle-result.xml',
unHealthy: '90',
useStableBuildAsReference: true
])
} else {
bat "./mvnw.cmd checkstyle:checkstyle"
step([$class: 'CheckStylePublisher',
canRunOnFailed: true,
defaultEncoding: '',
healthy: '100',
pattern: '**\target\checkstyle-result.xml',
unHealthy: '90',
useStableBuildAsReference: true
])
}
}
}
}
stage("Tests and Deployment") {
parallel 'Unit tests': {
stage("Runing unit tests") {
if (isUnix()) {
sh "./mvnw test -Punit"
step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*UnitTest.xml'])
} else {
bat "./mvnw.cmd test -Punit"
step([$class: 'JUnitResultArchiver', testResults: '**\target\surefire-reports\TEST-*UnitTest.xml'])
}
}
}, 'Integration tests': {
stage("Runing integration tests") {
if (isUnix()) {
sh "./mvnw test -Pintegration"
step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*IntegrationTest.xml'])
} else {
bat "./mvnw.cmd test -Pintegration"
step([$class: 'JUnitResultArchiver', testResults: '**\target\surefire-reports\TEST-*IntegrationTest.xml'])
}
}
}, 'Deployment': {
stage("Staging") {
if (isUnix()) {
sh "pid=\$(lsof -i:8989 -t); kill -TERM \$pid || kill -KILL \$pid"
} else {
bat "FOR /F 'tokens=5 delims= ' %%P IN ('netstat -ano ^| findstr :8989') DO TaskKill.exe /PID %%P"
}
withEnv(['JENKINS_NODE_COOKIE=dontkill']) {
if (isUnix()) {
sh 'nohup ./mvnw spring-boot:run -Dserver.port=8989 &'
} else {
bat 'start ./mvnw.cmd spring-boot:run -Dserver.port=8989'
}
}
}
}
}
}
}