diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 7fd941163..689f9bf76 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -17,6 +17,7 @@ jobs: with: distribution: 'temurin' java-version: '21' + - uses: gradle/actions/setup-gradle@v6 - name: Build with Gradle run: ./gradlew build - name: Upload Release Assets @@ -77,8 +78,9 @@ jobs: with: distribution: 'temurin' java-version: '21' + - uses: gradle/actions/setup-gradle@v6 - name: Build with Gradle - run: ./gradlew build + run: ./gradlew build --max-workers=2 - name: Upload coverage to Teamscale if: always() && github.event_name == 'push' uses: cqse/teamscale-upload-action@v9.2.1 diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index cbaa792a0..3a91ed04d 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -9,6 +9,7 @@ repositories { dependencies { implementation(plugin(libs.plugins.shadow)) implementation(plugin(libs.plugins.kotlinJvm)) + implementation(plugin(libs.plugins.testRetry)) implementation(libs.asm.core) implementation(libs.asm.commons) diff --git a/buildSrc/src/main/kotlin/com.teamscale.java-convention.gradle.kts b/buildSrc/src/main/kotlin/com.teamscale.java-convention.gradle.kts index 9d0d0ebfc..022c1c387 100644 --- a/buildSrc/src/main/kotlin/com.teamscale.java-convention.gradle.kts +++ b/buildSrc/src/main/kotlin/com.teamscale.java-convention.gradle.kts @@ -1,7 +1,9 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat +import org.gradle.internal.os.OperatingSystem plugins { java + id("org.gradle.test-retry") } group = "com.teamscale" @@ -26,6 +28,16 @@ tasks.test { excludeEngines("teamscale-test-impacted") } testLogging.exceptionFormat = TestExceptionFormat.FULL + if (OperatingSystem.current().isWindows) { + maxHeapSize = "1g" + } + if (System.getenv("CI") == "true") { + retry { + maxRetries = 2 + maxFailures = 5 + failOnPassedAfterRetry = false + } + } } // Workaround until https://github.com/gradle/gradle/issues/15383 is fixed diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1deda1a14..0385440a6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -91,3 +91,4 @@ shadow = { id = "com.gradleup.shadow", version = "9.4.1" } oci = { id = "io.github.sgtsilvio.gradle.oci", version = "0.27.0" } kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version = "2.3.21" } jlink = { id = "org.beryx.jlink", version = "4.0.0" } +testRetry = { id = "org.gradle.test-retry", version = "1.6.2" } diff --git a/teamscale-gradle-plugin/build.gradle.kts b/teamscale-gradle-plugin/build.gradle.kts index 4246781a3..08ac021c3 100644 --- a/teamscale-gradle-plugin/build.gradle.kts +++ b/teamscale-gradle-plugin/build.gradle.kts @@ -1,7 +1,6 @@ import org.gradle.plugin.compatibility.compatibility import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.KotlinVersion -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { `java-gradle-plugin` @@ -16,7 +15,7 @@ tasks.compileJava { options.release = 11 } -tasks.withType { +tasks.compileKotlin { compilerOptions { jvmTarget = JvmTarget.JVM_11 // Needed to support older Gradle versions