-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbuild.gradle
More file actions
121 lines (98 loc) · 3.17 KB
/
build.gradle
File metadata and controls
121 lines (98 loc) · 3.17 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
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
/*
* Hyperbox - Virtual Infrastructure Manager
* Copyright (C) 2021 Max Dor
*
* https://apps.kamax.io/hyperbox
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import java.nio.file.Paths
import java.util.regex.Pattern
String buildVersion() {
def versionPattern = Pattern.compile("v(\\d+\\.)?(\\d+\\.)?(\\d+)(-.*)?")
String version = System.getenv('HBOX_VBOX6_1_BUILD_VERSION')
if (version == null || version.length() == 0) {
version = sourceVersion()
}
return versionPattern.matcher(version).matches() ? version.substring(1) : version
}
String sourceVersion() {
String version = System.getenv('HBOX_VBOX6_1_BUILD_VERSION')
if (version != null && version.length() > 0) {
return version
}
ByteArrayOutputStream out = new ByteArrayOutputStream()
def o = exec {
commandLine = ['git', 'describe', '--tags', '--always', '--dirty']
standardOutput = out
errorOutput = out
ignoreExitValue = true
}
if (o.exitValue != 0) {
if (o.exitValue != 128) {
logger.lifecycle("Unable to determine git version: {}", out)
}
return "UNKNOWN"
}
return out.toString().replace(System.lineSeparator(), '')
}
static String getSysProp(String value, Object fallback) {
// This is required as there is a length limitation on System.properties.getProperty(a,b)
if (!System.properties.containsKey(value)) {
return fallback.toString()
}
return System.properties.get(value)
}
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
group = 'io.kamax.apps.hbox'
version = buildVersion()
/*
sourceSets {
testIntegration {
compileClasspath += sourceSets.test.compileClasspath
runtimeClasspath += sourceSets.test.runtimeClasspath
}
}
*/
configurations {
testIntegrationCompile.extendsFrom testCompile
testIntegrationRuntime.extendsFrom testRuntime
}
repositories {
mavenLocal()
mavenCentral()
}
configurations {
// Create a dedicated resolvable configuration to package all the required libs and filter out only the
// hyperbox-related APIs
distLib.extendsFrom implementation
}
dependencies {
implementation 'io.kamax.apps.hbox:hbox-server-api:0.0.17'
implementation files('lib/vboxjws.jar')
testImplementation 'junit:junit:4.13.2'
}
tasks.register('assembleDist') {
dependsOn 'assemble'
doLast {
copy {
from 'build/libs'
from 'lib/vboxjws.jar'
into 'build/dist'
}
}
}
tasks.getByName('build').dependsOn 'assembleDist'