-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
134 lines (113 loc) · 4.47 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
130
131
132
133
134
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.4'
id 'io.spring.dependency-management' version '1.1.6'
id 'com.github.ben-manes.versions' version '0.51.0'
id 'jacoco'
id "org.sonarqube" version '5.1.0.4882'
}
def homeFrontendVersion = '1.17.0'
jacoco {
toolVersion = '0.8.12'
}
jacocoTestReport {
reports {
xml.required = true
csv.required = false
html.required = false
}
}
test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed"
exceptionFormat = 'full'
}
}
sonar {
properties {
property "sonar.host.url", "https://sonarcloud.io"
property "sonar.junit.reportsPath", "build/test-results"
property "sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacoco/test/jacocoTestReport.xml"
property "sonar.organization", "bassages-github"
property "sonar.projectKey", "home-server"
}
}
repositories {
mavenCentral()
}
java {
toolchain{
languageVersion = JavaLanguageVersion.of(21)
}
}
compileJava {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" << "-Werror"
}
compileTestJava {
options.encoding = 'UTF-8'
}
if (System.getenv("GITHUB_TAG") != null) {
version = System.getenv("GITHUB_TAG")
logger.info('Creating release from GitHub action workflow. Version: ' + version)
} else {
version = 'x.x.x'
}
jar {
//noinspection GroovyAssignabilityCheck
archiveBaseName = 'home-server'
}
dependencies {
annotationProcessor('org.projectlombok:lombok:1.18.34')
compileOnly('org.projectlombok:lombok:1.18.34')
implementation('org.springframework.boot:spring-boot-starter-security')
implementation('org.springframework.boot:spring-boot-starter-cache')
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('org.springframework.boot:spring-boot-starter-websocket')
implementation('org.springframework.boot:spring-boot-starter-validation')
implementation('org.springframework.boot:spring-boot-starter-actuator')
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation('org.springframework.boot:spring-boot-starter-tomcat')
implementation('org.springframework.boot:spring-boot-starter-webflux')
compileOnly('org.springframework.boot:spring-boot-devtools')
implementation('org.ehcache:ehcache:3.10.8')
implementation('commons-io:commons-io:2.17.0')
implementation('org.apache.commons:commons-collections4:4.4')
implementation('org.apache.commons:commons-lang3:3.17.0')
implementation('org.apache.commons:commons-math3:3.6.1')
implementation('javax.inject:javax.inject:1')
implementation('com.google.code.findbugs:jsr305:3.0.2')
testImplementation('org.springframework.boot:spring-boot-starter-test')
testImplementation('org.springframework.security:spring-security-test')
testImplementation('nl.jqno.equalsverifier:equalsverifier:3.17')
testImplementation('org.awaitility:awaitility:4.2.2')
testImplementation('com.squareup.okhttp3:okhttp:4.12.0')
testImplementation('com.squareup.okhttp3:mockwebserver:4.12.0')
testImplementation('org.skyscreamer:jsonassert:1.5.3')
runtimeOnly("org.springframework.boot:spring-boot-properties-migrator")
runtimeOnly('org.flywaydb:flyway-core')
runtimeOnly('com.h2database:h2')
}
// Spring Boot Actuator’s info endpoint automatically publishes information about your build
// in the presence of a META-INF/build-info.properties file.
// A BuildInfo task is provided to generate this file.
// The easiest way to use the task is via the plugin’s DSL,
// like has been done here:
springBoot {
buildInfo()
}
// Take over system properties.
// Needed to be able to set the active profile for Spring Boot.
// e.g. -Dspring.profiles.active=development-h2db
bootRun {
systemProperties System.properties
}
processResources.doLast {
println '-----------------------------------------------------------------------------------'
println 'Download frontend release zip'
ant.get(src: "https://github.com/bassages/home-frontend/releases/download/${homeFrontendVersion}/home-frontend.zip", dest: 'build')
println 'Unzip frontend release artifact to be included in static resources of backend artifact'
ant.unzip(src: 'build/home-frontend.zip', dest: 'build/resources/main/static')
println '-----------------------------------------------------------------------------------'
}