-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbuild.gradle
More file actions
95 lines (87 loc) · 3.39 KB
/
Copy pathbuild.gradle
File metadata and controls
95 lines (87 loc) · 3.39 KB
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
/*
* Copyright 2024-2026, Quilt Data Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
plugins {
id 'io.nextflow.nextflow-plugin' version '1.0.0-beta.14'
id 'jacoco'
}
// Plugin version: bump here to release a new version.
version = '1.0.1'
group = 'io.nextflow'
dependencies {
implementation 'com.quiltdata:quiltcore:0.1.7'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.19.0'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.19.0'
implementation 'commons-io:commons-io:2.19.0'
}
// The io.nextflow.nextflow-plugin gradle plugin wires `test` to depend on
// `assemble` (which transitively runs `packagePlugin`). On Windows,
// `packagePlugin` fails with "character to be escaped is missing" because
// the upstream task uses `String.replaceAll(..., File.separator)` and `\`
// is an escape character in regex replacements
// (see https://github.com/nextflow-io/nextflow-plugin-gradle/issues/20).
// Until that upstream bug is fixed, we sever the test->assemble link so the
// test suite can run on Windows. `make assemble` / `make package` /
// `make release` still trigger packagePlugin on platforms where it works.
tasks.named('test') { task ->
task.setDependsOn(task.getDependsOn().findAll { it != tasks.assemble && it != 'assemble' })
task.dependsOn 'jar'
useJUnitPlatform()
// Required to run Nextflow / Groovy reflection-heavy tests on JDK 9+.
jvmArgs([
'--add-opens=java.base/java.lang=ALL-UNNAMED',
'--add-opens=java.base/java.io=ALL-UNNAMED',
'--add-opens=java.base/java.nio=ALL-UNNAMED',
'--add-opens=java.base/java.nio.file.spi=ALL-UNNAMED',
'--add-opens=java.base/java.net=ALL-UNNAMED',
'--add-opens=java.base/java.util=ALL-UNNAMED',
'--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED',
'--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED',
'--add-opens=java.base/sun.nio.ch=ALL-UNNAMED',
'--add-opens=java.base/sun.nio.fs=ALL-UNNAMED',
'--add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED',
'--add-opens=java.base/sun.net.www.protocol.https=ALL-UNNAMED',
'--add-opens=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED',
'--add-opens=java.base/sun.net.www.protocol.file=ALL-UNNAMED',
'--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED',
])
}
// JaCoCo line-coverage gate: 70% minimum, mirroring the pre-migration
// (single-subproject) build. Wired into `check` below.
jacocoTestReport {
dependsOn tasks.named('test')
reports {
xml.required = true
html.required = true
}
}
jacocoTestCoverageVerification {
dependsOn tasks.named('jacocoTestReport')
violationRules {
rule {
limit {
counter = 'LINE'
minimum = 0.7
}
}
}
}
tasks.named('check') {
dependsOn tasks.named('jacocoTestCoverageVerification')
}
nextflowPlugin {
nextflowVersion = '24.10.0'
provider = 'Quilt Data, Inc.'
className = 'nextflow.quilt.QuiltPlugin'
extensionPoints = [
'nextflow.quilt.QuiltObserverFactory',
'nextflow.quilt.nio.QuiltPathFactory',
'nextflow.quilt.nio.QuiltPathSerializer'
]
}