/
build.gradle
112 lines (85 loc) · 2.91 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
import com.install4j.gradle.Install4jTask
import groovy.transform.ToString
buildscript {
repositories {
maven {
url 'http://maven.ej-technologies.com/repository'
}
}
dependencies {
classpath group: 'com.install4j', name: 'install4j-gradle', version: '6.1'
}
}
plugins {
id "de.undercouch.download" version "3.1.1"
}
apply plugin: 'install4j'
defaultTasks 'installer'
def managerDistDirectory = file("zip")
def extractDirectory = file("${buildDir}/dist")
// this will hold the detail information about the distribution we're looking at.
@ToString(includeFields = true, includeNames = true)
class DistributionDetails {
File distribution
String version
}
DistributionDetails distributionDetails
install4j {
installDir = file(install4jHomeDir)
}
task prepareMetadata << {
def distributionZip =
fileTree(dir: managerDistDirectory, include: "manager-runtime-standalone-*.zip").singleFile
def definingJar = zipTree(distributionZip).matching {
it.include "**/manager-runtime-standalone*.jar"
}.singleFile
def mavenProperties = zipTree(definingJar).matching {
it.include "META-INF/maven/**/manager-runtime-standalone/pom.properties"
}.singleFile
def props = new Properties()
props.load(mavenProperties.newReader());
distributionDetails = new DistributionDetails(distribution: distributionZip, version: props["version"])
println "===================================================================="
println "== Dist: " + distributionDetails.distribution
println "== Version: " + distributionDetails.version
println "===================================================================="
}
task extract << {
copy {
from zipTree { distributionDetails.distribution }
into extractDirectory
}
}
extract.dependsOn "prepareMetadata"
task installer(type: Install4jTask) {
doFirst {
variables = ['manager.version': distributionDetails.version]
}
dependsOn 'extract'
projectFile = 'openthinclient-manager.install4j'
}
task prepareVagrantTest << {
file("test/data/java").mkdirs();
file("test/data/installers").mkdirs();
copy {
from "${buildDir}/installers"
into file("test/data/installers")
}
download {
header "Cookie", "oraclelicense=accept-securebackup-cookie"
acceptAnyCertificate true
src "http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_windows-x64_bin.exe"
dest file("test/data/java")
}
}
task cleanManagerDistribution(type: Delete) {
delete fileTree(dir: managerDistDirectory)
delete fileTree(dir: extractDirectory)
}
task cleanVagrantTestData(type: Delete) {
delete fileTree(dir: 'test/data/', excludes: ['java/*.properties'])
}
task clean << {}
clean.dependsOn "cleanManagerDistribution"
clean.dependsOn "cleanVagrantTestData"
prepareVagrantTest.dependsOn 'installer'