forked from codecov/example-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
90 lines (71 loc) · 2.09 KB
/
Jenkinsfile
File metadata and controls
90 lines (71 loc) · 2.09 KB
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
pipeline {
agent {
label 'server_01'
}
parameters {
string defaultValue: 'master', description: 'This the branch to checkout', name: 'branch_name'
choice choices: ['DEV', 'TEST', 'UAT'], description: 'environment to be deployed', name: 'environment'
booleanparam (name:'executetests',defauiltvalue:true,description :'tests will be executed default'
}
triggers {
cron '00 20 * * *'
}
options {
disableConcurrentBuilds()
buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')
timestamps()
}
tools {
jdk 'JAVA8'
maven 'Maven'
}
environment {
data_path = "/opt/data/"
SCANNER_HOME =tool 'sonarqube-scanner'
}
stages {
stage ('build') {
steps{
git branch: '$branch_name', credentialsId: 'github_credentials', url: 'https://github.com/Hima2982/example-java.git'
}
}
stage ('Test & Scan'){
parllel{
stage('unit testing'){
when {
expression {
params.executetests == true
}
}
steps{
sh mvn test
script {
gv.buildapp() //external script.groovy is calling here
}
}
}
stage('sonarqube testing'){
steps {
withSonarqubeEnv('installationName: 'sonarqube-server'){
sh "SCANNER_HOME/bin/sonar-scanner -Dproject.settings=sonar-project.properties"
}
}
}
stage ('deploy'){
steps{
mvn package -Dtest.skip=true
}
}
}
post {
always {
echo "always runs the test from $branch_name"
}
success {
echo "only runs when the test is pass"
}
failure {
echo "only runs when the test is fail"
}
}
}