plugins { id 'idea' id "com.jfrog.artifactory" version "4.15.2" apply false id 'com.jfrog.bintray' version '1.8.5' apply false id "nebula.release" version "15.0.1" id 'org.unbroken-dome.test-sets' version '3.0.1' id 'com.github.ben-manes.versions' version '0.27.0' id 'com.dorongold.task-tree' version '1.5' id "com.github.johnrengelman.shadow" version "5.2.0" id "com.diffplug.gradle.spotless" version "4.3.0" id "com.github.spotbugs" version "4.0.1" } release { defaultVersionStrategy = nebula.plugin.release.git.opinion.Strategies.SNAPSHOT } def isCI = System.getenv("CI") != null allprojects { group = 'io.opentelemetry.instrumentation.auto' if (isCI) { buildDir = "$rootDir/workspace/${projectDir.path.replace(rootDir.path, '')}/build/" } apply from: "$rootDir/gradle/dependencies.gradle" apply from: "$rootDir/gradle/util.gradle" } repositories { mavenLocal() jcenter() mavenCentral() } description = 'OpenTelemetry instrumentations for Java' wrapper { distributionType = Wrapper.DistributionType.ALL } allprojects { apply plugin: 'idea' idea { module { downloadJavadoc = false downloadSources = false } } tasks.withType(JavaForkOptions).configureEach { maxHeapSize = System.properties["ota.forkedMaxHeapSize"] minHeapSize = System.properties["ota.forkedMinHeapSize"] jvmArgs "-XX:ErrorFile=/tmp/hs_err_pid%p.log" } } // Writes tasks to file allowing us to leverage CircleCI's file based task parallelization task writeMuzzleTasksToFile { doLast { def muzzleFile = file("${buildDir}/muzzleTasks") assert muzzleFile.parentFile.mkdirs() || muzzleFile.parentFile.directory muzzleFile.text = subprojects.findAll { subproject -> subproject.plugins.hasPlugin('muzzle') } .collect { it.path + ":muzzle" } .join('\n') } } apply plugin: 'com.diffplug.gradle.spotless' spotless { // this formatting is applied at the root level, as some of these files are not in a submodules // and would be missed otherwise format 'misc', { target '**/.gitignore', '**/*.md', '**/*.sh' targetExclude 'smoke-tests/**/build/**' indentWithSpaces() trimTrailingWhitespace() endWithNewline() } } task formatCode(dependsOn: ['spotlessApply']) check.dependsOn 'spotlessCheck'