Skip to content

Commit 1cff14e

Browse files
committed
ci: build with latest Java, test against different JDKs
1 parent 543a8e8 commit 1cff14e

File tree

6 files changed

+41
-62
lines changed

6 files changed

+41
-62
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,46 +7,37 @@ on:
77

88
env:
99
ORG_GRADLE_PROJECT_version: ${{ github.sha }}
10-
1110
jobs:
1211

1312
build:
1413
name: Build
1514
runs-on: ubuntu-latest
1615
strategy:
1716
matrix:
18-
java-version: [ 8, 11, 17, 21, 23 ]
17+
java-version: [ 8, 11, 17, 21, 25 ]
1918
steps:
2019
- name: Checkout
2120
uses: actions/checkout@v5
22-
- name: Cache
23-
uses: actions/cache@v4
24-
with:
25-
path: |
26-
~/.gradle/wrapper
27-
~/.gradle/caches
28-
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle.*') }}
29-
restore-keys: |
30-
gradle-${{ runner.os }}
31-
gradle-
32-
- name: Set up JDK ${{ matrix.java-version }}
21+
- name: Set up JDK
3322
uses: actions/setup-java@v5
3423
with:
35-
java-version: ${{ matrix.java-version }}
24+
java-version-file: .tool-versions
3625
distribution: temurin
26+
- name: Setup Gradle
27+
uses: gradle/actions/setup-gradle@v5
3728
- name: Prepare
3829
run: ./gradlew clean dependencies
3930
- name: Build
4031
run: ./gradlew assemble testClasses
4132
- name: Test
42-
run: ./gradlew test
33+
run: ./gradlew test -PtestTargetJavaVersion=${{ matrix.java-version }}
4334
- name: Publish Test Report
4435
uses: scacap/action-surefire-report@v1
4536
if: failure()
4637
with:
4738
github_token: ${{ secrets.GITHUB_TOKEN }}
4839
report_paths: '**/build/test-results/test/TEST-*.xml'
49-
check_name: Test Failures (${{ matrix.java-version }})
40+
check_name: Test Failures (Java ${{ matrix.java-version }})
5041

5142
release:
5243
name: Release Check

.github/workflows/release.yml

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,13 @@ jobs:
1616
steps:
1717
- name: Checkout
1818
uses: actions/checkout@v5
19-
- name: Cache
20-
uses: actions/cache@v4
21-
with:
22-
path: |
23-
~/.gradle/wrapper
24-
~/.gradle/caches
25-
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle.*') }}
26-
restore-keys: |
27-
gradle-${{ runner.os }}
28-
gradle-
29-
- name: Set up JDK 21
19+
- name: Setup JDK
3020
uses: actions/setup-java@v5
3121
with:
32-
java-version: 21
22+
java-version-file: .tool-versions
3323
distribution: temurin
24+
- name: Setup Gradle
25+
uses: gradle/actions/setup-gradle@v5
3426
- name: Prepare
3527
run: ./gradlew clean dependencies
3628
- name: Assemble Artefacts
@@ -50,21 +42,13 @@ jobs:
5042
steps:
5143
- name: Checkout
5244
uses: actions/checkout@v5
53-
- name: Cache
54-
uses: actions/cache@v4
55-
with:
56-
path: |
57-
~/.gradle/wrapper
58-
~/.gradle/caches
59-
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle.*') }}
60-
restore-keys: |
61-
gradle-${{ runner.os }}
62-
gradle-
63-
- name: Set up JDK 21
45+
- name: Setup JDK
6446
uses: actions/setup-java@v5
6547
with:
66-
java-version: 21
48+
java-version-file: .tool-versions
6749
distribution: temurin
50+
- name: Setup Gradle
51+
uses: gradle/actions/setup-gradle@v5
6852
- name: Prepare
6953
run: ./gradlew clean dependencies
7054
- name: Generate Documentation

.sdkmanrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Enable auto-env through the sdkman_auto_env config
22
# Add key=value pairs of SDKs to use below
3-
java=23.0.2-tem
3+
java=25.0.1-tem

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
java 25.0.1

build.gradle.kts

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import io.github.gradlenexus.publishplugin.NexusRepository
2-
import org.gradle.api.JavaVersion.VERSION_1_8
3-
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2+
import org.gradle.kotlin.dsl.*
43

54
plugins {
65
kotlin("jvm") version "2.1.21"
@@ -20,31 +19,36 @@ repositories {
2019
}
2120

2221
dependencies {
23-
testImplementation(name = "atrium-cc-en_GB-robstoll", group = "ch.tutteli.atrium", version = "0.15.0")
24-
testImplementation(name = "junit-jupiter-api", group = "org.junit.jupiter", version = "5.7.2")
25-
testImplementation(name = "junit-jupiter-params", group = "org.junit.jupiter", version = "5.7.2")
22+
testImplementation("ch.tutteli.atrium:atrium-cc-en_GB-robstoll:0.15.0")
23+
testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.2")
24+
testImplementation("org.junit.jupiter:junit-jupiter-params:5.7.2")
2625

2726
constraints {
2827
testImplementation(kotlin("reflect", KotlinVersion.CURRENT.toString()))
2928
}
3029

31-
testRuntimeOnly(name = "junit-platform-launcher", group = "org.junit.platform", version = "1.12.1")
32-
testRuntimeOnly(name = "junit-jupiter-engine", group = "org.junit.jupiter", version = "5.7.2")
30+
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.12.1")
31+
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.7.2")
3332
}
3433

35-
tasks.withType<Test>().configureEach {
36-
useJUnitPlatform()
37-
reports.junitXml.required = true
38-
}
34+
val compilationTargetJavaVersion = JavaLanguageVersion.of(8)
3935

4036
java {
41-
sourceCompatibility = VERSION_1_8
42-
targetCompatibility = VERSION_1_8
37+
toolchain {
38+
languageVersion = compilationTargetJavaVersion
39+
}
4340
}
4441

45-
kotlin {
46-
compilerOptions {
47-
jvmTarget = JvmTarget.JVM_1_8
42+
val testTargetJavaVersion = providers
43+
.gradleProperty("testTargetJavaVersion")
44+
.map(JavaLanguageVersion::of)
45+
.orElse(compilationTargetJavaVersion)
46+
47+
tasks.withType<Test>().configureEach {
48+
useJUnitPlatform()
49+
reports.junitXml.required = true
50+
javaLauncher = javaToolchains.launcherFor {
51+
languageVersion = testTargetJavaVersion
4852
}
4953
}
5054

@@ -78,11 +82,6 @@ val dokkaJar by tasks.registering(Jar::class) {
7882
from(tasks.named("dokkaGeneratePublicationJavadoc"))
7983
}
8084

81-
artifacts {
82-
archives(sourcesJar)
83-
archives(dokkaJar)
84-
}
85-
8685
lateinit var publication: MavenPublication
8786
lateinit var githubPackages: ArtifactRepository
8887
lateinit var mavenCentral: NexusRepository

settings.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1+
plugins {
2+
id("org.gradle.toolchains.foojay-resolver-convention").version("1.0.0")
3+
}
4+
15
rootProject.name = "string-notation"

0 commit comments

Comments
 (0)