From: David ‘Bombe’ Roden Date: Fri, 4 Oct 2024 18:39:52 +0000 (+0200) Subject: 🏗️ Add Jenkinsfile X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=48f844d1d5e23c805ed47af28ee0925e6653e39b;p=rhynodge.git 🏗️ Add Jenkinsfile Also, configuration JaCoCo to build the correct reports. --- diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..096a33d --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,63 @@ +pipeline { + agent any + + options { + timestamps() + } + + stages { + stage('Build (Java 8)') { + tools { + jdk 'OpenJDK 8' + } + steps { + sh './gradlew --no-daemon clean classes testClasses' + } + } + stage('Test (Java 8)') { + tools { + jdk 'OpenJDK 8' + } + steps { + sh './gradlew --no-daemon test jacocoTestReport' + } + post { + always { + junit 'build/test-results/*/*.xml' + recordCoverage(tools: [[parser: 'JACOCO', pattern: '**/jacocoTestReport.xml']]) + } + } + } + stage('Binary (Java 8)') { + tools { + jdk 'OpenJDK 8' + } + steps { + sh './gradlew --no-daemon fatJar' + archiveArtifacts artifacts: 'build/libs/rhynodge-*-jar-with-dependencies.jar', fingerprint: true + } + } + stage('Compatibility (Java 17)') { + tools { + jdk 'OpenJDK 17' + } + steps { + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + sh './gradlew --no-daemon clean test' + } + } + } + stage('Compatibility (Java 21)') { + tools { + jdk 'OpenJDK 21' + } + steps { + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + sh './gradlew --no-daemon clean test' + } + } + } + } +} + +// vi: ts=4 sw=4 et si diff --git a/build.gradle b/build.gradle index 9e286ff..73f1df8 100644 --- a/build.gradle +++ b/build.gradle @@ -108,4 +108,10 @@ jacoco { toolVersion = "0.8.11" } +jacocoTestReport { + reports { + xml.required = true + } +} + /* vim: set ts=4 sw=4 et: */