Skip to content

Commit 89cc1e9

Browse files
committed
ci: add spotless Gradle tasks and check during build in CI
1 parent 319215d commit 89cc1e9

File tree

11 files changed

+668
-253
lines changed

11 files changed

+668
-253
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ jobs:
3232
key: ${{ runner.os }}-gradlew-${{ hashFiles('**/gradlew') }}
3333
restore-keys: ${{ runner.os }}-gradlew-
3434

35+
- name: Code Style Check
36+
run: |
37+
./gradlew spotlessCheck -S
38+
3539
- name: Build
3640
run: |
3741
./gradlew build aggregateTestReport -S

.spotless/roms-style.xml

Lines changed: 380 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -632,22 +632,22 @@ detail. [Open an issue on GitHub](https://github.com/redis-om/redis-om-spring/is
632632

633633
### Code Style
634634

635-
This project uses the Spotless Maven plugin with Eclipse formatter to enforce a consistent code style. Before submitting a pull request, please make sure your code follows our formatting guidelines by running:
635+
This project uses the Spotless Gradle plugin with Eclipse formatter to enforce a consistent code style. Before submitting a pull request, please make sure your code follows our formatting guidelines by running:
636636

637637
```bash
638-
mvn spotless:apply
638+
./gradlew spotlessApply
639639
```
640640

641641
This will automatically reformat your code to match the project's style. You can also check if your code meets the formatting requirements without changing it:
642642

643643
```bash
644-
mvn spotless:check
644+
./gradlew spotlessCheck
645645
```
646646

647647
The main formatting rules include:
648648
- 2-space indentation (not 4)
649649
- KNR brace style (braces at end of line)
650-
- Maximum line length of 100 characters
650+
- Maximum line length of 120 characters
651651
- Consistent import ordering (java, javax, org, com, other imports)
652652

653653
## 🧑‍🤝‍🧑 Sibling Projects

build.gradle

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,33 @@
11
plugins {
2-
id 'org.springframework.boot' version "${springBootVersion}" apply false
2+
id 'org.springframework.boot' version "${springBootVersion}" apply false
3+
id 'com.diffplug.spotless' version '6.25.0'
4+
id 'java' // Add java plugin to root project
35
}
46

57
ext['jedis.version'] = "${jedisVersion}"
68

79
allprojects {
8-
version = project.version
9-
group = project.group
10-
description = project.description
11-
repositories {
12-
mavenLocal()
13-
mavenCentral()
14-
}
10+
version = project.version
11+
group = project.group
12+
description = project.description
13+
repositories {
14+
mavenLocal()
15+
mavenCentral()
16+
}
1517
}
1618

19+
// Apply the Spotless configuration
20+
apply from: "spotless.gradle"
21+
1722
subprojects {
18-
apply from: "$rootDir/gradle/build-conventions.gradle"
23+
apply from: "$rootDir/gradle/build-conventions.gradle"
1924
}
2025

2126
tasks.register('aggregateTestReport', TestReport) {
22-
destinationDirectory = layout.buildDirectory.dir("reports/tests/aggregate")
23-
testResults.setFrom(
24-
subprojects.collect { it.tasks.withType(Test) }
25-
)
27+
destinationDirectory = layout.buildDirectory.dir("reports/tests/aggregate")
28+
testResults.setFrom(
29+
subprojects.collect {
30+
it.tasks.withType(Test)
31+
}
32+
)
2633
}

gradle/build-conventions.gradle

Lines changed: 67 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -3,89 +3,89 @@ apply plugin: 'io.spring.dependency-management'
33
apply plugin: 'maven-publish'
44

55
java {
6-
toolchain {
7-
languageVersion = JavaLanguageVersion.of(21)
8-
}
9-
withJavadocJar()
10-
withSourcesJar()
6+
toolchain {
7+
languageVersion = JavaLanguageVersion.of(21)
8+
}
9+
withJavadocJar()
10+
withSourcesJar()
1111
}
1212

1313
test {
14-
useJUnitPlatform()
14+
useJUnitPlatform()
1515
}
1616

1717
dependencyManagement {
18-
imports {
19-
mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
20-
}
18+
imports {
19+
mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
20+
}
2121
}
2222

2323
dependencies {
24-
compileOnly "org.projectlombok:lombok"
25-
annotationProcessor "org.projectlombok:lombok"
26-
testImplementation "org.projectlombok:lombok"
27-
testAnnotationProcessor "org.projectlombok:lombok"
28-
testImplementation 'org.junit.jupiter:junit-jupiter-api'
29-
testImplementation 'org.junit.jupiter:junit-jupiter-params'
30-
testImplementation 'org.junit.jupiter:junit-jupiter-engine'
31-
testImplementation 'org.junit.platform:junit-platform-launcher'
32-
testImplementation 'org.springframework.boot:spring-boot-starter-test'
33-
testImplementation 'org.testcontainers:junit-jupiter'
34-
testImplementation "com.redis:testcontainers-redis:${testcontainersRedisVersion}"
24+
compileOnly "org.projectlombok:lombok"
25+
annotationProcessor "org.projectlombok:lombok"
26+
testImplementation "org.projectlombok:lombok"
27+
testAnnotationProcessor "org.projectlombok:lombok"
28+
testImplementation 'org.junit.jupiter:junit-jupiter-api'
29+
testImplementation 'org.junit.jupiter:junit-jupiter-params'
30+
testImplementation 'org.junit.jupiter:junit-jupiter-engine'
31+
testImplementation 'org.junit.platform:junit-platform-launcher'
32+
testImplementation 'org.springframework.boot:spring-boot-starter-test'
33+
testImplementation 'org.testcontainers:junit-jupiter'
34+
testImplementation "com.redis:testcontainers-redis:${testcontainersRedisVersion}"
3535
}
3636

3737
publishing {
38-
publications {
39-
mavenJava(MavenPublication) {
40-
from components.java
41-
groupId = project.group
42-
artifactId = project.name
43-
version = project.version
44-
description = project.description
38+
publications {
39+
mavenJava(MavenPublication) {
40+
from components.java
41+
groupId = project.group
42+
artifactId = project.name
43+
version = project.version
44+
description = project.description
4545

46-
versionMapping {
47-
usage('java-api') {
48-
fromResolutionOf('runtimeClasspath')
49-
}
50-
usage('java-runtime') {
51-
fromResolutionResult()
52-
}
53-
}
46+
versionMapping {
47+
usage('java-api') {
48+
fromResolutionOf('runtimeClasspath')
49+
}
50+
usage('java-runtime') {
51+
fromResolutionResult()
52+
}
53+
}
5454

55-
pom {
56-
packaging = 'jar'
57-
name = project.name
58-
description = project.description
59-
url = "https://github.com/redis/redis-om-spring"
60-
inceptionYear = '2021'
55+
pom {
56+
packaging = 'jar'
57+
name = project.name
58+
description = project.description
59+
url = "https://github.com/redis/redis-om-spring"
60+
inceptionYear = '2021'
6161

62-
licenses {
63-
license {
64-
name = "MIT License"
65-
url = "https://opensource.org/licenses/MIT"
66-
}
67-
}
62+
licenses {
63+
license {
64+
name = "MIT License"
65+
url = "https://opensource.org/licenses/MIT"
66+
}
67+
}
6868

69-
developers {
70-
developer {
71-
id = "bsbodden"
72-
name = "Brian Sam-Bodden"
73-
email = "bsb at redis.com"
74-
}
75-
}
69+
developers {
70+
developer {
71+
id = "bsbodden"
72+
name = "Brian Sam-Bodden"
73+
email = "bsb at redis.com"
74+
}
75+
}
7676

77-
scm {
78-
connection = "scm:git:git://github.com/redis/redis-om-spring.git"
79-
developerConnection = "scm:git:ssh://github.com/redis/redis-om-spring.git"
80-
url = "https://github.com/redis/redis-om-spring"
81-
}
82-
}
83-
}
84-
}
77+
scm {
78+
connection = "scm:git:git://github.com/redis/redis-om-spring.git"
79+
developerConnection = "scm:git:ssh://github.com/redis/redis-om-spring.git"
80+
url = "https://github.com/redis/redis-om-spring"
81+
}
82+
}
83+
}
84+
}
8585

86-
repositories {
87-
maven {
88-
url = rootProject.layout.buildDirectory.dir('staging-deploy')
89-
}
90-
}
86+
repositories {
87+
maven {
88+
url = rootProject.layout.buildDirectory.dir('staging-deploy')
89+
}
90+
}
9191
}

redis-om-spring-ai/build.gradle

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,39 @@
11
description = 'Redis OM Spring AI'
22

33
dependencies {
4-
implementation project(':redis-om-spring')
4+
implementation project(':redis-om-spring')
55

6-
implementation "org.springframework.ai:spring-ai-openai:${springAiVersion}"
7-
compileOnly "jakarta.websocket:jakarta.websocket-api"
8-
compileOnly "jakarta.websocket:jakarta.websocket-client-api"
9-
implementation "org.springframework.ai:spring-ai-ollama:${springAiVersion}"
10-
implementation "org.springframework.ai:spring-ai-azure-openai:${springAiVersion}"
11-
implementation "org.springframework.ai:spring-ai-vertex-ai-embedding:${springAiVersion}"
12-
implementation "org.springframework.ai:spring-ai-bedrock:${springAiVersion}"
13-
implementation "org.springframework.ai:spring-ai-transformers:${springAiVersion}"
14-
compileOnly "org.springframework.ai:spring-ai-mistral-ai:${springAiVersion}"
15-
compileOnly "org.springframework.ai:spring-ai-minimax:${springAiVersion}"
16-
compileOnly "org.springframework.ai:spring-ai-zhipuai:${springAiVersion}"
6+
implementation "org.springframework.ai:spring-ai-openai:${springAiVersion}"
7+
compileOnly "jakarta.websocket:jakarta.websocket-api"
8+
compileOnly "jakarta.websocket:jakarta.websocket-client-api"
9+
implementation "org.springframework.ai:spring-ai-ollama:${springAiVersion}"
10+
implementation "org.springframework.ai:spring-ai-azure-openai:${springAiVersion}"
11+
implementation "org.springframework.ai:spring-ai-vertex-ai-embedding:${springAiVersion}"
12+
implementation "org.springframework.ai:spring-ai-bedrock:${springAiVersion}"
13+
implementation "org.springframework.ai:spring-ai-transformers:${springAiVersion}"
14+
compileOnly "org.springframework.ai:spring-ai-mistral-ai:${springAiVersion}"
15+
compileOnly "org.springframework.ai:spring-ai-minimax:${springAiVersion}"
16+
compileOnly "org.springframework.ai:spring-ai-zhipuai:${springAiVersion}"
1717

18-
compileOnly "com.google.auto.service:auto-service:${autoServiceVersion}"
18+
compileOnly "com.google.auto.service:auto-service:${autoServiceVersion}"
1919

20-
// DJL Dependencies
21-
implementation "ai.djl.spring:djl-spring-boot-starter-autoconfigure:${djlStarterVersion}"
22-
implementation "ai.djl.spring:djl-spring-boot-starter-pytorch-auto:${djlStarterVersion}"
23-
implementation "ai.djl.huggingface:tokenizers:${djlVersion}"
20+
// DJL Dependencies
21+
implementation "ai.djl.spring:djl-spring-boot-starter-autoconfigure:${djlStarterVersion}"
22+
implementation "ai.djl.spring:djl-spring-boot-starter-pytorch-auto:${djlStarterVersion}"
23+
implementation "ai.djl.huggingface:tokenizers:${djlVersion}"
2424

25-
testImplementation "org.mockito:mockito-core"
26-
testImplementation "com.karuslabs:elementary:${elementaryVersion}"
27-
28-
testImplementation "org.springframework.ai:spring-ai-openai:${springAiVersion}"
29-
testImplementation "jakarta.websocket:jakarta.websocket-api"
30-
testImplementation "jakarta.websocket:jakarta.websocket-client-api"
31-
testImplementation "org.springframework.ai:spring-ai-ollama:${springAiVersion}"
32-
testImplementation "org.springframework.ai:spring-ai-azure-openai:${springAiVersion}"
33-
testImplementation "org.springframework.ai:spring-ai-vertex-ai-embedding:${springAiVersion}"
34-
testImplementation "org.springframework.ai:spring-ai-bedrock:${springAiVersion}"
35-
testImplementation "org.springframework.ai:spring-ai-transformers:${springAiVersion}"
36-
testImplementation "org.springframework.ai:spring-ai-mistral-ai:${springAiVersion}"
37-
testImplementation "org.springframework.ai:spring-ai-minimax:${springAiVersion}"
38-
testImplementation "org.springframework.ai:spring-ai-zhipuai:${springAiVersion}"
25+
testImplementation "org.mockito:mockito-core"
26+
testImplementation "com.karuslabs:elementary:${elementaryVersion}"
3927

28+
testImplementation "org.springframework.ai:spring-ai-openai:${springAiVersion}"
29+
testImplementation "jakarta.websocket:jakarta.websocket-api"
30+
testImplementation "jakarta.websocket:jakarta.websocket-client-api"
31+
testImplementation "org.springframework.ai:spring-ai-ollama:${springAiVersion}"
32+
testImplementation "org.springframework.ai:spring-ai-azure-openai:${springAiVersion}"
33+
testImplementation "org.springframework.ai:spring-ai-vertex-ai-embedding:${springAiVersion}"
34+
testImplementation "org.springframework.ai:spring-ai-bedrock:${springAiVersion}"
35+
testImplementation "org.springframework.ai:spring-ai-transformers:${springAiVersion}"
36+
testImplementation "org.springframework.ai:spring-ai-mistral-ai:${springAiVersion}"
37+
testImplementation "org.springframework.ai:spring-ai-minimax:${springAiVersion}"
38+
testImplementation "org.springframework.ai:spring-ai-zhipuai:${springAiVersion}"
4039
}

0 commit comments

Comments
 (0)