Skip to content

Commit 701e49d

Browse files
jaydelucaCopilot
andauthored
Add test matrix for different java versions (#1781)
Signed-off-by: Jay DeLuca <jaydeluca4@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 0550eef commit 701e49d

File tree

8 files changed

+328
-226
lines changed

8 files changed

+328
-226
lines changed

.editorconfig

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@ max_line_length = 200
1111
max_line_length = 300
1212

1313
[pom.xml]
14-
max_line_length = 110
14+
max_line_length = 120
1515

1616
[*.py]
1717
# checked by black
1818
indent_size = 4
1919
max_line_length = 120
20+
21+
[{.mise/tasks/build-release.sh,.github/workflows/multi-version-test.yml}]
22+
max_line_length = 200
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
name: Java-Version Compatibility Tests
3+
4+
on: [pull_request]
5+
6+
permissions: {}
7+
8+
jobs:
9+
compatibility-test:
10+
name: Test on Java ${{ matrix.java }}
11+
runs-on: ubuntu-24.04
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
java: [17, 21, 25]
16+
steps:
17+
- name: Check out
18+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
19+
with:
20+
persist-credentials: false
21+
22+
- name: Set up Java ${{ matrix.java }}
23+
id: setup-java
24+
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
25+
with:
26+
distribution: "temurin"
27+
java-version: ${{ matrix.java }}
28+
29+
- name: Cache local Maven repository
30+
uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2
31+
with:
32+
path: ~/.m2/repository
33+
key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }}
34+
restore-keys: |
35+
${{ runner.os }}-maven-java${{ matrix.java }}-
36+
${{ runner.os }}-maven-
37+
38+
- name: Build and test on Java ${{ matrix.java }}
39+
run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn -Dcoverage.skip=true

