-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
82 lines (71 loc) · 2.51 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
buildscript {
repositories {
jcenter()
maven { url "http://dl.bintray.com/gesellix/gradle-plugins" }
}
dependencies {
classpath "io.ratpack:ratpack-gradle:0.9.7"
classpath 'com.github.jengelman.gradle.plugins:shadow:1.0.2'
classpath 'de.gesellix:gradle-debian-plugin:14'
classpath 'se.transmode.gradle:gradle-docker:1.2'
}
}
apply from: file('gradle/versioning.gradle')
apply plugin: "io.ratpack.ratpack-groovy"
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'pkg-debian'
apply plugin: 'docker'
repositories {
jcenter()
maven { url "http://repo.springsource.org/repo" } // for springloaded
}
dependencies {
// SpringLoaded enables runtime hot reloading.
// It is not part of the app runtime and is not shipped in the distribution.
springloaded "org.springsource.loaded:springloaded:1.1.5.RELEASE"
// Default SLF4J binding. Note that this is a blocking implementation.
// See here for a non blocking appender http://logging.apache.org/log4j/2.x/manual/async.html
runtime 'org.slf4j:slf4j-simple:1.7.7'
testCompile "org.spockframework:spock-core:0.7-groovy-2.0"
compile ratpack.dependency("jackson")
compile ratpack.dependency("rx")
compile ratpack.dependency("hystrix")
}
// Stage is the task called by heroku
task stage {
dependsOn installShadowApp
}
// Setup the debian package build
debian {
packagename = project.name
controlDirectory = "${projectDir}/src/debian/control"
changelogFile = "${projectDir}/src/debian/changelog"
outputFile = "${buildDir}/${project.name}_${version}_all.deb"
data {
dir {
name = "${projectDir}/src/debian/data"
}
file {
name = project.shadowJar.outputs.files.singleFile
target = "usr/share/${project.name}/app.jar"
}
}
}
docker {
apiUsername dockerUser
apiPassword dockerPassword
apiEmail dockerEmail
}
task buildDocker(type: Docker, dependsOn: shadowJar) {
applicationName = "${dockerUser}/${project.name}"
tagVersion = project.version
dockerfile = project.file('Dockerfile')
addFile(project.shadowJar.outputs.files.singleFile, "/app.jar")
push = project.hasProperty('pushImage') && pushImage && dockerPassword
}
String getDockerPassword() {
if (project.hasProperty('dockerPassword')) {
return project.property('dockerPassword')
}
return System.getenv('DOCKER_PASSWORD')
}