Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/spring-boot-2-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
strategy:
fail-fast: false
matrix:
springboot-version: [ '2.1.0', '2.2.5', '2.4.13', '2.5.15', '2.6.15', '2.7.0', '2.7.18' ]
springboot-version: [ '2.4.13', '2.5.15', '2.6.15', '2.7.0', '2.7.18' ]

name: Spring Boot ${{ matrix.springboot-version }}
env:
Expand Down Expand Up @@ -62,8 +62,13 @@ jobs:

- name: Update Spring Boot 2.x version
run: |
sed -i 's/^springboot2=.*/springboot2=${{ matrix.springboot-version }}/' gradle/libs.versions.toml
echo "Updated Spring Boot 2.x version to ${{ matrix.springboot-version }}"
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"

- name: Exclude android modules from build
run: |
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/spring-boot-3-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
strategy:
fail-fast: false
matrix:
springboot-version: [ '3.0.0', '3.2.12', '3.3.13', '3.4.13', '3.5.13' ]
springboot-version: [ '3.2.12', '3.3.13', '3.4.13', '3.5.13' ]

name: Spring Boot ${{ matrix.springboot-version }}
env:
Expand Down Expand Up @@ -62,8 +62,9 @@ jobs:

- name: Update Spring Boot 3.x version
run: |
sed -i 's/^springboot3=.*/springboot3=${{ matrix.springboot-version }}/' gradle/libs.versions.toml
echo "Updated Spring Boot 3.x version to ${{ matrix.springboot-version }}"
springboot_version="${{ matrix.springboot-version }}"
perl -0pi -e 'BEGIN { $v = shift } s/^springboot3[[:space:]]*=[[:space:]]*"\K[^"]*/$v/m or die "::error::springboot3 version entry not found in gradle/libs.versions.toml\n"' "$springboot_version" gradle/libs.versions.toml
echo "Updated Spring Boot 3.x version to $springboot_version"

- name: Exclude android modules from build
run: |
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/spring-boot-4-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,9 @@ jobs:

- name: Update Spring Boot 4.x version
run: |
sed -i 's/^springboot4=.*/springboot4=${{ matrix.springboot-version }}/' gradle/libs.versions.toml
echo "Updated Spring Boot 4.x version to ${{ matrix.springboot-version }}"
springboot_version="${{ matrix.springboot-version }}"
perl -0pi -e 'BEGIN { $v = shift } s/^springboot4[[:space:]]*=[[:space:]]*"\K[^"]*/$v/m or die "::error::springboot4 version entry not found in gradle/libs.versions.toml\n"' "$springboot_version" gradle/libs.versions.toml
echo "Updated Spring Boot 4.x version to $springboot_version"

- name: Exclude android modules from build
run: |
Expand Down
1 change: 1 addition & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ slf4j2-api = { module = "org.slf4j:slf4j-api", version = "2.0.5" }
spotlessLib = { module = "com.diffplug.spotless:com.diffplug.spotless.gradle.plugin", version.ref = "spotless"}
springboot2-bom = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "springboot2" }
springboot-starter = { module = "org.springframework.boot:spring-boot-starter", version.ref = "springboot2" }
spring-graphql = { module = "org.springframework.graphql:spring-graphql", version = "1.0.6" }
springboot-starter-graphql = { module = "org.springframework.boot:spring-boot-starter-graphql", version.ref = "springboot2" }
springboot-starter-quartz = { module = "org.springframework.boot:spring-boot-starter-quartz", version.ref = "springboot2" }
springboot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test", version.ref = "springboot2" }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
Expand All @@ -18,6 +19,13 @@ java.targetCompatibility = JavaVersion.VERSION_17

repositories { mavenCentral() }

dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${libs.versions.springboot3.get()}")
mavenBom(libs.otel.instrumentation.bom.get().toString())
}
}

// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version
extra["kotlin-coroutines.version"] = "1.9.0"

Expand All @@ -27,10 +35,10 @@ configure<JavaPluginExtension> {
}

tasks.withType<KotlinCompile>().configureEach {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = JvmTarget.JVM_17
kotlin {
compilerOptions.freeCompilerArgs = listOf("-Xjsr305=strict")
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = JvmTarget.JVM_17
}
}

Expand Down Expand Up @@ -79,10 +87,6 @@ dependencies {
testImplementation("ch.qos.logback:logback-core:1.5.16")
}

dependencyManagement { imports { mavenBom(libs.otel.instrumentation.bom.get().toString()) } }

configure<SourceSetContainer> { test { java.srcDir("src/test/java") } }

tasks.register<Test>("systemTest").configure {
group = "verification"
description = "Runs the System tests"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.springframework.boot.gradle.tasks.run.BootRun

Expand All @@ -19,6 +20,12 @@ java.targetCompatibility = JavaVersion.VERSION_17

repositories { mavenCentral() }

dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${libs.versions.springboot3.get()}")
}
}

// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version
extra["kotlin-coroutines.version"] = "1.9.0"

Expand All @@ -27,14 +34,12 @@ configure<JavaPluginExtension> {
targetCompatibility = JavaVersion.VERSION_17
}

