forked from spinnaker/deck
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
114 lines (97 loc) · 2.83 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
import java.nio.file.Paths
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
import org.redline_rpm.header.Flags
buildscript {
repositories {
jcenter()
maven { url "http://dl.bintray.com/spinnaker/gradle" }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath 'com.netflix.spinnaker.gradle:spinnaker-gradle-project:4.0.0'
classpath 'com.moowork.gradle:gradle-node-plugin:1.1.1'
}
}
group = "com.netflix.spinnaker.deck"
apply plugin: 'spinnaker.project'
apply plugin: 'nebula.ospackage'
apply plugin: 'com.moowork.node'
apply plugin: 'java'
jar {
dependsOn('webpack')
from(fileTree("build/webpack")) {
into "META-INF/resources"
}
}
node {
// Pulls node and npm versions from package.json.
def packageSlurper = new JsonSlurper()
def packageJson = packageSlurper.parse file('package.json')
version = packageJson.engines.node.replaceAll(/[^\d\.]/, '')
npmVersion = packageJson.engines.npm.replaceAll(/[^\d\.]/, '')
yarnVersion = packageJson.engines.yarn.replaceAll(/[^\d\.]/, '')
// Enabled the automatic download. False is the default (for now).
download = true
}
task webpack(type: NodeTask) {
workingDir '.'
script = file('node_modules/webpack/bin/webpack.js')
args = ['--mode=production']
environment = [
"NODE_ENV": "production",
"GATE_HOST": "spinnaker-api-prestaging.prod.netflix.net",
]
}
task copyFavicon(type: Copy) {
from "app/prod-favicon.ico"
into "build/webpack"
rename "prod-favicon.ico", "favicon.ico"
}
task karma(type: NodeTask) {
script = file('node_modules/karma/bin/karma')
args = ["start", "--single-run", "--reporters", "dots"]
if (project.hasProperty('skipTests')) {
karma.enabled = false
}
}
task generateVersionFile << {
'git update-index --assume-unchanged version.json'.execute()
def buildInfo = [
version: project.hasProperty('deckVersion') ? "${deckVersion}" : "n/a",
created: new Date().getTime()
]
def buildJson = JsonOutput.prettyPrint(JsonOutput.toJson(buildInfo))
new File(Paths.get("build", "webpack").toString()).mkdirs()
new File(Paths.get("build", "webpack", "version.json").toString()).write(buildJson)
new File("version.json").write(buildJson)
}
webpack.outputs.dir file('build/webpack')
yarn.dependsOn 'generateVersionFile'
webpack.dependsOn 'yarn'
karma.dependsOn 'webpack'
test.dependsOn 'karma'
copyFavicon.dependsOn 'test'
buildDeb.dependsOn 'copyFavicon'
buildRpm.dependsOn 'webpack'
String toVers(String v) {
int idx = v.indexOf('-')
if (idx != -1) {
return v.substring(0, idx)
}
return v
}
ospackage {
packageName = "spinnaker-deck"
version = toVers(project.version.toString())
release '3'
into "/opt/deck/html"
from "build/webpack"
os = LINUX
}
buildRpm {
requires('httpd')
}
buildDeb {
requires('apache2', '2.4.7', Flags.GREATER | Flags.EQUAL)
}