Improve dependency upload

This commit is contained in:
2025-07-02 11:36:06 +02:00
parent 3b67048b9c
commit e56c41ca66
2 changed files with 18 additions and 17 deletions
+17 -16
View File
@@ -1,3 +1,5 @@
import java.security.MessageDigest
/*
* This file is a part of the SteamWar software.
*
@@ -46,19 +48,6 @@ class DevServer extends DefaultTask {
DevServer() {
super()
List<Task> upToDateTasks = []
project.gradle.taskGraph.addTaskExecutionListener(new TaskExecutionListener() {
@Override
void beforeExecute(Task task) {
}
@Override
void afterExecute(Task task, TaskState state) {
if (state.upToDate) {
upToDateTasks.add(task);
}
}
})
doFirst {
List<Project> projects = []
projects.add(project)
@@ -83,7 +72,7 @@ class DevServer extends DefaultTask {
}
doLast {
checkHasTemplate()
uploadDependencies(upToDateTasks)
uploadDependencies()
startDevServer()
}
finalizedBy(new Finalizer())
@@ -120,7 +109,7 @@ class DevServer extends DefaultTask {
}
}
void uploadDependencies(List<Task> upToDateTasks) {
void uploadDependencies() {
def base = plugins == null ? "$template/plugins" : plugins
println("Uploading to ~/$base")
this.dependsOn.forEach {
@@ -132,8 +121,20 @@ class DevServer extends DefaultTask {
} else {
throw new GradleException("Illegal argument for uploading dependencies")
}
def archive = archiveTask.archiveFile.get().asFile
if (upToDateTasks.contains(archiveTask)) {
Process process = new ProcessBuilder("ssh", host, "-T", "sha1sum $base/${archive.name.replace("-all", "")}").start();
byte[] bytes = MessageDigest.getInstance("sha1").digest(archive.bytes)
StringBuilder sb = new StringBuilder()
for (byte b : bytes) {
sb.append(String.format("%02X", b))
}
boolean same = false
process.inputStream.readLines().forEach {
same |= it.startsWith(sb.toString().toLowerCase())
}
if (same) {
println("Skipping $archive")
return
}
+1 -1
View File
@@ -29,7 +29,7 @@ artifacts:
"/jars/TutorialSystem.jar": "TutorialSystem/build/libs/TutorialSystem.jar"
"/jars/PersistentVelocityCore.jar": "VelocityCore/Persistent/build/libs/Persistent.jar"
"/jars/DiscordVelocityCore.jar": "VelocityCore/DiscordDependency/build/libs/DiscordDependency.jar"
"/jars/DependenciesVelocityCore.jar": "VelocityCore/Dependencies/build/libs/Dependencies-all.jar"
"/jars/VelocityCore.jar": "VelocityCore/build/libs/VelocityCore-all.jar"
"/usr/local/bin/deployarena.py": "VelocityCore/deployarena.py"