From 8613f76c2a31cb5d2096171e9151c77ce6ad22f4 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2026 14:18:33 +0000 Subject: [PATCH 1/2] ci(spring): Remove unsupported Spring Boot versions from test matrix Co-Authored-By: Nelson Osacky --- .github/workflows/spring-boot-2-matrix.yml | 6 +----- .github/workflows/spring-boot-3-matrix.yml | 2 +- .../build.gradle.kts | 15 +++------------ .../build.gradle.kts | 15 +++------------ .../build.gradle.kts | 12 ++---------- .../sentry-samples-spring-boot/build.gradle.kts | 15 +++------------ .../sentry-samples-spring/build.gradle.kts | 2 +- 7 files changed, 14 insertions(+), 53 deletions(-) diff --git a/.github/workflows/spring-boot-2-matrix.yml b/.github/workflows/spring-boot-2-matrix.yml index 8a723dd994..1d2364cf99 100644 --- a/.github/workflows/spring-boot-2-matrix.yml +++ b/.github/workflows/spring-boot-2-matrix.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - springboot-version: [ '2.4.13', '2.5.15', '2.6.15', '2.7.0', '2.7.18' ] + springboot-version: [ '2.7.0', '2.7.18' ] name: Spring Boot ${{ matrix.springboot-version }} env: @@ -65,10 +65,6 @@ jobs: - name: Update Spring Boot 2.x version run: | springboot_version="${{ matrix.springboot-version }}" - if [[ ! "$springboot_version" =~ ^2\.7\. ]]; then - echo "ORG_GRADLE_PROJECT_excludeGraphql=true" >> "$GITHUB_ENV" - echo "ORG_GRADLE_PROJECT_excludeKafka=true" >> "$GITHUB_ENV" - fi perl -0pi -e 'BEGIN { $v = shift } s/^springboot2[[:space:]]*=[[:space:]]*"\K[^"]*/$v/m or die "::error::springboot2 version entry not found in gradle/libs.versions.toml\n"' "$springboot_version" gradle/libs.versions.toml echo "Updated Spring Boot 2.x version to $springboot_version" diff --git a/.github/workflows/spring-boot-3-matrix.yml b/.github/workflows/spring-boot-3-matrix.yml index 33e06c49b5..00522636a1 100644 --- a/.github/workflows/spring-boot-3-matrix.yml +++ b/.github/workflows/spring-boot-3-matrix.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - springboot-version: [ '3.2.12', '3.3.13', '3.4.13', '3.5.13' ] + springboot-version: [ '3.4.13', '3.5.13' ] name: Spring Boot ${{ matrix.springboot-version }} env: diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts index 5ffc83b7f6..76c1333e05 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(11) } @@ -26,17 +26,8 @@ group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" -fun springBoot2SupportsOptionalIntegrations(): Boolean { - val version = libs.versions.springboot2.get().removeSuffix(".RELEASE") - val parts = version.split(".").map { it.toIntOrNull() ?: 0 } - val major = parts.getOrElse(0) { 0 } - val minor = parts.getOrElse(1) { 0 } - return major > 2 || (major == 2 && minor >= 7) -} - -val includeGraphql = - !project.hasProperty("excludeGraphql") && springBoot2SupportsOptionalIntegrations() -val includeKafka = !project.hasProperty("excludeKafka") && springBoot2SupportsOptionalIntegrations() +val includeGraphql = !project.hasProperty("excludeGraphql") +val includeKafka = !project.hasProperty("excludeKafka") tasks.withType().configureEach { kotlin { diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts index 3b7f56523d..65e220e854 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(11) } @@ -26,17 +26,8 @@ group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" -fun springBoot2SupportsOptionalIntegrations(): Boolean { - val version = libs.versions.springboot2.get().removeSuffix(".RELEASE") - val parts = version.split(".").map { it.toIntOrNull() ?: 0 } - val major = parts.getOrElse(0) { 0 } - val minor = parts.getOrElse(1) { 0 } - return major > 2 || (major == 2 && minor >= 7) -} - -val includeGraphql = - !project.hasProperty("excludeGraphql") && springBoot2SupportsOptionalIntegrations() -val includeKafka = !project.hasProperty("excludeKafka") && springBoot2SupportsOptionalIntegrations() +val includeGraphql = !project.hasProperty("excludeGraphql") +val includeKafka = !project.hasProperty("excludeKafka") tasks.withType().configureEach { kotlin { diff --git a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts index fe1859c0df..5848f71819 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(11) } @@ -26,15 +26,7 @@ group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" -fun springBoot2SupportsGraphql(): Boolean { - val version = libs.versions.springboot2.get().removeSuffix(".RELEASE") - val parts = version.split(".").map { it.toIntOrNull() ?: 0 } - val major = parts.getOrElse(0) { 0 } - val minor = parts.getOrElse(1) { 0 } - return major > 2 || (major == 2 && minor >= 7) -} - -val includeGraphql = !project.hasProperty("excludeGraphql") && springBoot2SupportsGraphql() +val includeGraphql = !project.hasProperty("excludeGraphql") dependencies { implementation(platform(libs.springboot2.bom)) diff --git a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts index 316e98ebdb..e88cb5b7c1 100644 --- a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(11) } @@ -26,17 +26,8 @@ group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" -fun springBoot2SupportsOptionalIntegrations(): Boolean { - val version = libs.versions.springboot2.get().removeSuffix(".RELEASE") - val parts = version.split(".").map { it.toIntOrNull() ?: 0 } - val major = parts.getOrElse(0) { 0 } - val minor = parts.getOrElse(1) { 0 } - return major > 2 || (major == 2 && minor >= 7) -} - -val includeGraphql = - !project.hasProperty("excludeGraphql") && springBoot2SupportsOptionalIntegrations() -val includeKafka = !project.hasProperty("excludeKafka") && springBoot2SupportsOptionalIntegrations() +val includeGraphql = !project.hasProperty("excludeGraphql") +val includeKafka = !project.hasProperty("excludeKafka") tasks.withType().configureEach { kotlin { diff --git a/sentry-samples/sentry-samples-spring/build.gradle.kts b/sentry-samples/sentry-samples-spring/build.gradle.kts index 8ae94a2e36..7e6e08137b 100644 --- a/sentry-samples/sentry-samples-spring/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(8) } From 76437ef26f9a37351331b8329ba0d2b94f852da4 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2026 14:35:36 +0000 Subject: [PATCH 2/2] ci(spring): Drop redundant Spring Boot 2.7.0 from test matrix Co-Authored-By: Nelson Osacky --- .github/workflows/spring-boot-2-matrix.yml | 2 +- .../build.gradle.kts | 2 +- .../sentry-samples-spring-boot-opentelemetry/build.gradle.kts | 2 +- .../sentry-samples-spring-boot-webflux/build.gradle.kts | 2 +- sentry-samples/sentry-samples-spring-boot/build.gradle.kts | 2 +- sentry-samples/sentry-samples-spring/build.gradle.kts | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/spring-boot-2-matrix.yml b/.github/workflows/spring-boot-2-matrix.yml index 1d2364cf99..932bab456f 100644 --- a/.github/workflows/spring-boot-2-matrix.yml +++ b/.github/workflows/spring-boot-2-matrix.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - springboot-version: [ '2.7.0', '2.7.18' ] + springboot-version: [ '2.7.18' ] name: Spring Boot ${{ matrix.springboot-version }} env: diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts index 76c1333e05..59e2b7d04d 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(11) } diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts index 65e220e854..e5676a53a7 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(11) } diff --git a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts index 5848f71819..eb26a16aa9 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(11) } diff --git a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts index e88cb5b7c1..b36e00d5b2 100644 --- a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(11) } diff --git a/sentry-samples/sentry-samples-spring/build.gradle.kts b/sentry-samples/sentry-samples-spring/build.gradle.kts index 7e6e08137b..8ae94a2e36 100644 --- a/sentry-samples/sentry-samples-spring/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } // Spring scans this app's own bytecode with its repackaged ASM at startup, and the oldest version -// the Spring Boot 2.x matrix covers (2.7.0, Spring 5.3.20) fails on class files as new as the +// the Spring Boot 2.x matrix covers (2.4.13, Spring 5.3.13) fails on class files as new as the // toolchain's: "Unsupported class file major version 65". Only the app is scanned, so its test // code keeps following the toolchain. tasks.named("compileJava") { options.release.set(8) }