tasks.withType<KotlinCompile>().configureEach {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
tasks.withType<KotlinCompile>().configureEach { compilerOptions.jvmTarget = JvmTarget.JVM_17 }

tasks.withType<KotlinCompile>().configureEach {
kotlin {
compilerOptions.freeCompilerArgs = listOf("-Xjsr305=strict")
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = JvmTarget.JVM_17
}
}

Expand Down Expand Up @@ -83,8 +88,6 @@ dependencies {
testImplementation("ch.qos.logback:logback-core:1.5.16")
}

configure<SourceSetContainer> { test { java.srcDir("src/test/java") } }

tasks.register<BootRun>("bootRunWithAgent").configure {
group = "application"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
Expand All @@ -18,6 +19,12 @@ java.targetCompatibility = JavaVersion.VERSION_17

repositories { mavenCentral() }

dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${libs.versions.springboot3.get()}")
}
}

// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version
extra["kotlin-coroutines.version"] = "1.9.0"

Expand All @@ -26,14 +33,12 @@ configure<JavaPluginExtension> {
targetCompatibility = JavaVersion.VERSION_17
}

tasks.withType<KotlinCompile>().configureEach {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
tasks.withType<KotlinCompile>().configureEach { compilerOptions.jvmTarget = JvmTarget.JVM_17 }

tasks.withType<KotlinCompile>().configureEach {
kotlin {
compilerOptions.freeCompilerArgs = listOf("-Xjsr305=strict")
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = JvmTarget.JVM_17
}
}

Expand Down Expand Up @@ -85,8 +90,6 @@ dependencies {
testImplementation("ch.qos.logback:logback-core:1.5.16")
}

configure<SourceSetContainer> { test { java.srcDir("src/test/java") } }

tasks.register<Test>("systemTest").configure {
group = "verification"
description = "Runs the System tests"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
Expand All @@ -15,25 +16,35 @@ group = "io.sentry.sample.spring-boot"

version = "0.0.1-SNAPSHOT"

java.sourceCompatibility = JavaVersion.VERSION_17
java.sourceCompatibility = JavaVersion.VERSION_11

java.targetCompatibility = JavaVersion.VERSION_17
java.targetCompatibility = JavaVersion.VERSION_11

repositories { mavenCentral() }

configure<JavaPluginExtension> {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
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)
}

tasks.withType<KotlinCompile>().configureEach {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
val includeGraphql =
!project.hasProperty("excludeGraphql") && springBoot2SupportsOptionalIntegrations()
val includeKafka = !project.hasProperty("excludeKafka") && springBoot2SupportsOptionalIntegrations()

configure<JavaPluginExtension> {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}

tasks.withType<KotlinCompile>().configureEach { compilerOptions.jvmTarget = JvmTarget.JVM_11 }

tasks.withType<KotlinCompile>().configureEach {
kotlin {
compilerOptions.freeCompilerArgs = listOf("-Xjsr305=strict")
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = JvmTarget.JVM_11
}
}

Expand All @@ -43,7 +54,9 @@ dependencies {
implementation(libs.springboot.starter)
implementation(libs.springboot.starter.actuator)
implementation(libs.springboot.starter.aop)
implementation(libs.springboot.starter.graphql)
if (includeGraphql) {
implementation(libs.springboot.starter.graphql)
}
implementation(libs.springboot.starter.jdbc)
implementation(libs.springboot.starter.quartz)
implementation(libs.springboot.starter.security)
Expand All @@ -55,14 +68,17 @@ dependencies {
implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION))
implementation(projects.sentrySpringBootStarter)
implementation(projects.sentryLogback)
implementation(projects.sentryGraphql)
if (includeGraphql) {
implementation(projects.sentryGraphql)
}
implementation(projects.sentryQuartz)
implementation(projects.sentryOpentelemetry.sentryOpentelemetryAgentlessSpring)
implementation(projects.sentryAsyncProfiler)

// kafka
implementation(libs.spring.kafka2)
implementation(projects.sentryKafka)
if (includeKafka) {
implementation(libs.spring.kafka2)
implementation(projects.sentryKafka)
}

// database query tracing
implementation(projects.sentryJdbc)
Expand Down Expand Up @@ -103,7 +119,18 @@ tasks.jar {

tasks.startScripts { dependsOn(tasks.shadowJar) }

configure<SourceSetContainer> { test { java.srcDir("src/test/java") } }
configure<SourceSetContainer> {
main {
if (!includeGraphql) {
Comment thread
adinauer marked this conversation as resolved.
java.exclude("**/graphql/**")
resources.exclude("graphql/**")
}
if (!includeKafka) {
java.exclude("**/queues/kafka/**")
resources.exclude("application-kafka.properties")
}
}
}

tasks.register<Test>("systemTest").configure {
group = "verification"
Expand All @@ -121,7 +148,15 @@ tasks.register<Test>("systemTest").configure {
minHeapSize = "128m"
maxHeapSize = "1g"

filter { includeTestsMatching("io.sentry.systemtest*") }
filter {
Comment thread
adinauer marked this conversation as resolved.
includeTestsMatching("io.sentry.systemtest*")
if (!includeGraphql) {
excludeTestsMatching("io.sentry.systemtest.Graphql*")
}
if (!includeKafka) {
excludeTestsMatching("io.sentry.systemtest.Kafka*")
}
}
}

tasks.named("test").configure {
Expand Down
Loading
Loading