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. * This file is a part of the SteamWar software.
* *
@@ -46,19 +48,6 @@ class DevServer extends DefaultTask {
DevServer() { DevServer() {
super() 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 { doFirst {
List<Project> projects = [] List<Project> projects = []
projects.add(project) projects.add(project)
@@ -83,7 +72,7 @@ class DevServer extends DefaultTask {
} }
doLast { doLast {
checkHasTemplate() checkHasTemplate()
uploadDependencies(upToDateTasks) uploadDependencies()
startDevServer() startDevServer()
} }
finalizedBy(new Finalizer()) 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 def base = plugins == null ? "$template/plugins" : plugins
println("Uploading to ~/$base") println("Uploading to ~/$base")
this.dependsOn.forEach { this.dependsOn.forEach {
@@ -132,8 +121,20 @@ class DevServer extends DefaultTask {
} else { } else {
throw new GradleException("Illegal argument for uploading dependencies") throw new GradleException("Illegal argument for uploading dependencies")
} }
def archive = archiveTask.archiveFile.get().asFile 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") println("Skipping $archive")
return return
} }
+1 -1
View File
@@ -29,7 +29,7 @@ artifacts:
"/jars/TutorialSystem.jar": "TutorialSystem/build/libs/TutorialSystem.jar" "/jars/TutorialSystem.jar": "TutorialSystem/build/libs/TutorialSystem.jar"
"/jars/PersistentVelocityCore.jar": "VelocityCore/Persistent/build/libs/Persistent.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" "/jars/VelocityCore.jar": "VelocityCore/build/libs/VelocityCore-all.jar"
"/usr/local/bin/deployarena.py": "VelocityCore/deployarena.py" "/usr/local/bin/deployarena.py": "VelocityCore/deployarena.py"