.mise/tasks/build-release.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ set -euo pipefail
99
VERSION=${usage_tag#v}
1010

1111
mise run set-version "$VERSION"
12-
mvn -B package -P 'release,!default' -Dmaven.test.skip=true
12+
mvn -B package -P 'release,!default,!examples-and-integration-tests' -Dmaven.test.skip=true -Dgpg.skip=true

benchmarks/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@
8585
<configuration>
8686
<source>1.8</source>
8787
<target>1.8</target>
88-
<compilerArgs>
89-
<!-- need to add parameters to prevent inheritance -->
88+
<compilerArgs combine.self="override">
89+
<!-- Override parent to prevent ErrorProne inheritance -->
9090
<arg>-parameters</arg>
9191
</compilerArgs>
9292
<annotationProcessorPaths>

integration-tests/it-spring-boot-smoke-test/pom.xml

Lines changed: 97 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -89,95 +89,108 @@
8989

9090
<build>
9191
<plugins>
92-
<plugin>
93-
<groupId>org.graalvm.buildtools</groupId>
94-
<artifactId>native-maven-plugin</artifactId>
95-
<configuration>
96-
<!-- editorconfig-checker-disable -->
97-
<buildArgs>
98-
<buildArg>
99-
--initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences
100-
</buildArg>
101-
<buildArg>
102-
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo
103-
</buildArg>
104-
<buildArg>
105-
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods
106-
</buildArg>
107-
<buildArg>
108-
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor
109-
</buildArg>
110-
<buildArg>
111-
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor
112-
</buildArg>
113-
<buildArg>
114-
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode
115-
</buildArg>
116-
<buildArg>
117-
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1
118-
</buildArg>
119-
<buildArg>
120-
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfo
121-
</buildArg>
122-
<buildArg>
123-
--initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext
124-
</buildArg>
125-
<buildArg>
126-
--initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValue
127-
</buildArg>
128-
<buildArg>--initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier
129-
</buildArg>
130-
<buildArg>
131-
--initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider
132-
</buildArg>
133-
<buildArg>
134-
--initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfo
135-
</buildArg>
136-
<buildArg>
137-
--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods
138-
</buildArg>
139-
<buildArg>
140-
--initialize-at-build-time=org.junit.platform.commons.logging.LoggerFactory$DelegatingLogger
141-
</buildArg>
142-
<buildArg>
143-
--initialize-at-build-time=org.junit.jupiter.engine.execution.ConditionEvaluator
144-
</buildArg>
145-
<buildArg>
146-
--initialize-at-build-time=org.junit.jupiter.engine.execution.InterceptingExecutableInvoker
147-
</buildArg>
148-
<buildArg>
149-
--initialize-at-build-time=org.junit.jupiter.api.extension.ConditionEvaluationResult
150-
</buildArg>
151-
<buildArg>
152-
--initialize-at-build-time=org.junit.jupiter.engine.execution.InvocationInterceptorChain
153-
</buildArg>
154-
</buildArgs>
155-
<!-- editorconfig-checker-enable -->
156-
</configuration>
157-
</plugin>
15892
<plugin>
15993
<groupId>org.springframework.boot</groupId>
16094
<artifactId>spring-boot-maven-plugin</artifactId>
16195
</plugin>
162-
<plugin>
163-
<groupId>com.diffplug.spotless</groupId>
164-
<artifactId>spotless-maven-plugin</artifactId>
165-
<version>3.2.0</version>
166-
<configuration>
167-
<java>
168-
<googleJavaFormat/>
169-
</java>
170-
</configuration>
171-
<executions>
172-
<execution>
173-
<phase>verify</phase>
174-
<goals>
175-
<goal>check</goal>
176-
</goals>
177-
</execution>
178-
</executions>
179-
</plugin>
18096
</plugins>
18197
</build>
18298

99+
<profiles>
100+
<profile>
101+
<id>java17-plus</id>
102+
<activation>
103+
<jdk>[17,)</jdk>
104+
</activation>
105+
<build>
106+
<plugins>
107+
<plugin>
108+
<groupId>org.graalvm.buildtools</groupId>
109+
<artifactId>native-maven-plugin</artifactId>
110+
<configuration>
111+
<!-- editorconfig-checker-disable -->
112+
<buildArgs>
113+
<buildArg>
114+
--initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences
115+
</buildArg>
116+
<buildArg>
117+
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo
118+
</buildArg>
119+
<buildArg>
120+
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods
121+
</buildArg>
122+
<buildArg>
123+
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor
124+
</buildArg>
125+
<buildArg>
126+
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor
127+
</buildArg>
128+
<buildArg>
129+
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode
130+
</buildArg>
131+
<buildArg>
132+
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1
133+
</buildArg>
134+
<buildArg>
135+
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfo
136+
</buildArg>
137+
<buildArg>
138+
--initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext
139+
</buildArg>
140+
<buildArg>
141+
--initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValue
142+
</buildArg>
143+
<buildArg>--initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier
144+
</buildArg>
145+
<buildArg>
146+
--initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider
147+
</buildArg>
148+
<buildArg>
149+
--initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfo
150+
</buildArg>
151+
<buildArg>
152+
--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods
153+
</buildArg>
154+
<buildArg>
155+
--initialize-at-build-time=org.junit.platform.commons.logging.LoggerFactory$DelegatingLogger
156+
</buildArg>
157+
<buildArg>
158+
--initialize-at-build-time=org.junit.jupiter.engine.execution.ConditionEvaluator
159+
</buildArg>
160+
<buildArg>
161+
--initialize-at-build-time=org.junit.jupiter.engine.execution.InterceptingExecutableInvoker
162+
</buildArg>
163+
<buildArg>
164+
--initialize-at-build-time=org.junit.jupiter.api.extension.ConditionEvaluationResult
165+
</buildArg>
166+
<buildArg>
167+
--initialize-at-build-time=org.junit.jupiter.engine.execution.InvocationInterceptorChain
168+
</buildArg>
169+
</buildArgs>
170+
<!-- editorconfig-checker-enable -->
171+
</configuration>
172+
</plugin>
173+
<plugin>
174+
<groupId>com.diffplug.spotless</groupId>
175+
<artifactId>spotless-maven-plugin</artifactId>
176+
<version>3.2.0</version>
177+
<configuration>
178+
<java>
179+
<googleJavaFormat/>
180+
</java>
181+
</configuration>
182+
<executions>
183+
<execution>
184+
<phase>verify</phase>
185+
<goals>
186+
<goal>check</goal>
187+
</goals>
188+
</execution>
189+
</executions>
190+
</plugin>
191+
</plugins>
192+
</build>
193+
</profile>
194+
</profiles>
195+
183196
</project>

0 commit comments

Comments
 (0)