Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
9bdf4a75
Commit
9bdf4a75
authored
Mar 31, 2020
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Configure Gradle's Test Retry plugin
Closes gh-20144
parent
33e6ab7a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
3 deletions
+35
-3
build.gradle
buildSrc/build.gradle
+1
-0
ConventionsPlugin.java
...ava/org/springframework/boot/build/ConventionsPlugin.java
+10
-1
ConventionsPluginTests.java
...rg/springframework/boot/build/ConventionsPluginTests.java
+24
-2
No files found.
buildSrc/build.gradle
View file @
9bdf4a75
...
@@ -20,6 +20,7 @@ dependencies {
...
@@ -20,6 +20,7 @@ dependencies {
implementation
(
"org.apache.maven:maven-embedder:3.6.2"
)
implementation
(
"org.apache.maven:maven-embedder:3.6.2"
)
implementation
(
"org.asciidoctor:asciidoctor-gradle-jvm:3.0.0"
)
implementation
(
"org.asciidoctor:asciidoctor-gradle-jvm:3.0.0"
)
implementation
(
"org.asciidoctor:asciidoctor-gradle-jvm-pdf:3.0.0"
)
implementation
(
"org.asciidoctor:asciidoctor-gradle-jvm-pdf:3.0.0"
)
implementation
(
"org.gradle:test-retry-gradle-plugin:1.1.3"
)
implementation
(
"org.springframework:spring-core:5.2.2.RELEASE"
)
implementation
(
"org.springframework:spring-core:5.2.2.RELEASE"
)
implementation
(
"org.springframework:spring-web:5.2.2.RELEASE"
)
implementation
(
"org.springframework:spring-web:5.2.2.RELEASE"
)
implementation
(
"com.google.code.gson:gson:2.8.5"
)
implementation
(
"com.google.code.gson:gson:2.8.5"
)
...
...
buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java
View file @
9bdf4a75
...
@@ -56,6 +56,8 @@ import org.gradle.api.tasks.bundling.Jar;
...
@@ -56,6 +56,8 @@ import org.gradle.api.tasks.bundling.Jar;
import
org.gradle.api.tasks.compile.JavaCompile
;
import
org.gradle.api.tasks.compile.JavaCompile
;
import
org.gradle.api.tasks.javadoc.Javadoc
;
import
org.gradle.api.tasks.javadoc.Javadoc
;
import
org.gradle.api.tasks.testing.Test
;
import
org.gradle.api.tasks.testing.Test
;
import
org.gradle.testretry.TestRetryPlugin
;
import
org.gradle.testretry.TestRetryTaskExtension
;
import
org.springframework.boot.build.testing.TestFailuresPlugin
;
import
org.springframework.boot.build.testing.TestFailuresPlugin
;
import
org.springframework.util.FileCopyUtils
;
import
org.springframework.util.FileCopyUtils
;
...
@@ -71,7 +73,8 @@ import org.springframework.util.FileCopyUtils;
...
@@ -71,7 +73,8 @@ import org.springframework.util.FileCopyUtils;
* <ul>
* <ul>
* <li>{@code sourceCompatibility} is set to {@code 1.8}
* <li>{@code sourceCompatibility} is set to {@code 1.8}
* <li>{@link SpringJavaFormatPlugin Spring Java Format}, {@link CheckstylePlugin
* <li>{@link SpringJavaFormatPlugin Spring Java Format}, {@link CheckstylePlugin
* Checkstyle}, and {@link TestFailuresPlugin Test Failures} plugins are applied
* Checkstyle}, {@link TestFailuresPlugin Test Failures}, and {@link TestRetryPlugin Test
* Retry} plugins are applied
* <li>{@link Test} tasks are configured to use JUnit Platform and use a max heap of 1024M
* <li>{@link Test} tasks are configured to use JUnit Platform and use a max heap of 1024M
* <li>{@link JavaCompile}, {@link Javadoc}, and {@link FormatTask} tasks are configured
* <li>{@link JavaCompile}, {@link Javadoc}, and {@link FormatTask} tasks are configured
* to use UTF-8 encoding
* to use UTF-8 encoding
...
@@ -139,10 +142,16 @@ public class ConventionsPlugin implements Plugin<Project> {
...
@@ -139,10 +142,16 @@ public class ConventionsPlugin implements Plugin<Project> {
javadoc
.
getOptions
().
source
(
"1.8"
).
encoding
(
"UTF-8"
);
javadoc
.
getOptions
().
source
(
"1.8"
).
encoding
(
"UTF-8"
);
withOptionalBuildJavaHome
(
project
,
(
javaHome
)
->
javadoc
.
setExecutable
(
javaHome
+
"/bin/javadoc"
));
withOptionalBuildJavaHome
(
project
,
(
javaHome
)
->
javadoc
.
setExecutable
(
javaHome
+
"/bin/javadoc"
));
});
});
project
.
getPlugins
().
apply
(
TestRetryPlugin
.
class
);
project
.
getTasks
().
withType
(
Test
.
class
,
(
test
)
->
{
project
.
getTasks
().
withType
(
Test
.
class
,
(
test
)
->
{
withOptionalBuildJavaHome
(
project
,
(
javaHome
)
->
test
.
setExecutable
(
javaHome
+
"/bin/java"
));
withOptionalBuildJavaHome
(
project
,
(
javaHome
)
->
test
.
setExecutable
(
javaHome
+
"/bin/java"
));
test
.
useJUnitPlatform
();
test
.
useJUnitPlatform
();
test
.
setMaxHeapSize
(
"1024M"
);
test
.
setMaxHeapSize
(
"1024M"
);
project
.
getPlugins
().
withType
(
TestRetryPlugin
.
class
,
(
testRetryPlugin
)
->
{
TestRetryTaskExtension
testRetry
=
test
.
getExtensions
().
getByType
(
TestRetryTaskExtension
.
class
);
testRetry
.
getFailOnPassedAfterRetry
().
set
(
true
);
testRetry
.
getMaxRetries
().
set
(
3
);
});
});
});
project
.
getTasks
().
withType
(
Jar
.
class
,
(
jar
)
->
{
project
.
getTasks
().
withType
(
Jar
.
class
,
(
jar
)
->
{
project
.
afterEvaluate
((
evaluated
)
->
{
project
.
afterEvaluate
((
evaluated
)
->
{
...
...
buildSrc/src/test/java/org/springframework/boot/build/ConventionsPluginTests.java
View file @
9bdf4a75
...
@@ -24,6 +24,7 @@ import java.io.PrintWriter;
...
@@ -24,6 +24,7 @@ import java.io.PrintWriter;
import
java.util.jar.JarEntry
;
import
java.util.jar.JarEntry
;
import
java.util.jar.JarFile
;
import
java.util.jar.JarFile
;
import
org.gradle.testkit.runner.BuildResult
;
import
org.gradle.testkit.runner.GradleRunner
;
import
org.gradle.testkit.runner.GradleRunner
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
...
@@ -74,8 +75,29 @@ class ConventionsPluginTests {
...
@@ -74,8 +75,29 @@ class ConventionsPluginTests {
}
}
}
}
private
void
runGradle
(
String
...
args
)
{
@Test
GradleRunner
.
create
().
withProjectDir
(
this
.
projectDir
).
withArguments
(
args
).
withPluginClasspath
().
build
();
void
testRetryIsConfigured
()
throws
IOException
{
try
(
PrintWriter
out
=
new
PrintWriter
(
new
FileWriter
(
this
.
buildFile
)))
{
out
.
println
(
"plugins {"
);
out
.
println
(
" id 'java'"
);
out
.
println
(
" id 'org.springframework.boot.conventions'"
);
out
.
println
(
"}"
);
out
.
println
(
"description 'Test'"
);
out
.
println
(
"task retryConfig {"
);
out
.
println
(
" doLast {"
);
out
.
println
(
" test.retry {"
);
out
.
println
(
" println \"maxRetries: ${maxRetries.get()}\""
);
out
.
println
(
" println \"failOnPassedAfterRetry: ${failOnPassedAfterRetry.get()}\""
);
out
.
println
(
" }"
);
out
.
println
(
" }"
);
out
.
println
(
"}"
);
}
assertThat
(
runGradle
(
"retryConfig"
,
"--stacktrace"
).
getOutput
()).
contains
(
"maxRetries: 3"
)
.
contains
(
"failOnPassedAfterRetry: true"
);
}
private
BuildResult
runGradle
(
String
...
args
)
{
return
GradleRunner
.
create
().
withProjectDir
(
this
.
projectDir
).
withArguments
(
args
).
withPluginClasspath
().
build
();
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment