-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathJenkinsfile.cje
107 lines (106 loc) · 3.32 KB
/
Jenkinsfile.cje
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
def scmVars
pipeline {
options {
buildDiscarder logRotator(artifactDaysToKeepStr: '5', artifactNumToKeepStr: '5', daysToKeepStr: '5', numToKeepStr: '5')
durabilityHint 'PERFORMANCE_OPTIMIZED'
timeout(5)
}
libraries {
lib('joostvdg@master')
}
agent { label 'maven-jdk-8'}
parameters {
string (
defaultValue: '',
description: '',
name : 'NEW_VERSION')
}
stages {
stage('Test versions') {
steps {
sh 'uname -a'
sh 'mvn -version'
}
}
stage('Checkout') {
steps {
script {
scmVars = checkout scm
}
echo "scmVars=${scmVars}"
//gitRemoteConfig('joostvdg', 'maven-demo-lib', 'githubtoken')
gitRemoteConfigByUrl(scmVars.GIT_URL, 'githubtoken')
sh '''
git config --global user.email "jenkins@jenkins.io"
git config --global user.name "Jenkins"
'''
//sh 'env'
}
}
stage('Build') {
steps {
sh 'mvn clean verify -B -e'
}
post {
success {
junit 'target/surefire-reports/**/*.xml'
}
}
}
stage('Version & Analysis') {
parallel {
stage('Version Bump') {
when {
expression {
NEW_VERSION = gitNextSemverTagMaven('pom.xml')
return env.BRANCH_NAME == 'master' && NEW_VERSION != ''
}
}
steps {
sh "mvn versions:set -DnewVersion=${NEW_VERSION}"
gitTag("v${NEW_VERSION}")
}
}
stage('Sonar Analysis') {
when {
expression {
"${env.BRANCH_NAME}" == 'master' &&
'200' == toolHealthCheck('http://sonar-sonarqube:9000/api/system/health')
}
}
environment {
SONAR_HOST="http://sonar-sonarqube:9000"
SONAR_TOKEN=credentials('sonar')
}
steps {
sh 'mvn sonar:sonar -Dsonar.host.url=${SONAR_HOST} -Dsonar.login=${SONAR_TOKEN}'
}
}
}
}
stage('Publish Artifact') {
when {
expression {
"${env.BRANCH_NAME}" == 'master' &&
'200' == toolHealthCheck('http://artifactory.127.0.0.1.nip.io/artifactory/')
}
}
steps {
// #1 = credentialsId for artifactory
// #2 = distributionManagement.id
generateMavenSettings('artifactory', 'releases')
sh 'mvn deploy -s jenkins-settings.xml'
}
post {
always {
cleanMavenSettings()
}
}
}
}
post {
always {
cleanWs()
}
}
}