-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
130 lines (117 loc) · 5.58 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
120
121
122
123
124
125
126
127
128
129
buildscript {
dependencies {
classpath "gov.va.starter:plugins:${starter_boot_version}"
classpath "gov.va.starter:cookiecutter:${starter_boot_version}"
classpath "se.patrikerdes:gradle-use-latest-versions-plugin:${use_latest_versions_plugin_version}"
classpath "com.github.ben-manes:gradle-versions-plugin:${versions_plugin_version}"
}
// There's a conflict between versions of jgit between spotless and axion release plugin
configurations.classpath {
resolutionStrategy {
force 'org.eclipse.jgit:org.eclipse.jgit:5.7.0.202003110725-r'
}
}
}
plugins {
id("org.ajoberstar.grgit") version "${grgit_version}" apply false
id("org.springframework.boot") version "${spring_boot_plugin_version}" apply false
id("io.swagger.swaggerhub") version "${swaggerhub_version}" apply false
id("com.diffplug.spotless") version "${spotless_plugin_version}" apply false
id("com.palantir.docker") version "${palantir_docker_plugin_version}" apply false
id("com.palantir.docker-run") version "${palantir_docker_run_plugin_version}" apply false
// id("com.cdsap.talaiot") version "${talaiot_version}" apply false
// id("com.cdsap.talaiot.plugin.base") version "${talaiot_plugin_base_version}" apply false
id("net.rdrei.android.buildtimetracker") version "${buildtimetracker_version}" apply false
id("pl.allegro.tech.build.axion-release") version "${axion_release_plugin_version}" apply false
id("io.gatling.gradle") version "${gatling_plugin_version}" apply false
id("com.github.ben-manes.versions") version "${versions_plugin_version}" apply false
id("se.patrikerdes.use-latest-versions") version "${use_latest_versions_plugin_version}" apply false
id("gov.va.starter.plugin.cookiecutter") version "${starter_boot_version}" apply false
id("com.github.johnrengelman.processes") version "${processes_plugin_version}" apply false
id("org.springdoc.openapi-gradle-plugin") version "${openapi_gradle_plugin_version}" apply false
id("org.flywaydb.flyway") version "${flyway_plugin_version}" apply false
id("com.felipefzdz.gradle.shellcheck") version "${shellcheck_plugin_version}" apply false
id("org.barfuin.gradle.jacocolog") version "${jacocolog_plugin_version}" apply false
id("org.barfuin.gradle.taskinfo") version "${taskinfo_plugin_version}"
id("org.asciidoctor.jvm.pdf") version "${asciidoctor_plugin_version}" apply false
id("org.asciidoctor.jvm.gems") version "${asciidoctor_plugin_version}" apply false
id("org.asciidoctor.jvm.convert") version "${asciidoctor_plugin_version}" apply false
id("starter.java.build-utils-property-conventions") version "${starter_boot_version}"
id("starter.java.build-utils-task-conventions") version "${starter_boot_version}"
id("starter.java.release-conventions") version "${starter_boot_version}"
id("starter.metrics.build-time-tracker-conventions") version "${starter_boot_version}"
id("starter.java.versions-conventions") version "${starter_boot_version}"
id("starter.java.test-jacoco-aggregation-conventions") version "${starter_boot_version}"
id('starter.java.doc-mkdocs-conventions') version "${starter_boot_version}"
}
ext {
jacoco_enforce_violations = true
jacoco_minimum_coverage = 0.8
codeModules = [':app',
':api',
':controller',
':persistence:impl',
':persistence:model',
':service:activator',
':service:provider',
':service:spi',
':test-data-factory']
dockerModules = [':app',
':container-init',
':db-init',
':opa-init']
}
// Support pre-commit hooks, need spotlessCheck and spotlessApply
def spotlessCheck = tasks.register('spotlessCheck') {
def tb = taskBuilder('spotlessCheck')
codeModules.each { dependsOn tb(it) }
}
def spotlessApply = tasks.register('spotlessApply') {
def tb = taskBuilder('spotlessApply')
codeModules.each { dependsOn tb(it) }
}
def maintainerclean = tasks.register('maintainerclean') {
group = "Workflow"
description = "clean all submodules"
def tb = taskBuilder('clean')
codeModules.each { dependsOn tb(it) }
dockerModules.each { dependsOn tb(it) }
//depender codeModules, taskBuilder('clean')
//depender dockerModules, taskBuilder('clean')
}
def dockerclean = tasks.register('dockerclean') {
group = "Workflow"
description = "clean docker images"
dependsOn ':app:dockerComposeDown'
dependsOn ':app:dockerPrune'
}
def dockermaintainerclean = tasks.register('dockermaintainerclean') {
group = "Workflow"
description = "clean docker images"
dependsOn ':app:dockerPruneVolume'
mustRunAfter dockerclean
}
def devloop = tasks.register('devloop') {
group = "Workflow"
description = "Rebuild code, docker images, and restart docker-compose"
dependsOn ':app:build'
def tb = taskBuilder('docker')
dockerModules.each { dependsOn tb(it) }
//depender(dockerModules, taskBuilder('docker'))
dependsOn ':app:dockerComposeUp'
mustRunAfter dockerclean
mustRunAfter dockermaintainerclean
}
def restartloop = tasks.register('restartloop') {
group = "Workflow"
description = "Stop docker-compose, delete unused images, continue with devloop task"
dependsOn dockerclean
dependsOn devloop
}
tasks.register('resetloop') {
group = "Workflow"
description = "Remove docker volumes, continue with restartloop task"
dependsOn dockerclean
dependsOn dockermaintainerclean
dependsOn restartloop
}