From e56c41ca6617b7cf1031527d3c41503b1cc8835a Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Wed, 2 Jul 2025 11:36:06 +0200 Subject: [PATCH] Improve dependency upload --- buildSrc/src/steamwar.devserver.gradle | 33 +++++++++++++------------- steamwarci.yml | 2 +- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/buildSrc/src/steamwar.devserver.gradle b/buildSrc/src/steamwar.devserver.gradle index 5d75c087..3c5cf882 100644 --- a/buildSrc/src/steamwar.devserver.gradle +++ b/buildSrc/src/steamwar.devserver.gradle @@ -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 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 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 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 } diff --git a/steamwarci.yml b/steamwarci.yml index d62f6b62..5548033a 100644 --- a/steamwarci.yml +++ b/steamwarci.yml @@ -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"