Extract file generation from functional tests
This commit is contained in:
		
							parent
							
								
									6376d197c6
								
							
						
					
					
						commit
						52814a5b7b
					
				
					 2 changed files with 120 additions and 106 deletions
				
			
		
							
								
								
									
										116
									
								
								src/test/groovy/net/fabricmc/loom/BuildUtils.groovy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								src/test/groovy/net/fabricmc/loom/BuildUtils.groovy
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,116 @@ | ||||||
|  | package net.fabricmc.loom | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Created by Mitchell Skaggs on 6/12/2019. | ||||||
|  |  */ | ||||||
|  | static String genBuildFile() { | ||||||
|  | 	""" | ||||||
|  | plugins { | ||||||
|  | 	id 'fabric-loom' | ||||||
|  | 	id 'maven-publish' | ||||||
|  | } | ||||||
|  | sourceCompatibility = JavaVersion.VERSION_1_8 | ||||||
|  | targetCompatibility = JavaVersion.VERSION_1_8 | ||||||
|  | 
 | ||||||
|  | archivesBaseName = project.archives_base_name | ||||||
|  | version = project.mod_version | ||||||
|  | group = project.maven_group | ||||||
|  | 
 | ||||||
|  | minecraft { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | dependencies { | ||||||
|  | 	//to change the versions see the gradle.properties file | ||||||
|  | 	minecraft "com.mojang:minecraft:\${project.minecraft_version}" | ||||||
|  | 	mappings "net.fabricmc:yarn:\${project.yarn_mappings}" | ||||||
|  | 	modCompile "net.fabricmc:fabric-loader:\${project.loader_version}" | ||||||
|  | 
 | ||||||
|  | 	// Fabric API. This is technically optional, but you probably want it anyway. | ||||||
|  | 	modCompile "net.fabricmc.fabric-api:fabric-api:\${project.fabric_version}" | ||||||
|  | 
 | ||||||
|  | 	// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. | ||||||
|  | 	// You may need to force-disable transitiveness on them. | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | processResources { | ||||||
|  | 	inputs.property "version", project.version | ||||||
|  | 
 | ||||||
|  | 	from(sourceSets.main.resources.srcDirs) { | ||||||
|  | 		include "fabric.mod.json" | ||||||
|  | 		expand "version": project.version | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	from(sourceSets.main.resources.srcDirs) { | ||||||
|  | 		exclude "fabric.mod.json" | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ensure that the encoding is set to UTF-8, no matter what the system default is | ||||||
|  | // this fixes some edge cases with special characters not displaying correctly | ||||||
|  | // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html | ||||||
|  | tasks.withType(JavaCompile) { | ||||||
|  | 	options.encoding = "UTF-8" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task | ||||||
|  | // if it is present. | ||||||
|  | // If you remove this task, sources will not be generated. | ||||||
|  | task sourcesJar(type: Jar, dependsOn: classes) { | ||||||
|  | 	classifier = "sources" | ||||||
|  | 	from sourceSets.main.allSource | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | jar { | ||||||
|  | 	from "LICENSE" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // configure the maven publication | ||||||
|  | publishing { | ||||||
|  | 	publications { | ||||||
|  | 		mavenJava(MavenPublication) { | ||||||
|  | 			// add all the jars that should be included when publishing to maven | ||||||
|  | 			artifact(jar) { | ||||||
|  | 				builtBy remapJar | ||||||
|  | 			} | ||||||
|  | 			artifact(sourcesJar) { | ||||||
|  | 				builtBy remapSourcesJar | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// select the repositories you want to publish to | ||||||
|  | 	repositories { | ||||||
|  | 		// uncomment to publish to the local maven | ||||||
|  | 		// mavenLocal() | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | """ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static String genPropsFile(String mcVersion, String yarnVersion, String loaderVersion, String fabricVersion) { | ||||||
|  | 	""" | ||||||
|  | org.gradle.caching=true | ||||||
|  | org.gradle.parallel=true | ||||||
|  | 
 | ||||||
|  | # Fabric Properties | ||||||
|  | # check these on https://fabricmc.net/use | ||||||
|  | minecraft_version=$mcVersion | ||||||
|  | yarn_mappings=$yarnVersion | ||||||
|  | loader_version=$loaderVersion | ||||||
|  | 
 | ||||||
|  | # Mod Properties | ||||||
|  | mod_version = 1.0.0 | ||||||
|  | maven_group = net.fabricmc | ||||||
|  | archives_base_name = fabric-example-mod | ||||||
|  | 
 | ||||||
|  | # Dependencies | ||||||
|  | # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric | ||||||
|  | fabric_version=$fabricVersion | ||||||
|  | """ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static String genSettingsFile(String name) { | ||||||
|  | 	""" | ||||||
|  | rootProject.name = '$name' | ||||||
|  | """ | ||||||
|  | } | ||||||
|  | @ -6,6 +6,7 @@ import org.junit.rules.TemporaryFolder | ||||||
| import spock.lang.Specification | import spock.lang.Specification | ||||||
| import spock.lang.Unroll | import spock.lang.Unroll | ||||||
| 
 | 
 | ||||||
|  | import static net.fabricmc.loom.BuildUtils.* | ||||||
| import static org.gradle.testkit.runner.TaskOutcome.SUCCESS | import static org.gradle.testkit.runner.TaskOutcome.SUCCESS | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  | @ -27,111 +28,9 @@ class EmptyBuildFunctionalTest extends Specification { | ||||||
| 	@Unroll | 	@Unroll | ||||||
| 	def "empty build succeeds using Minecraft #mcVersion"() { | 	def "empty build succeeds using Minecraft #mcVersion"() { | ||||||
| 		given: | 		given: | ||||||
| 		settingsFile << """ | 		settingsFile << genSettingsFile("empty-build-functional-test") | ||||||
| rootProject.name = 'empty-build-functional-test' | 		propsFile << genPropsFile(mcVersion, yarnVersion, loaderVersion, fabricVersion) | ||||||
| """ | 		buildFile << genBuildFile() | ||||||
| 
 |  | ||||||
| 		propsFile << """ |  | ||||||
| org.gradle.caching=true |  | ||||||
| org.gradle.parallel=true |  | ||||||
| 
 |  | ||||||
| # Fabric Properties |  | ||||||
| # check these on https://fabricmc.net/use |  | ||||||
| minecraft_version=$mcVersion |  | ||||||
| yarn_mappings=$yarnVersion |  | ||||||
| loader_version=$loaderVersion |  | ||||||
| 
 |  | ||||||
| # Mod Properties |  | ||||||
| mod_version = 1.0.0 |  | ||||||
| maven_group = net.fabricmc |  | ||||||
| archives_base_name = fabric-example-mod |  | ||||||
| 
 |  | ||||||
| # Dependencies |  | ||||||
| # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric |  | ||||||
| fabric_version=$fabricVersion |  | ||||||
| """ |  | ||||||
| 
 |  | ||||||
| 		buildFile << """ |  | ||||||
| plugins { |  | ||||||
| 	id 'fabric-loom' |  | ||||||
| 	id 'maven-publish' |  | ||||||
| } |  | ||||||
| sourceCompatibility = JavaVersion.VERSION_1_8 |  | ||||||
| targetCompatibility = JavaVersion.VERSION_1_8 |  | ||||||
| 
 |  | ||||||
| archivesBaseName = project.archives_base_name |  | ||||||
| version = project.mod_version |  | ||||||
| group = project.maven_group |  | ||||||
| 
 |  | ||||||
| minecraft { |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| dependencies { |  | ||||||
| 	//to change the versions see the gradle.properties file |  | ||||||
| 	minecraft "com.mojang:minecraft:\${project.minecraft_version}" |  | ||||||
| 	mappings "net.fabricmc:yarn:\${project.yarn_mappings}" |  | ||||||
| 	modCompile "net.fabricmc:fabric-loader:\${project.loader_version}" |  | ||||||
| 
 |  | ||||||
| 	// Fabric API. This is technically optional, but you probably want it anyway. |  | ||||||
| 	modCompile "net.fabricmc.fabric-api:fabric-api:\${project.fabric_version}" |  | ||||||
| 
 |  | ||||||
| 	// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. |  | ||||||
| 	// You may need to force-disable transitiveness on them. |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| processResources { |  | ||||||
| 	inputs.property "version", project.version |  | ||||||
| 
 |  | ||||||
| 	from(sourceSets.main.resources.srcDirs) { |  | ||||||
| 		include "fabric.mod.json" |  | ||||||
| 		expand "version": project.version |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	from(sourceSets.main.resources.srcDirs) { |  | ||||||
| 		exclude "fabric.mod.json" |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ensure that the encoding is set to UTF-8, no matter what the system default is |  | ||||||
| // this fixes some edge cases with special characters not displaying correctly |  | ||||||
| // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html |  | ||||||
| tasks.withType(JavaCompile) { |  | ||||||
| 	options.encoding = "UTF-8" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task |  | ||||||
| // if it is present. |  | ||||||
| // If you remove this task, sources will not be generated. |  | ||||||
| task sourcesJar(type: Jar, dependsOn: classes) { |  | ||||||
| 	classifier = "sources" |  | ||||||
| 	from sourceSets.main.allSource |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| jar { |  | ||||||
| 	from "LICENSE" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // configure the maven publication |  | ||||||
| publishing { |  | ||||||
| 	publications { |  | ||||||
| 		mavenJava(MavenPublication) { |  | ||||||
| 			// add all the jars that should be included when publishing to maven |  | ||||||
| 			artifact(jar) { |  | ||||||
| 				builtBy remapJar |  | ||||||
| 			} |  | ||||||
| 			artifact(sourcesJar) { |  | ||||||
| 				builtBy remapSourcesJar |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	// select the repositories you want to publish to |  | ||||||
| 	repositories { |  | ||||||
| 		// uncomment to publish to the local maven |  | ||||||
| 		// mavenLocal() |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| """ |  | ||||||
| 
 | 
 | ||||||
| 		when: | 		when: | ||||||
| 		def result = GradleRunner.create() | 		def result = GradleRunner.create() | ||||||
|  | @ -141,7 +40,6 @@ publishing { | ||||||
| 				.build() | 				.build() | ||||||
| 
 | 
 | ||||||
| 		then: | 		then: | ||||||
| 		//result.output.contains('Hello world!') |  | ||||||
| 		result.task(":build").outcome == SUCCESS | 		result.task(":build").outcome == SUCCESS | ||||||
| 
 | 
 | ||||||
| 		where: | 		where: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue