forked from DominikDary/microservices-pact
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
119 lines (97 loc) · 2.99 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
buildscript {
ext {
springBootVersion = '1.2.3.RELEASE'
}
repositories {
jcenter()
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath('com.github.jengelman.gradle.plugins:gradle-processes:0.3.0')
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath 'au.com.dius:pact-jvm-provider-gradle_2.11:2.1.13'
}
}
allprojects {
apply plugin: 'java'
apply plugin: 'idea'
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
ext {
versionFilePath = "$System.env.VERSION_FILE_PATH"
}
task loadVersion {
ext.myVersion = new File("${versionFilePath}/number").text
}
task manifestFilter(type: Copy) {
from 'manifest.yml'
into new File("$projectDir/../../versioned-manifest")
expand(version: "${loadVersion.myVersion}")
}
}
subprojects {
apply plugin: 'spring-boot'
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("org.springframework.boot:spring-boot-starter-test")
testCompile("au.com.dius:pact-jvm-consumer-junit_2.11:2.1.13")
}
}
project(':microservices-pact-consumer') {
test {
systemProperties['pact.rootDir'] = "$projectDir/../../pacts"
}
jar {
baseName = 'microservices-pact-consumer'
destinationDir = new File("$projectDir/../../libs")
}
jar.doFirst {
version = new File("${versionFilePath}/number").text
}
}
project(':microservices-pact-provider') {
apply plugin: 'au.com.dius.pact'
apply plugin: 'com.github.johnrengelman.processes'
ext {
pactFilePath = "$System.env.PACT_FILE"
}
task startProvider(type: com.github.jengelman.gradle.plugins.processes.tasks.JavaFork) {
classpath = files("$projectDir/../../provider-libs/microservices-pact-provider-${version}.jar")
classpath += sourceSets.main.runtimeClasspath
main = 'io.pivotal.microservices.pact.provider.Application'
doLast {
Thread.sleep(10000)
}
}
task stopProvider << {
startProvider.processHandle.abort()
}
jar {
baseName = 'microservices-pact-provider'
destinationDir = new File("$projectDir/../../provider-libs")
}
jar.doFirst {
version = new File("${versionFilePath}/number").text
}
pact {
serviceProviders {
fooProvider {
startProviderTask = 'startProvider'
terminateProviderTask = 'stopProvider'
hasPactWith('fooConsumer') {
pactFile = file(pactFilePath)
}
}
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}