-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.gradle
162 lines (140 loc) · 4.79 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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
buildscript {
repositories {
jcenter()
}
}
plugins {
id 'java'
id 'maven'
id 'signing'
id 'com.palantir.git-version' version '0.5.1' //version helper
}
repositories {
mavenCentral()
}
dependencies {
testCompile 'org.testng:testng:6.9.6'
}
final isRelease = Boolean.getBoolean("release")
version = (isRelease ? gitVersion() : gitVersion() + "-SNAPSHOT").replaceAll(".dirty", "")
group = "org.broadinstitute"
String cpath = "src/main/c"
String libname = "libbwa"
task buildBwaLib(type: Exec){
workingDir "$cpath"
outputs.files "$cpath/libbwa*"
outputs.dir "$cpath/bwa"
commandLine "make"
String home = System.properties."java.home"
//strip the trailing jre
String corrected = home.endsWith("jre") ? home.substring(0, home.length() - 4) : home
environment JAVA_HOME : corrected
doFirst { println "using $home -> $corrected as JAVA_HOME" }
}
clean {
delete "$cpath/bwa"
delete "$cpath/$libname*"
delete fileTree("$cpath") {include "$libname*", "*.o"}
}
processResources {
dependsOn buildBwaLib
from cpath
include "$libname*"
}
test {
useTestNG()
testLogging {
testLogging {
events "skipped", "failed"
exceptionFormat = "full"
}
afterSuite { desc, result ->
if (!desc.parent) { // will match the outermost suite
println "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)"
}
}
}
}
javadoc {
options.addStringOption('Xdoclint:none', '-quiet')
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from 'build/docs/javadoc'
}
task sourcesJar(type: Jar) {
from sourceSets.main.allSource
classifier = 'sources'
}
/**
*This specifies what artifacts will be built and uploaded when performing a maven upload.
*/
artifacts {
archives jar
archives javadocJar
archives sourcesJar
}
/**
* Sign non-snapshot releases with our secret key. This should never need to be invoked directly.
*/
signing {
required { isRelease && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
def assertLibExists(lib){
if ( ! file(lib).exists()){
throw new GradleException("Could not perform a maven release because $lib is missing. You must include both OSX and Linux binaries to release. " +
"You can run scripts/build_both_dylib_and_so.sh to build both if you are on a Broad Institute connected mac.")
}
}
/**
* Upload a release to sonatype. You must be an authorized uploader and have your sonatype
* username and password information in your gradle properties file. See the readme for more info.
*
* For releasing to your local maven repo, use gradle install
*/
uploadArchives {
doFirst {
println "Attempting to upload version:$version"
if (isRelease){
assertLibExists("$cpath/${libname}.Linux.so")
assertLibExists("$cpath/${libname}.Darwin.dylib")
}
}
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: project.findProperty("sonatypeUsername"), password: project.findProperty("sonatypePassword"))
}
snapshotRepository(url: "https://broadinstitute.jfrog.io/broadinstitute/libs-snapshot-local") {
authentication(userName: System.env.ARTIFACTORY_USERNAME, password: System.env.ARTIFACTORY_PASSWORD)
}
pom.project {
name 'gatk-bwamem-jni'
packaging 'jar'
description 'java bindings for the bwa-mem assembler'
url 'http://github.com/broadinstitute/gatk-bwamem-jni'
scm {
url 'scm:[email protected]:broadinstitute/gatk-bwamem-jni.git'
connection 'scm:[email protected]:broadinstitute/gatk-bwamem-jni.git'
developerConnection 'scm:[email protected]:broadinstitute/gatk-bwamem-jni.git'
}
developers {
developer {
id = "gatkdev"
name = "GATK Development Team"
email = "[email protected]"
}
}
licenses {
license {
name 'BSD 3-Clause'
url 'https://github.com/broadinstitute/gatk-bwamem-jni/blob/master/LICENSE.TXT'
distribution 'repo'
}
}
}
}
}
}