plugins { // Apply the groovy plugin to add support for Groovy id 'groovy' // Apply the application plugin to add support for building a CLI application. id 'application' // Code coverage of tests id 'jacoco' id "com.github.johnrengelman.shadow" version "6.0.0" id "net.nemerosa.versioning" version "2.14.0" id "nebula.ospackage" version "8.4.1" } repositories { jcenter() } dependencies { implementation 'org.codehaus.groovy:groovy-all:3.0.5' implementation 'com.squareup.okhttp3:okhttp:4.8.0' implementation 'org.influxdb:influxdb-java:2.19' implementation 'org.slf4j:slf4j-api:1.7.+' runtimeOnly 'ch.qos.logback:logback-classic:1.+' testImplementation('org.spockframework:spock-core:2.0-M3-groovy-3.0') testImplementation("org.slf4j:slf4j-simple:1.7.+") testImplementation('com.squareup.okhttp3:mockwebserver:4.8.0') //implementation platform('org.testcontainers:testcontainers-bom:1.14.3') //import bom //testCompile "org.testcontainers:influxdb:1.14.3" } application { mainClassName = 'biz.nellemann.hmci.App' } test { useJUnitPlatform() } apply plugin: 'nebula.ospackage' ospackage { packageName = 'hmci' release = '1' user = 'root' packager = "Mark Nellemann " into '/opt/hmci' from(shadowJar.outputs.files) { into 'lib' } from('build/scriptsShadow') { into 'bin' } from('doc/') { into 'doc' } from(['README.md', 'LICENSE']) { into 'doc' } } buildRpm { dependsOn startShadowScripts requires('java-1.8.0-openjdk-headless') os = LINUX } buildDeb { dependsOn startShadowScripts //requires('default-jre-headless') } jacoco { toolVersion = "0.8.5" } jacocoTestReport { group = "verification" reports { xml.enabled false csv.enabled false html.destination file("${buildDir}/reports/coverage") } } test.finalizedBy jacocoTestReport jacocoTestCoverageVerification { violationRules { rule { limit { minimum = 0.3 // FIXME: Raise when more tests are implemented } } } } check.dependsOn jacocoTestCoverageVerification processResources.dependsOn.add("versionFile") versionFile { // Path to the file to be written file = new File(project.buildDir, 'resources/main/version.properties') } jar { manifest { attributes( 'Built-By' : System.properties['user.name'], 'Build-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ss.SSSZ").toString(), 'Build-Revision' : versioning.info.commit, 'Created-By' : "Gradle ${gradle.gradleVersion}", 'Build-Jdk' : "${System.properties['java.version']} (${System.properties['java.vendor']} ${System.properties['java.vm.version']})", 'Build-OS' : "${System.properties['os.name']} ${System.properties['os.arch']} ${System.properties['os.version']}" ) } }