mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-18 21:45:49 +00:00
Jenkins: Archive JUnit results also on failing tests
This commit is contained in:
parent
e92ae405dd
commit
ef3e3defd4
1 changed files with 60 additions and 60 deletions
120
Jenkinsfile
vendored
120
Jenkinsfile
vendored
|
@ -1,75 +1,75 @@
|
||||||
#!groovy
|
#!groovy
|
||||||
node {
|
node {
|
||||||
|
|
||||||
cesFqdn = "ecosystem.cloudogu.net";
|
cesFqdn = "ecosystem.cloudogu.net"
|
||||||
cesUrl = "https://${cesFqdn}";
|
cesUrl = "https://${cesFqdn}"
|
||||||
credentials = usernamePassword(credentialsId: 'scmCredentials', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME');
|
credentials = usernamePassword(credentialsId: 'scmCredentials', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')
|
||||||
|
|
||||||
stage('Checkout') {
|
catchError {
|
||||||
checkout scm
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Build') {
|
stage('Checkout') {
|
||||||
mvn "-DskipTests clean package"
|
checkout scm
|
||||||
|
|
||||||
// archive artifact
|
|
||||||
archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
|
|
||||||
}
|
|
||||||
|
|
||||||
parallel(
|
|
||||||
test: {
|
|
||||||
stage('Test') {
|
|
||||||
String jacoco = "org.jacoco:jacoco-maven-plugin:0.7.7.201606060606";
|
|
||||||
mvn "${jacoco}:prepare-agent test ${jacoco}:report"
|
|
||||||
|
|
||||||
// Archive JUnit results, if any
|
|
||||||
junit allowEmptyResults: true, testResults: '**/target/surefire-reports/TEST-*.xml'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
integrationTest: {
|
|
||||||
stage('Integration Test') {
|
|
||||||
String jacoco = "org.jacoco:jacoco-maven-plugin:0.7.7.201606060606";
|
|
||||||
mvn "${jacoco}:prepare-agent-integration failsafe:integration-test ${jacoco}:report-integration"
|
|
||||||
|
|
||||||
// Archive JUnit results, if any
|
|
||||||
junit allowEmptyResults: true, testResults: '**/target/failsafe-reports/TEST-*.xml'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
stage('SonarQube Analysis') {
|
|
||||||
withCredentials([credentials]) {
|
|
||||||
//noinspection GroovyAssignabilityCheck
|
|
||||||
mvn "org.codehaus.mojo:sonar-maven-plugin:3.2:sonar -Dsonar.host.url=${cesUrl}/sonar " +
|
|
||||||
"-Dsonar.login=${USERNAME} -Dsonar.password=${PASSWORD} -Dsonar.exclusions=target/**"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stage('Build') {
|
||||||
|
mvn "-DskipTests clean package"
|
||||||
|
|
||||||
|
// archive artifact
|
||||||
|
archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
|
||||||
|
}
|
||||||
|
|
||||||
|
parallel(
|
||||||
|
test: {
|
||||||
|
stage('Test') {
|
||||||
|
String jacoco = "org.jacoco:jacoco-maven-plugin:0.7.7.201606060606";
|
||||||
|
mvn "${jacoco}:prepare-agent test ${jacoco}:report"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
integrationTest: {
|
||||||
|
stage('Integration Test') {
|
||||||
|
String jacoco = "org.jacoco:jacoco-maven-plugin:0.7.7.201606060606";
|
||||||
|
mvn "${jacoco}:prepare-agent-integration failsafe:integration-test ${jacoco}:report-integration"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
stage('SonarQube Analysis') {
|
||||||
|
withCredentials([credentials]) {
|
||||||
|
//noinspection GroovyAssignabilityCheck
|
||||||
|
mvn "org.codehaus.mojo:sonar-maven-plugin:3.2:sonar -Dsonar.host.url=${cesUrl}/sonar " +
|
||||||
|
"-Dsonar.login=${USERNAME} -Dsonar.password=${PASSWORD} -Dsonar.exclusions=target/**"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
parallel(
|
||||||
|
deployArtifacts: {
|
||||||
|
stage('Deploy Artifacts') {
|
||||||
|
String releaseProp = "-DaltReleaseDeploymentRepository=${cesFqdn}::default::${cesUrl}/nexus/content/repositories/releases/";
|
||||||
|
String snapshotProp = "-DaltSnapshotDeploymentRepository=${cesFqdn}::default::${cesUrl}/nexus/content/repositories/snapshots/";
|
||||||
|
mvn "-DskipTests deploy ${releaseProp} ${snapshotProp}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deployApplication: {
|
||||||
|
|
||||||
|
stage('Deploy Application') {
|
||||||
|
sh "ansible-playbook playbook.yaml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
parallel(
|
// Archive Unit and integration test results, if any
|
||||||
deployArtifacts: {
|
junit allowEmptyResults: true, testResults: '**/target/failsafe-reports/TEST-*.xml,**/target/surefire-reports/TEST-*.xml'
|
||||||
stage('Deploy Artifacts') {
|
|
||||||
String releaseProp = "-DaltReleaseDeploymentRepository=${cesFqdn}::default::${cesUrl}/nexus/content/repositories/releases/";
|
|
||||||
String snapshotProp = "-DaltSnapshotDeploymentRepository=${cesFqdn}::default::${cesUrl}/nexus/content/repositories/snapshots/";
|
|
||||||
mvn "-DskipTests deploy ${releaseProp} ${snapshotProp}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
deployApplication: {
|
|
||||||
|
|
||||||
stage('Deploy Application') {
|
|
||||||
sh "ansible-playbook playbook.yaml"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String cesFqdn;
|
String cesFqdn
|
||||||
String cesUrl;
|
String cesUrl
|
||||||
def credentials;
|
def credentials
|
||||||
|
|
||||||
void mvn(String args) {
|
void mvn(String args) {
|
||||||
writeSettingsXml()
|
writeSettingsXml()
|
||||||
sh "./mvnw -s settings.xml --batch-mode -V -U -e -Dsurefire.useFile=false ${args}"
|
sh "./mvnw -s settings.xml --batch-mode -V -U -e -Dsurefire.useFile=false ${args}"
|
||||||
sh 'rm -f settings.xml'
|
sh 'rm -f settings.xml'
|
||||||
}
|
}
|
||||||
|
|
||||||
void writeSettingsXml() {
|
void writeSettingsXml() {
|
||||||
|
|
Loading…
Reference in a new issue