mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 08:25:31 +00:00
Translate test.sh into a gradle task.
Signed-off-by: solonovamax <solonovamax@12oclockpoint.com>
This commit is contained in:
parent
2ee4db8487
commit
d7af43047d
5
.gitignore
vendored
5
.gitignore
vendored
@ -130,4 +130,7 @@ fabric.properties
|
|||||||
build
|
build
|
||||||
/target/
|
/target/
|
||||||
|
|
||||||
.idea/sonarlint/**
|
.idea/sonarlint/**
|
||||||
|
.idea/codeStyles/**
|
||||||
|
.idea/**.xml
|
||||||
|
.idea/modules/**.iml
|
125
build.gradle.kts
125
build.gradle.kts
@ -1,7 +1,10 @@
|
|||||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
|
import java.net.URL
|
||||||
buildDir = file("target")
|
import java.nio.channels.Channels
|
||||||
|
import java.nio.file.Files
|
||||||
|
import java.nio.file.Paths
|
||||||
|
import java.nio.file.StandardCopyOption
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
java
|
java
|
||||||
@ -12,41 +15,29 @@ repositories {
|
|||||||
flatDir {
|
flatDir {
|
||||||
dirs("lib")
|
dirs("lib")
|
||||||
}
|
}
|
||||||
maven {
|
maven { url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") }
|
||||||
url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
|
maven { url = uri("http://maven.enginehub.org/repo/") }
|
||||||
}
|
maven { url = uri("https://repo.codemc.org/repository/maven-public") }
|
||||||
maven {
|
maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
|
||||||
url = uri("http://maven.enginehub.org/repo/")
|
|
||||||
}
|
|
||||||
maven {
|
|
||||||
url = uri("https://repo.codemc.org/repository/maven-public")
|
|
||||||
}
|
|
||||||
maven {
|
|
||||||
url = uri("https://papermc.io/repo/repository/maven-public/")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
base {
|
|
||||||
libsDirName = "prod"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
|
|
||||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||||
targetCompatibility = JavaVersion.VERSION_1_8
|
targetCompatibility = JavaVersion.VERSION_1_8
|
||||||
}
|
}
|
||||||
|
|
||||||
val versionObj = Version("0", "0", "1", "dev.1")
|
val versionObj = Version("0", "0", "1", "dev.2")
|
||||||
version = versionObj
|
version = versionObj
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("org.jetbrains:annotations:20.1.0") // more recent.
|
compileOnly("org.spigotmc:spigot-api:1.16.2-R0.1-SNAPSHOT")
|
||||||
|
compileOnly("org.jetbrains:annotations:20.1.0") // more recent.
|
||||||
implementation("commons-io:commons-io:2.4")
|
implementation("commons-io:commons-io:2.4")
|
||||||
implementation(name = "Gaea-1.13.0", group = "")
|
implementation(name = "Gaea-1.13.0", group = "")
|
||||||
implementation("org.apache.commons:commons-imaging:1.0-alpha2")
|
implementation("org.apache.commons:commons-imaging:1.0-alpha2")
|
||||||
implementation("com.sk89q.worldedit:worldedit-bukkit:7.2.0-SNAPSHOT")
|
compileOnly("com.sk89q.worldedit:worldedit-bukkit:7.2.0-SNAPSHOT")
|
||||||
implementation("org.bstats:bstats-bukkit:1.7")
|
implementation("org.bstats:bstats-bukkit:1.7")
|
||||||
implementation("com.googlecode.json-simple:json-simple:1.1")
|
compileOnly("com.googlecode.json-simple:json-simple:1.1")
|
||||||
implementation(name = "parsii-1.2", group = "")
|
implementation(name = "parsii-1.2", group = "")
|
||||||
implementation("io.papermc:paperlib:1.0.5")
|
implementation("io.papermc:paperlib:1.0.5")
|
||||||
|
|
||||||
@ -57,33 +48,87 @@ dependencies {
|
|||||||
|
|
||||||
tasks.test {
|
tasks.test {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
|
|
||||||
maxHeapSize = "1G"
|
maxHeapSize = "1G"
|
||||||
ignoreFailures = false
|
ignoreFailures = false
|
||||||
failFast = true
|
failFast = true
|
||||||
maxParallelForks = 12
|
maxParallelForks = 12
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val testDir = "target/server/"
|
||||||
|
|
||||||
|
val setupServer = tasks.create("setupServer") {
|
||||||
|
dependsOn(tasks.shadowJar)
|
||||||
|
doFirst {
|
||||||
|
// clean
|
||||||
|
file("${testDir}/").deleteRecursively()
|
||||||
|
file("${testDir}/plugins").mkdirs()
|
||||||
|
|
||||||
|
// Downloading latest paper jar.
|
||||||
|
val paperUrl = URL("https://papermc.io/api/v1/paper/1.16.3/latest/download")
|
||||||
|
val paperReadableByteChannel = Channels.newChannel(paperUrl.openStream())
|
||||||
|
val paperFile = file("${testDir}/paper.jar")
|
||||||
|
val paperFileOutputStream = paperFile.outputStream()
|
||||||
|
val paperFileChannel = paperFileOutputStream.channel
|
||||||
|
paperFileChannel.transferFrom(paperReadableByteChannel, 0, Long.MAX_VALUE)
|
||||||
|
|
||||||
|
// Cloning test setup.
|
||||||
|
gitClone("https://github.com/PolyhedralDev/WorldGenTestServer")
|
||||||
|
// Copying plugins
|
||||||
|
Files.move(Paths.get("WorldGenTestServer/plugins"),
|
||||||
|
Paths.get("$testDir/plugins"),
|
||||||
|
StandardCopyOption.REPLACE_EXISTING)
|
||||||
|
// Copying config
|
||||||
|
val serverText = URL("https://raw.githubusercontent.com/PolyhedralDev/WorldGenTestServer/master/server.properties").readText()
|
||||||
|
file("${testDir}/server.properties").writeText(serverText)
|
||||||
|
val bukkitText = URL("https://raw.githubusercontent.com/PolyhedralDev/WorldGenTestServer/master/bukkit.yml").readText()
|
||||||
|
file("${testDir}/bukkit.yml").writeText(bukkitText.replace("\${world}", "world").replace("\${gen}", "Terra:DEFAULT"))
|
||||||
|
|
||||||
|
File("${testDir}/eula.txt").writeText("eula=true")
|
||||||
|
|
||||||
|
// Copy Terra into dir
|
||||||
|
copy {
|
||||||
|
from("${buildDir}/libs/Terra-${versionObj}.jar")
|
||||||
|
into("${testDir}/plugins/")
|
||||||
|
}
|
||||||
|
|
||||||
|
// clean up
|
||||||
|
file("WorldGenTestServer").deleteRecursively()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val testWithPaper = task<JavaExec>(name = "testWithPaper") {
|
||||||
|
dependsOn(setupServer)
|
||||||
|
main = "io.papermc.paperclip.Paperclip"
|
||||||
|
jvmArgs = listOf("-XX:+UseG1GC", "-XX:+ParallelRefProcEnabled", "-XX:MaxGCPauseMillis=200",
|
||||||
|
"-XX:+UnlockExperimentalVMOptions", "-XX:+DisableExplicitGC", "-XX:+AlwaysPreTouch",
|
||||||
|
"-XX:G1NewSizePercent=30", "-XX:G1MaxNewSizePercent=40", "-XX:G1HeapRegionSize=8M",
|
||||||
|
"-XX:G1ReservePercent=20", "-XX:G1HeapWastePercent=5", "-XX:G1MixedGCCountTarget=4",
|
||||||
|
"-XX:InitiatingHeapOccupancyPercent=15", "-XX:G1MixedGCLiveThresholdPercent=90",
|
||||||
|
"-XX:G1RSetUpdatingPauseTimePercent=5", "-XX:SurvivorRatio=32", "-XX:+PerfDisableSharedMem",
|
||||||
|
"-XX:MaxTenuringThreshold=1", "-Dusing.aikars.flags=https://mcflags.emc.gs",
|
||||||
|
"-Daikars.new.flags=true")
|
||||||
|
maxHeapSize = "2G"
|
||||||
|
workingDir = file("${testDir}/")
|
||||||
|
classpath = files("${testDir}/paper.jar")
|
||||||
|
}
|
||||||
|
|
||||||
tasks.named<ShadowJar>("shadowJar") {
|
tasks.named<ShadowJar>("shadowJar") {
|
||||||
archiveClassifier.set("")
|
archiveClassifier.set("")
|
||||||
archiveBaseName.set("Terra")
|
archiveBaseName.set("Terra")
|
||||||
setVersion(project.version)
|
setVersion(project.version)
|
||||||
dependencies {
|
relocate("org.apache.commons", "lib.commons")
|
||||||
include(dependency("commons-io:commons-io"))
|
relocate("org.bstats.bukkit", "lib.bstats")
|
||||||
include(dependency("org.apache.commons:commons-imaging"))
|
relocate("parsii", "lib.parsii")
|
||||||
include(dependency("org.bstats:bstats-bukkit"))
|
relocate("io.papermc.lib", "lib.paperlib")
|
||||||
include(dependency(":parsii-1.2"))
|
|
||||||
include(dependency("io.papermc:paperlib"))
|
|
||||||
}
|
|
||||||
relocate("org.apache.commons", "com.dfsek.terra.lib.commons")
|
|
||||||
relocate("org.bstats.bukkit", "com.dfsek.terra.lib.bstats")
|
|
||||||
relocate("parsii", "com.dfsek.terra.lib.parsii")
|
|
||||||
relocate("io.papermc.lib", "com.dfsek.terra.lib.paperlib")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.build {
|
tasks.build {
|
||||||
dependsOn(tasks.test)
|
dependsOn(tasks.test)
|
||||||
dependsOn("shadowJar")
|
dependsOn(tasks.shadowJar)
|
||||||
|
dependsOn(testWithPaper)
|
||||||
|
tasks.shadowJar.get().mustRunAfter(tasks.test)
|
||||||
|
testWithPaper.mustRunAfter(tasks.shadowJar)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -108,3 +153,11 @@ fun getGitHash(): String {
|
|||||||
}
|
}
|
||||||
return stdout.toString().trim()
|
return stdout.toString().trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun gitClone(name: String) {
|
||||||
|
val stdout = ByteArrayOutputStream()
|
||||||
|
exec {
|
||||||
|
commandLine = mutableListOf("git", "clone", name)
|
||||||
|
standardOutput = stdout
|
||||||
|
}
|
||||||
|
}
|
||||||
|
47
test.sh
47
test.sh
@ -1,47 +0,0 @@
|
|||||||
DIRECTORY=./target
|
|
||||||
PROJECT=Terra
|
|
||||||
NAME="Terra:DEFAULT"
|
|
||||||
WORLD=world
|
|
||||||
REPO=https://github.com/PolyhedralDev/WorldGenTestServer
|
|
||||||
|
|
||||||
|
|
||||||
color() {
|
|
||||||
if [ $2 ]; then
|
|
||||||
echo -e "\e[$1;$2m"
|
|
||||||
else
|
|
||||||
echo -e "\e[$1m"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
colorend() {
|
|
||||||
echo -e "\e[m"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ ! -d "$DIRECTORY/server" ]; then
|
|
||||||
echo "$DIRECTORY/server not found. Cloning now."
|
|
||||||
git clone $REPO $DIRECTORY/server
|
|
||||||
fi
|
|
||||||
sed -i "s/\${gen}/$NAME/g" $DIRECTORY/server/bukkit.yml
|
|
||||||
sed -i "s/\${world}/$WORLD/g" $DIRECTORY/server/bukkit.yml
|
|
||||||
cp $DIRECTORY/prod/$PROJECT.jar $DIRECTORY/server/plugins/$PROJECT.jar
|
|
||||||
cd $DIRECTORY/server || exit
|
|
||||||
if ! test -f "paperclip.jar"; then
|
|
||||||
echo "Paper not found. Downloading now."
|
|
||||||
wget https://papermc.io/api/v1/paper/1.16.3/latest/download -O paperclip.jar
|
|
||||||
fi
|
|
||||||
if [ -z "$(grep true eula.txt 2>/dev/null)" ]; then
|
|
||||||
echo
|
|
||||||
echo "$(color 32) It appears you have not agreed to Mojangs EULA yet! Press $(color 1 33)y$(colorend) $(color 32)to confirm agreement to"
|
|
||||||
read -p " Mojangs EULA, found at:$(color 1 32) https://account.mojang.com/documents/minecraft_eula $(colorend) " -n 1 -r
|
|
||||||
echo ""
|
|
||||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo "$(color 1 31)Aborted$(colorend)"
|
|
||||||
exit;
|
|
||||||
fi
|
|
||||||
echo "eula=true" > eula.txt
|
|
||||||
fi
|
|
||||||
|
|
||||||
java -Xms5G -Xmx5G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \
|
|
||||||
-XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 \
|
|
||||||
-XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 \
|
|
||||||
-XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true \
|
|
||||||
-jar paperclip.jar nogui
|
|
Loading…
x
Reference in New Issue
Block a user