forked from infinispan/infinispan-quarkus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile
86 lines (73 loc) · 3.04 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
#!/usr/bin/env groovy
pipeline {
agent {
label 'slave-group-graalvm'
}
stages {
stage('Prepare') {
steps {
script {
env.MAVEN_HOME = tool('Maven')
env.MAVEN_OPTS = '-Xmx1g -XX:+HeapDumpOnOutOfMemoryError'
env.JAVA_HOME = tool('GraalVM 20')
}
}
}
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
// First we compile Infinispan SNAPSHOT
sh 'git clone --single-branch --branch master --depth 1 https://github.com/infinispan/infinispan.git'
dir('infinispan') {
sh '$MAVEN_HOME/bin/mvn clean install -DskipTests'
deleteDir()
}
// Then we build infinispan-quarkus
sh '$MAVEN_HOME/bin/mvn clean install -Dnative -B -V -e -DskipTests'
}
}
stage('Tests') {
steps {
sh '$MAVEN_HOME/bin/mvn verify -Dnative -B -V -e -Dmaven.test.failure.ignore=true -Dansi.strip=true'
// TODO Add StabilityTestDataPublisher after https://issues.jenkins-ci.org/browse/JENKINS-42610 is fixed
// Capture target/surefire-reports/*.xml, target/failsafe-reports/*.xml,
// target/failsafe-reports-embedded/*.xml, target/failsafe-reports-remote/*.xml
junit testResults: '**/target/*-reports*/**/TEST-*.xml',
testDataPublishers: [[$class: 'ClaimTestDataPublisher']],
healthScaleFactor: 100, allowEmptyResults: true
// Workaround for SUREFIRE-1426: Fail the build if there a fork crashed
script {
if (manager.logContains('org.apache.maven.surefire.booter.SurefireBooterForkException:.*')) {
echo 'Fork error found'
manager.buildFailure()
}
}
// Dump any dump files to the console
sh 'find . -name "*.dump*" -exec echo {} \\; -exec cat {} \\;'
sh 'find . -name "hs_err_*" -exec echo {} \\; -exec grep "^# " {} \\;'
}
}
}
post {
always {
sh 'git clean -ffd -e "*.hprof" || echo "git clean failed, exit code $?"'
}
failure {
echo 'post build status: failure'
emailext to: '${DEFAULT_RECIPIENTS}', subject: '${DEFAULT_SUBJECT}', body: '${DEFAULT_CONTENT}'
sh 'docker kill $(docker ps -q) || true'
}
success {
echo 'post build status: success'
emailext to: '${DEFAULT_RECIPIENTS}', subject: '${DEFAULT_SUBJECT}', body: '${DEFAULT_CONTENT}'
}
cleanup {
// Remove all created SNAPSHOT artifacts to ensure a clean build on every run
sh 'find ~/.m2/repository -type d -name "*-SNAPSHOT" -prune -exec rm -rf {} \\;'
}
}
}