-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
66 lines (57 loc) · 1.86 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
pipeline {
agent any
stages {
stage('Preparation') {
steps {
checkout scm
sh "rm -f tests.zip"
sh "rm -f pit-test.zip"
sh "rm -f coverage.zip"
sh "chmod +x gradlew"
sh "./gradlew clean"
}
}
stage('Build') {
steps {
parallel(
Project1: { sh "./gradlew :project-1:assemble" },
Project2: { sh "./gradlew :project-2:assemble" },
Project3: { sh "./gradlew :project-3:assemble" },
)
}
}
stage('Test') {
steps {
parallel(
Project1: { sh "./gradlew :project-1:test" },
Project2: { sh "./gradlew :project-2:test" },
Project3: { sh "./gradlew :project-3:test" },
)
}
}
stage('Findbugs') {
steps {
parallel(
Project1: { sh "./gradlew :project-1:findbugsMain" },
Project2: { sh "./gradlew :project-2:findbugsMain" },
Project3: { sh "./gradlew :project-3:findbugsMain" },
)
}
}
stage('Results') {
steps {
archiveArtifacts artifacts: '*/build/libs/*.jar'
}
}
}
post {
always {
junit '**/test-results/test/TEST-*.xml'
sh "./gradlew jacocoTestReport"
jacoco exclusionPattern: '**/classes/java/test/**/*.class', sourcePattern: '**/src/'
zip zipFile: 'coverage.zip', glob: '*/build/reports/jacoco/', archive: true
zip zipFile: 'tests.zip', glob: '*/build/reports/tests/', archive: true
sh "rm -rf */build/reports/"
}
}
}