diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 089913c972..772ca4a853 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,8 +10,8 @@ concurrency: cancel-in-progress: true jobs: - build: - name: Build Job ubuntu-latest - Java 17 + test: + name: Test runs-on: ubuntu-latest env: @@ -41,8 +41,16 @@ jobs: with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - - name: Run Tests with coverage and Lint - run: make preMerge + - name: Run Tests + run: > + ./gradlew + test + testReleaseUnitTest + jacocoTestReport + koverXmlReportRelease + -x :sentry-spring-boot:test + -x :sentry-spring-boot-jakarta:test + -x :sentry-spring-boot-4:test - name: Upload coverage to Codecov uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # pin@v4 @@ -55,7 +63,7 @@ jobs: if: always() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: - name: test-results-build + name: test-results-test path: | **/build/reports/* @@ -63,7 +71,7 @@ jobs: uses: phoenix-actions/test-reporting@f957cd93fc2d848d556fa0d03c57bc79127b6b5e # pin@v15 if: always() with: - name: JUnit Build + name: JUnit Test list-suites: 'failed' list-tests: 'failed' path: | @@ -71,3 +79,41 @@ jobs: reporter: java-junit output-to: step-summary fail-on-error: false + + lint: + name: Lint + runs-on: ubuntu-latest + + env: + GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }} + + steps: + - name: Checkout Repo + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + submodules: 'recursive' + + - name: Setup Java Version + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + with: + distribution: 'temurin' + java-version: '17' + + # Workaround for https://github.com/gradle/actions/issues/21 to use config cache + - name: Cache buildSrc + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 + with: + path: buildSrc/build + key: build-logic-${{ hashFiles('buildSrc/src/**', 'buildSrc/build.gradle.kts','buildSrc/settings.gradle.kts') }} + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c + with: + cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} + + - name: Run Lint + run: > + ./gradlew + apiCheck + animalsnifferMain + lint diff --git a/build.gradle.kts b/build.gradle.kts index 6656e00e49..66a13c21f2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -107,10 +107,9 @@ allprojects { TestLogEvent.PASSED, TestLogEvent.FAILED ) - - // Cap JVM args per test - minHeapSize = "256m" - maxHeapSize = "2g" + // Cap JVM args per test + minHeapSize = "256m" + maxHeapSize = "1g" } withType().configureEach { options.compilerArgs.addAll(arrayOf("-Xlint:all", "-Werror", "-Xlint:-classfile", "-Xlint:-processing", "-Xlint:-try")) @@ -141,6 +140,10 @@ subprojects { isIncludeNoLocationClasses = true excludes = listOf("jdk.internal.*") } + + // Cap JVM args per test + minHeapSize = "256m" + maxHeapSize = "1g" } } } diff --git a/sentry-android-core/build.gradle.kts b/sentry-android-core/build.gradle.kts index ffd42c7d4d..097ceeaade 100644 --- a/sentry-android-core/build.gradle.kts +++ b/sentry-android-core/build.gradle.kts @@ -70,6 +70,8 @@ tasks.withType().configureEach { } } +tasks.withType().configureEach {} + dependencies { api(projects.sentry) compileOnly(libs.jetbrains.annotations) diff --git a/sentry-android-replay/build.gradle.kts b/sentry-android-replay/build.gradle.kts index 60d38c0ae0..cf6514d8e2 100644 --- a/sentry-android-replay/build.gradle.kts +++ b/sentry-android-replay/build.gradle.kts @@ -99,3 +99,9 @@ tasks.withType().configureEach { tasks.withType>().configureEach { compilerOptions.freeCompilerArgs.add("-opt-in=androidx.compose.ui.ExperimentalComposeUiApi") } + +tasks.withType().configureEach { + // Cap JVM args per test + minHeapSize = "256m" + maxHeapSize = "1g" +} diff --git a/sentry-samples/sentry-samples-console-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-console-opentelemetry-noagent/build.gradle.kts index f5d14dc2c3..07e1a4b903 100644 --- a/sentry-samples/sentry-samples-console-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-console-opentelemetry-noagent/build.gradle.kts @@ -73,12 +73,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-console-otlp/build.gradle.kts b/sentry-samples/sentry-samples-console-otlp/build.gradle.kts index 483f6bea79..f834d0bb50 100644 --- a/sentry-samples/sentry-samples-console-otlp/build.gradle.kts +++ b/sentry-samples/sentry-samples-console-otlp/build.gradle.kts @@ -76,12 +76,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-console/build.gradle.kts b/sentry-samples/sentry-samples-console/build.gradle.kts index 79878ab9a0..3a118b9fb8 100644 --- a/sentry-samples/sentry-samples-console/build.gradle.kts +++ b/sentry-samples/sentry-samples-console/build.gradle.kts @@ -77,12 +77,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-jul/build.gradle.kts b/sentry-samples/sentry-samples-jul/build.gradle.kts index 01e6a95f13..1bbff8a356 100644 --- a/sentry-samples/sentry-samples-jul/build.gradle.kts +++ b/sentry-samples/sentry-samples-jul/build.gradle.kts @@ -68,12 +68,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-log4j2/build.gradle.kts b/sentry-samples/sentry-samples-log4j2/build.gradle.kts index 005e111652..8282ecbcf9 100644 --- a/sentry-samples/sentry-samples-log4j2/build.gradle.kts +++ b/sentry-samples/sentry-samples-log4j2/build.gradle.kts @@ -74,12 +74,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-logback/build.gradle.kts b/sentry-samples/sentry-samples-logback/build.gradle.kts index 05f96c346a..a410b5dec9 100644 --- a/sentry-samples/sentry-samples-logback/build.gradle.kts +++ b/sentry-samples/sentry-samples-logback/build.gradle.kts @@ -68,12 +68,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-7/build.gradle.kts b/sentry-samples/sentry-samples-spring-7/build.gradle.kts index e3300cd284..6d8658e963 100644 --- a/sentry-samples/sentry-samples-spring-7/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-7/build.gradle.kts @@ -79,12 +79,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts index 64ef57692c..84eaad8bc6 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts @@ -92,12 +92,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts index e12b960e0f..5b638621c0 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts @@ -120,12 +120,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts index 7329d5cc0e..0731383b2d 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts @@ -93,12 +93,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts index a311b8a972..535690c780 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts @@ -72,12 +72,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts index cdb33ecc67..227fe94efc 100644 --- a/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts @@ -94,12 +94,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts index ed0af32b03..cf62a6811d 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts @@ -93,12 +93,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts index d3d66c469b..e28d56b90c 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts @@ -127,12 +127,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts index ae3ef70ad7..5694a4d78c 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts @@ -97,16 +97,10 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } -tasks.named("test").configure { +tasks.named("test").configure { require(this is Test) filter { excludeTestsMatching("io.sentry.systemtest.*") } 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 f1665f513d..734da977d0 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 @@ -115,12 +115,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } 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 7c84875ca0..286ebb2781 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts @@ -135,12 +135,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts index d5b0454357..161d196055 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts @@ -69,17 +69,7 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } -tasks.named("test").configure { - require(this is Test) - - filter { excludeTestsMatching("io.sentry.systemtest.*") } -} +tasks.named("test").configure { filter { excludeTestsMatching("io.sentry.systemtest.*") } } 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 b10b30737d..38eed56d71 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts @@ -87,12 +87,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts index cc535c725e..d4bbba68ae 100644 --- a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts @@ -114,12 +114,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts index 319431e71d..2dcd526e7f 100644 --- a/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts @@ -81,16 +81,10 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } -tasks.named("test").configure { +tasks.named("test").configure { require(this is Test) filter { excludeTestsMatching("io.sentry.systemtest.*") } diff --git a/sentry-samples/sentry-samples-spring/build.gradle.kts b/sentry-samples/sentry-samples-spring/build.gradle.kts index 446baf3a69..bdf9694de1 100644 --- a/sentry-samples/sentry-samples-spring/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring/build.gradle.kts @@ -80,12 +80,6 @@ tasks.register("systemTest").configure { outputs.upToDateWhen { false } - maxParallelForks = 1 - - // Cap JVM args per test - minHeapSize = "128m" - maxHeapSize = "1g" - filter { includeTestsMatching("io.sentry.systemtest*") } } diff --git a/sentry-spring-boot-4/build.gradle.kts b/sentry-spring-boot-4/build.gradle.kts index 3b0b3be863..66c6d0460d 100644 --- a/sentry-spring-boot-4/build.gradle.kts +++ b/sentry-spring-boot-4/build.gradle.kts @@ -170,3 +170,9 @@ kotlin { freeCompilerArgs.add("-Xskip-metadata-version-check") } } + +tasks.withType().configureEach { + // Cap JVM args per test + minHeapSize = "256m" + maxHeapSize = "1g" +} diff --git a/sentry-spring-boot/build.gradle.kts b/sentry-spring-boot/build.gradle.kts index 74f5d7c87b..476ed388e3 100644 --- a/sentry-spring-boot/build.gradle.kts +++ b/sentry-spring-boot/build.gradle.kts @@ -136,3 +136,9 @@ tasks.jar { ) } } + +tasks.withType().configureEach { + // Cap JVM args per test + minHeapSize = "256m" + maxHeapSize = "1g" +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 4b1c606bc6..f8c7dbbf35 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -7,6 +7,18 @@ pluginManagement { } } +plugins { + id("com.gradle.develocity") version "4.4.1" +} + +develocity { + buildScan { + termsOfUseUrl.set("https://gradle.com/help/legal-terms-of-use") + termsOfUseAgree.set("yes") + publishing.onlyIf { true } + } +} + dependencyResolutionManagement { repositories { google()