diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 5f513070dbd..122a81a3150 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -28,11 +28,11 @@ dependencies { implementation(platform("org.springframework:spring-framework-bom:5.3.15")) implementation("com.diffplug.gradle:goomph:3.37.2") implementation("com.fasterxml.jackson.core:jackson-databind:2.11.4") + implementation("com.gradle:gradle-enterprise-gradle-plugin:3.12.1") implementation("com.tngtech.archunit:archunit:1.0.0") implementation("commons-codec:commons-codec:1.13") implementation("org.apache.maven:maven-embedder:3.6.2") implementation("org.asciidoctor:asciidoctor-gradle-jvm:3.3.2") - implementation("org.gradle:test-retry-gradle-plugin:1.4.1") implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}") implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable:${kotlinVersion}") implementation("org.springframework:spring-core") diff --git a/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java b/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java index 9e6809d6d4e..69fb9d65c9f 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import java.util.Set; import java.util.TreeMap; import java.util.stream.Collectors; +import com.gradle.enterprise.gradleplugin.testretry.TestRetryExtension; import io.spring.javaformat.gradle.SpringJavaFormatPlugin; import io.spring.javaformat.gradle.tasks.CheckFormat; import io.spring.javaformat.gradle.tasks.Format; @@ -46,8 +47,6 @@ import org.gradle.api.tasks.compile.JavaCompile; import org.gradle.api.tasks.javadoc.Javadoc; import org.gradle.api.tasks.testing.Test; import org.gradle.external.javadoc.CoreJavadocOptions; -import org.gradle.testretry.TestRetryPlugin; -import org.gradle.testretry.TestRetryTaskExtension; import org.springframework.boot.build.architecture.ArchitecturePlugin; import org.springframework.boot.build.classpath.CheckClasspathForProhibitedDependencies; @@ -164,16 +163,12 @@ class JavaConventions { test.setMaxHeapSize("1024M"); project.getTasks().withType(Checkstyle.class, test::mustRunAfter); project.getTasks().withType(CheckFormat.class, test::mustRunAfter); + TestRetryExtension testRetry = test.getExtensions().getByType(TestRetryExtension.class); + testRetry.getFailOnPassedAfterRetry().set(true); + testRetry.getMaxRetries().set(isCi() ? 3 : 0); }); project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> project.getDependencies() .add(JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME, "org.junit.platform:junit-platform-launcher")); - project.getPlugins().apply(TestRetryPlugin.class); - project.getTasks().withType(Test.class, - (test) -> project.getPlugins().withType(TestRetryPlugin.class, (testRetryPlugin) -> { - TestRetryTaskExtension testRetry = test.getExtensions().getByType(TestRetryTaskExtension.class); - testRetry.getFailOnPassedAfterRetry().set(true); - testRetry.getMaxRetries().set(isCi() ? 3 : 0); - })); } private boolean isCi() { diff --git a/buildSrc/src/test/java/org/springframework/boot/build/ConventionsPluginTests.java b/buildSrc/src/test/java/org/springframework/boot/build/ConventionsPluginTests.java index a7f9fbf86dd..ad76b0cb7ad 100644 --- a/buildSrc/src/test/java/org/springframework/boot/build/ConventionsPluginTests.java +++ b/buildSrc/src/test/java/org/springframework/boot/build/ConventionsPluginTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -54,6 +54,9 @@ class ConventionsPluginTests { this.buildFile = new File(this.projectDir, "build.gradle"); File settingsFile = new File(this.projectDir, "settings.gradle"); try (PrintWriter out = new PrintWriter(new FileWriter(settingsFile))) { + out.println("plugins {"); + out.println(" id 'com.gradle.enterprise'"); + out.println("}"); out.println("include ':spring-boot-project:spring-boot-parent'"); } File springBootParent = new File(this.projectDir, "spring-boot-project/spring-boot-parent/build.gradle"); @@ -175,8 +178,7 @@ class ConventionsPluginTests { out.println("description 'Test'"); out.println("task retryConfig {"); out.println(" doLast {"); - out.println(" println \"Retry plugin applied: ${plugins.hasPlugin('org.gradle.test-retry')}\""); - out.println(" test.retry {"); + out.println(" test.retry {"); out.println(" println \"maxRetries: ${maxRetries.get()}\""); out.println(" println \"failOnPassedAfterRetry: ${failOnPassedAfterRetry.get()}\""); out.println(" }"); @@ -184,8 +186,7 @@ class ConventionsPluginTests { out.println("}"); } assertThat(runGradle(Collections.singletonMap("CI", "true"), "retryConfig", "--stacktrace").getOutput()) - .contains("Retry plugin applied: true").contains("maxRetries: 3") - .contains("failOnPassedAfterRetry: true"); + .contains("maxRetries: 3").contains("failOnPassedAfterRetry: true"); } @Test @@ -198,8 +199,7 @@ class ConventionsPluginTests { out.println("description 'Test'"); out.println("task retryConfig {"); out.println(" doLast {"); - out.println(" println \"Retry plugin applied: ${plugins.hasPlugin('org.gradle.test-retry')}\""); - out.println(" test.retry {"); + out.println(" test.retry {"); out.println(" println \"maxRetries: ${maxRetries.get()}\""); out.println(" println \"failOnPassedAfterRetry: ${failOnPassedAfterRetry.get()}\""); out.println(" }"); @@ -207,8 +207,7 @@ class ConventionsPluginTests { out.println("}"); } assertThat(runGradle(Collections.singletonMap("CI", "local"), "retryConfig", "--stacktrace").getOutput()) - .contains("Retry plugin applied: true").contains("maxRetries: 0") - .contains("failOnPassedAfterRetry: true"); + .contains("maxRetries: 0").contains("failOnPassedAfterRetry: true"); } private BuildResult runGradle(String... args) { diff --git a/settings.gradle b/settings.gradle index a0b0266c552..8cd0124f213 100644 --- a/settings.gradle +++ b/settings.gradle @@ -22,7 +22,7 @@ pluginManagement { } plugins { - id "com.gradle.enterprise" version "3.11.2" + id "com.gradle.enterprise" version "3.12.1" id "io.spring.ge.conventions" version "0.0.12" }