Polish configuration related to predictive test selection
Most notably, this commit splits the tests that use Spring REST Docs out into a separate task for which predictive test selection is disabled. This allows it to be cached and use Gradle's built-in up-to-date checking, thereby avoiding the generation of new snippets and the need to then run the asciidoctor and asciidoctorPdf tasks. It also updates spring-boot-smoke-test-junit-vintage to disable predictive test selection so that we can continue to assert that the some tests were executed. See gh-35869
This commit is contained in:
		
							parent
							
								
									27b8ec8a3d
								
							
						
					
					
						commit
						7d07c0d09c
					
				| 
						 | 
				
			
			@ -190,9 +190,7 @@ class JavaConventions {
 | 
			
		|||
		if (isPredictiveTestSelectionEnabled()) {
 | 
			
		||||
			PredictiveTestSelectionExtension predictiveTestSelection = test.getExtensions()
 | 
			
		||||
				.getByType(PredictiveTestSelectionExtension.class);
 | 
			
		||||
			predictiveTestSelection.getEnabled().set(true);
 | 
			
		||||
			predictiveTestSelection.mustRun((mustRun) -> mustRun.getIncludeClasses()
 | 
			
		||||
				.add("org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.*"));
 | 
			
		||||
			predictiveTestSelection.getEnabled().convention(true);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -196,26 +196,10 @@ dependencies {
 | 
			
		|||
	testRuntimeOnly("org.springframework.security:spring-security-saml2-service-provider")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
test {
 | 
			
		||||
	outputs.dir("${buildDir}/generated-snippets")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
task dependencyVersions(type: org.springframework.boot.build.constraints.ExtractVersionConstraints) {
 | 
			
		||||
	enforcedPlatform(":spring-boot-project:spring-boot-dependencies")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
 | 
			
		||||
	dependsOn dependencyVersions
 | 
			
		||||
	doFirst {
 | 
			
		||||
		def versionConstraints = dependencyVersions.versionConstraints
 | 
			
		||||
		def integrationVersion = versionConstraints["org.springframework.integration:spring-integration-core"]
 | 
			
		||||
		def integrationDocs = String.format("https://docs.spring.io/spring-integration/docs/%s/reference/html/", integrationVersion)
 | 
			
		||||
		attributes "spring-integration-docs": integrationDocs
 | 
			
		||||
	}
 | 
			
		||||
	dependsOn test
 | 
			
		||||
	inputs.dir("${buildDir}/generated-snippets").withPathSensitivity(PathSensitivity.RELATIVE).withPropertyName("generatedSnippets")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
asciidoctor {
 | 
			
		||||
	sources {
 | 
			
		||||
		include "index.adoc"
 | 
			
		||||
| 
						 | 
				
			
			@ -243,3 +227,31 @@ task zip(type: Zip) {
 | 
			
		|||
artifacts {
 | 
			
		||||
	documentation zip
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tasks.named("test") {
 | 
			
		||||
	filter {
 | 
			
		||||
		excludeTestsMatching("org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.*")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
def documentationTest = tasks.register("documentationTest", Test) {
 | 
			
		||||
	filter {
 | 
			
		||||
		includeTestsMatching("org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.*")
 | 
			
		||||
	}
 | 
			
		||||
	outputs.dir("${buildDir}/generated-snippets")
 | 
			
		||||
	predictiveSelection {
 | 
			
		||||
		enabled = false
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
 | 
			
		||||
	dependsOn dependencyVersions
 | 
			
		||||
	doFirst {
 | 
			
		||||
		def versionConstraints = dependencyVersions.versionConstraints
 | 
			
		||||
		def integrationVersion = versionConstraints["org.springframework.integration:spring-integration-core"]
 | 
			
		||||
		def integrationDocs = String.format("https://docs.spring.io/spring-integration/docs/%s/reference/html/", integrationVersion)
 | 
			
		||||
		attributes "spring-integration-docs": integrationDocs
 | 
			
		||||
	}
 | 
			
		||||
	dependsOn documentationTest
 | 
			
		||||
	inputs.dir("${buildDir}/generated-snippets").withPathSensitivity(PathSensitivity.RELATIVE).withPropertyName("generatedSnippets")
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,4 +23,7 @@ test {
 | 
			
		|||
			}
 | 
			
		||||
	 	}
 | 
			
		||||
	}
 | 
			
		||||
	predictiveSelection {
 | 
			
		||||
		enabled = false
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue