-
Notifications
You must be signed in to change notification settings - Fork 622
/
build.gradle
116 lines (100 loc) · 3.71 KB
/
build.gradle
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
plugins {
id 'application'
id 'jacoco'
}
dependencies {
api "commons-cli:commons-cli:${commons_cli_version}"
api "org.apache.logging.log4j:log4j-slf4j-impl:${log4j_slf4j_version}"
api project(":basicdataset")
api project(":model-zoo")
api project(":testing")
api("org.testng:testng:${testng_version}") {
exclude group: "junit", module: "junit"
}
runtimeOnly project(":engines:mxnet:mxnet-model-zoo")
runtimeOnly project(":engines:pytorch:pytorch-model-zoo")
runtimeOnly project(":engines:pytorch:pytorch-jni")
runtimeOnly project(":engines:tensorflow:tensorflow-model-zoo")
runtimeOnly project(":engines:ml:xgboost")
runtimeOnly project(":engines:ml:lightgbm")
if (System.getProperty("ai.djl.default_engine") == "OnnxRuntime") {
// onnxruntime requires user install libgomp.so.1 manually, exclude from default dependency
runtimeOnly project(":engines:onnxruntime:onnxruntime-engine")
} else if (System.getProperty("ai.djl.default_engine") == "TFLite") {
runtimeOnly project(":engines:tflite:tflite-engine")
} else if (System.getProperty("ai.djl.default_engine") == "DLR") {
runtimeOnly project(":engines:dlr:dlr-engine")
} else if (System.getProperty("ai.djl.default_engine") == "PaddlePaddle") {
runtimeOnly project(":engines:paddlepaddle:paddlepaddle-model-zoo")
}
}
task copyDependencies(type: Copy) {
into "build/dependencies"
from configurations.runtimeClasspath
}
application {
mainClass = System.getProperty("main", "ai.djl.integration.IntegrationTest")
}
run {
environment("TF_CPP_MIN_LOG_LEVEL", "1") // turn off TensorFlow print out
systemProperties System.getProperties()
systemProperties.remove("user.dir")
systemProperty("file.encoding", "UTF-8")
jvmArgs "-Xverify:none"
}
jacocoTestReport {
group = "Reporting"
javaProjects().each { p ->
if ([":api", ":basicdataset"].contains(p.getPath())) {
additionalSourceDirs files((Set<File>) p.sourceSets.main.allJava.srcDirs)
additionalClassDirs((FileCollection) p.sourceSets.main.output)
}
}
afterEvaluate {
getClassDirectories().setFrom(classDirectories.files.collect {
fileTree(dir: it, exclude: ["**/ai/djl/integration/**"])
})
}
reports {
xml.required = true
csv.required = false
}
// Work-around to allow us to build list of executionData files in doFirst
onlyIf = {
true
}
}
task debugEnv(type: JavaExec) {
classpath = sourceSets.main.runtimeClasspath
systemProperties System.getProperties()
systemProperties.remove("user.dir")
systemProperties.put("ai.djl.logging.level", "debug")
mainClass = "ai.djl.integration.util.DebugEnvironment"
}
tasks.distTar.enabled = false
test.finalizedBy project.tasks.jacocoTestReport, project.tasks.jacocoTestCoverageVerification
jacocoTestCoverageVerification {
javaProjects().each { p ->
if ([":api", ":basicdataset"].contains(p.getPath())) {
additionalSourceDirs files((Set<File>) p.sourceSets.main.allJava.srcDirs)
additionalClassDirs((FileCollection) p.sourceSets.main.output)
}
}
afterEvaluate {
getClassDirectories().setFrom(classDirectories.files.collect {
fileTree(dir: it, exclude: ["**/ai/djl/integration/**"])
})
}
violationRules {
rule {
limit {
if (System.getProperty("ai.djl.default_engine") != null) {
minimum = 0.2
} else {
// TODO: improve coverage by running integration tests with 3 engines
minimum = 0.4
}
}
}
}
}