-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathbuild.gradle
114 lines (97 loc) · 3.61 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
allprojects {
apply plugin: 'java'
apply plugin: 'maven-publish'
group = 'org.msse.demo'
version = '0.1.0'
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
repositories {
mavenCentral()
}
dependencies {}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
jar {
manifest.attributes provider: 'gradle'
}
}
apply plugin: 'docker-compose'
// projectName for each project should match .env/COMPOSE_PROJECT_NAME
// this allows for cli and gradle tasks to co-exist.
dockerCompose {
// ./gradlew postgresComposeUp|postgresComposeDown|postgresComposeDownForced
postgres {
projectName = 'data-demo-postgres'
composeAdditionalArgs = [ '--env-file', './postgres/local/.env' ]
useComposeFiles = ['./postgres/local/docker-compose.yml']
}
// ./gradlew redisComposeUp|redisComposeDown|redisComposeDownForced
redis {
projectName = 'data-demo-redis'
composeAdditionalArgs = [ '--env-file', './kafka/local/redis/.env' ]
useComposeFiles = ['./kafka/local/redis/docker-compose.yml']
}
// ./gradlew kafkaComposeUp|kafkaComposeDown|kafkaComposeDownForced
kafka1 {
// keep projectName identical to the COMPOSE_PROJECT_NAME in the .env file.
projectName = 'data-demo-kafka-1'
composeAdditionalArgs = [ '--env-file', './kafka/local/kafka-1/.env' ]
useComposeFiles = ['./kafka/local/kafka-1/docker-compose.yml']
}
kafka {
projectName = 'data-demo-kafka-3'
composeAdditionalArgs = [ '--env-file', './kafka/local/kafka-3/.env' ]
useComposeFiles = ['./kafka/local/kafka-3/docker-compose.yml']
}
kafkaCore {
projectName = 'data-demo-kafka-3'
startedServices = [ 'broker-1', 'broker-2', 'broker-3' ]
composeAdditionalArgs = [ '--env-file', './kafka/local/kafka-3/.env' ]
useComposeFiles = ['./kafka/local/kafka-3/docker-compose.yml' ]
}
// ./gradlew redpandaComposeUp|redpandaComposeDown|redpandaComposeDownForced
redpanda {
projectName = 'data-demo-redpanda'
composeAdditionalArgs = [ '--env-file', './kafka/local/redpanda/.env' ]
useComposeFiles = ['./kafka/local/redpanda/docker-compose.yml']
}
// ./gradlew s3ComposeUp|s3ComposeDown|s3ComposeDownForced
s3 {
composeAdditionalArgs = [ '--env-file', './observability/s3/.env' ]
useComposeFiles = ['./observability/s3/docker-compose.yml']
}
tracing {
useComposeFiles = [
'./observability/jaeger/docker-compose.yml'
]
}
}
task dockerCreateNetwork(type: Exec) {
workingDir "$projectDir/kafka/local"
commandLine 'sh', './network.sh'
}
task fullComposeUp {
dependsOn 'postgresComposeUp'
dependsOn 'kafkaComposeUp'
}
task fullComposeDown {
dependsOn 'postgresComposeDownForced'
dependsOn 'kafkaComposeDownForced'
}
postgresComposeUp.dependsOn([dockerCreateNetwork])
redisComposeUp.dependsOn([dockerCreateNetwork])
kafkaComposeUp.dependsOn([dockerCreateNetwork, tasks.named("redisComposeUp")])
kafka1ComposeUp.dependsOn([dockerCreateNetwork, tasks.named("redisComposeUp")])
redpandaComposeUp.dependsOn([dockerCreateNetwork, tasks.named("redisComposeUp")])
// make sure any of the kafka clusters are down
redisComposeDown.dependsOn([tasks.named("kafkaComposeDown"), tasks.named("kafka1ComposeDown")])
fullComposeUp.dependsOn dockerCreateNetwork
tracingComposeUp.dependsOn dockerCreateNetwork
s3ComposeUp.dependsOn dockerCreateNetwork