From bf231bf5308118be14aab642a96bcf71b62c3742 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sun, 22 Jan 2023 13:58:33 -0700 Subject: [PATCH] package: upload output jars as build artifacts --- .github/workflows/build.yml | 6 ++++++ .../main/java/net/runelite/pluginhub/packager/Packager.java | 5 +++++ .../main/java/net/runelite/pluginhub/packager/Plugin.java | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 365d1c570..33561aab4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -73,6 +73,12 @@ jobs: name: manifest_diff path: /tmp/manifest_diff retention-days: 1 + - uses: actions/upload-artifact@v3 + if: ${{ github.event_name == 'pull_request' }} + with: + name: jars + path: /tmp/jars + retention-days: 1 upload: if: (github.event_name != 'push' || github.repository_owner == 'runelite') && github.event_name != 'pull_request' needs: build diff --git a/package/package/src/main/java/net/runelite/pluginhub/packager/Packager.java b/package/package/src/main/java/net/runelite/pluginhub/packager/Packager.java index 27064f7be..80795eb55 100644 --- a/package/package/src/main/java/net/runelite/pluginhub/packager/Packager.java +++ b/package/package/src/main/java/net/runelite/pluginhub/packager/Packager.java @@ -64,6 +64,7 @@ public class Packager implements Closeable { private static final File PLUGIN_ROOT = new File("./plugins"); public static final File PACKAGE_ROOT = new File("./package/").getAbsoluteFile(); + private static final File ARTIFACT_DIR = new File("/tmp/jars"); private Semaphore apiCheckSemaphore = new Semaphore(8); private Semaphore downloadSemaphore = new Semaphore(2); @@ -108,6 +109,8 @@ public class Packager implements Closeable diff.setOldManifestVersion(apiFilesVersion); } + ARTIFACT_DIR.mkdirs(); + Queue buildQueue = Queues.synchronizedQueue(new ArrayDeque<>(buildList)); List buildThreads = IntStream.range(0, 8) .mapToObj(v -> @@ -191,6 +194,8 @@ public class Packager implements Closeable logURL = p.uploadLog(uploadConfig); } + p.copyArtifacts(ARTIFACT_DIR); + diff.getAdd().add(p.getManifest()); log.info("{}: done in {}ms [{}/{}]", p.getInternalName(), p.getBuildTimeMS(), numDone.get() + 1, numTotal); diff --git a/package/package/src/main/java/net/runelite/pluginhub/packager/Plugin.java b/package/package/src/main/java/net/runelite/pluginhub/packager/Plugin.java index 8425b35f3..452c8966b 100644 --- a/package/package/src/main/java/net/runelite/pluginhub/packager/Plugin.java +++ b/package/package/src/main/java/net/runelite/pluginhub/packager/Plugin.java @@ -944,6 +944,12 @@ public class Plugin implements Closeable return url.toString(); } + public void copyArtifacts(File artifactDir) throws IOException + { + Files.copy(jarFile.toPath(), new File(artifactDir, getInternalName() + ".jar").toPath()); + Files.copy(logFile.toPath(), new File(artifactDir, getInternalName() + ".log").toPath()); + } + public void writeLog(String format, Object... args) throws IOException { FormattingTuple fmt = MessageFormatter.arrayFormat(format, args);