-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsFile
129 lines (112 loc) · 2.81 KB
/
JenkinsFile
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!groovy
def envSonar = "sonar-env"
pipeline {
agent { label 'linux' }
tools {
maven 'Maven 3.5.X'
jdk 'JDK 1.8'
}
options {
disableConcurrentBuilds()
buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '2'))
}
environment {
def NEXUS_URL = "http://localhost:8081/nexus/content/repositories/snapshots"
def NEXUS_REPO = "snapshots"
def LOCAL_REPO = "-Dmaven.repo.local=${env.WORKSPACE}/.m2/repository"
}
parameters {
booleanParam(name: 'CLEAR_WORKSPACE', defaultValue: true)
booleanParam(name: 'DEPLOY', defaultValue: false)
}
stages {
stage('Initialize') {
steps {
checkout scm
script {
echo "PATH = ${env.PATH}"
echo "BRANCH = ${env.BRANCH_NAME}"
echo "REVISION = ${env.GIT_COMMIT}"
echo "WORKSPACE = ${env.WORKSPACE}"
echo "CURRENT VERSION = ${release.getCurrentVersion()}"
upgradeVersion()
}
}
}
stage('Clean & Format') {
steps {
sh 'make clean'
sh 'make format'
commit("Formatacao do Codigo")
}
}
stage('Build') {
steps {
sh 'make build'
}
}
stage('Test') {
steps {
script {
sh 'make test'
}
}
post {
always {
junit allowEmptyResults: true, keepLongStdio: true, testResults: '**/build/test-results/test/TEST-*.xml'
}
}
}
stage('SonarQube') {
steps {
script {
withSonarQubeEnv(envSonar) {
script {
sh "make quality GIT_BRANCH=${env.BRANCH_NAME}"
}
}
timeout(time: 3, unit: 'MINUTES') {
def qg = waitForQualityGate()
if (qg.status == 'OK') {
currentBuild.result = 'SUCCESS'
} else {
currentBuild.result = 'UNSTABLE'
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
}
post {
failure {
error "Quality Gate Fail"
}
}
}
stage('Release') {
when {
branch 'master'
}
steps {
script {
commit("Atualização de versão: ${release.getCurrentVersion()}")
sh 'make publish'
}
}
}
}
}
def deploy(environment) {
}
def bitbucket(){
currentBuild.result = currentBuild.result ?: 'SUCCESS'
notifyBitbucket()
}
def commit(msg) {
withCredentials([usernameColonPassword(credentialsId: 'git', variable: 'token')]) {
sh "git config remote.origin.url https://${token}@github.com/*.git"
sh 'git add .'
sh "git diff-index --quiet HEAD || git commit -m \"CI: ${msg}\" "
sh "git pull "
sh "git push origin HEAD:${env.BRANCH_NAME} "
}
}