From 9e7b086967d217f5f735860c390fcf1a8b55d452 Mon Sep 17 00:00:00 2001 From: UserNugget Date: Sat, 28 Mar 2026 12:59:54 +0300 Subject: [PATCH 1/4] Cache mappings --- .github/workflows/build.yml | 7 +++++++ .github/workflows/release.yml | 7 +++++++ gradle.properties | 7 ++++++- plugin/build.gradle | 34 ++++++++++++++++++++++++++++++++-- 4 files changed, 52 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a924ecd..c5649532 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,6 +19,13 @@ jobs: with: distribution: temurin java-version: 25 + - name: Cache generated data + uses: actions/cache@v5.0.4 + with: + path: | + plugin/build/minecraft/ + plugin/build/generated/minecraft/mappings/ + key: minecraft-${{ hashFiles('gradle.properties') }} - name: Build LimboAPI run: ./gradlew build - name: Upload LimboAPI diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eb8234ec..4ad8164a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,6 +15,13 @@ jobs: with: distribution: temurin java-version: 25 + - name: Cache generated data + uses: actions/cache@v5.0.4 + with: + path: | + plugin/build/minecraft/ + plugin/build/generated/minecraft/mappings/ + key: minecraft-${{ hashFiles('gradle.properties') }} - name: Build LimboAPI run: ./gradlew build - name: Upload LimboAPI diff --git a/gradle.properties b/gradle.properties index bbab74cb..5937da46 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,8 @@ org.gradle.jvmargs=-Xmx4096m manifestUrl=https://launchermeta.mojang.com/mc/game/version_manifest.json -cacheValidMillis=6000000 \ No newline at end of file + +# 1 week +cacheValidMillis=604800000 + +# Change to invalidate mappings cache on CI +gameVersion=26.1 \ No newline at end of file diff --git a/plugin/build.gradle b/plugin/build.gradle index 9bdf5432..e6801031 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -283,7 +283,8 @@ File generateData(MinecraftVersion version) { } File jarFile = this.getServerJar(version.getVersionName()) - File targetDir = new File(jarFile.getParentFile(), "generated") + File parent = jarFile.getParentFile() + File targetDir = new File(parent, "generated") try { FileUtils.deleteDirectory(targetDir) @@ -306,7 +307,36 @@ File generateData(MinecraftVersion version) { File java = new File(System.getProperty("java.home"), "bin/java") commandLine = ["bash", "-c", String.format(command, java)] } - commandLine.execute([], jarFile.getParentFile()).waitFor() + commandLine.execute([], parent).waitFor() + + // Remove/compact files, reduces disk usage from ~2.9gb to ~92mb (or ~9.5mb on a compressed filesystem) + jarFile.delete() + FileUtils.deleteDirectory(new File(parent, "logs")) + FileUtils.deleteDirectory(new File(parent, "libraries")) + FileUtils.deleteDirectory(new File(parent, "versions")) + + new File(targetDir, "reports/commands.json").delete() + + FileUtils.deleteDirectory(new File(targetDir, ".cache")) + FileUtils.deleteDirectory(new File(targetDir, "reports/biome_parameters")) + FileUtils.deleteDirectory(new File(targetDir, "reports/biomes")) + FileUtils.deleteDirectory(new File(targetDir, "reports/worldgen")) + FileUtils.deleteDirectory(new File(targetDir, "reports/minecraft/components/item")) + FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/datapacks")) + FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/advancements")) + FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/advancement")) + FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/recipes")) + FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/recipe")) + FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/loot_tables")) + FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/loot_table")) + FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/worldgen")) + + java.nio.file.Files.walk(parent.toPath(), 32).forEach { it -> + if (it.fileName.toString().endsWith(".json")) { + java.nio.file.Files.writeString(it, JsonOutput.toJson(new JsonSlurper().parse(it))) + } + } + return targetDir } From 34c5738ecf31b253e79fa078c8d8cbdda843ee6a Mon Sep 17 00:00:00 2001 From: UserNugget Date: Sat, 28 Mar 2026 13:04:47 +0300 Subject: [PATCH 2/4] Test cache --- plugin/build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugin/build.gradle b/plugin/build.gradle index e6801031..9d11cc7d 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -337,6 +337,8 @@ File generateData(MinecraftVersion version) { } } + // TODO: revert this line + return targetDir } From f6f290aea758f2ddd0c89ce231e5e1d68ab2d1c1 Mon Sep 17 00:00:00 2001 From: UserNugget Date: Sat, 28 Mar 2026 13:12:55 +0300 Subject: [PATCH 3/4] Fix directory name --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c5649532..69dc06c1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: with: path: | plugin/build/minecraft/ - plugin/build/generated/minecraft/mappings/ + plugin/build/generated/minecraft/mapping/ key: minecraft-${{ hashFiles('gradle.properties') }} - name: Build LimboAPI run: ./gradlew build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4ad8164a..10a7d6f3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ jobs: with: path: | plugin/build/minecraft/ - plugin/build/generated/minecraft/mappings/ + plugin/build/generated/minecraft/mapping/ key: minecraft-${{ hashFiles('gradle.properties') }} - name: Build LimboAPI run: ./gradlew build From 86bcfd8264fea77f3d3ab6d63e9252d01a5183b3 Mon Sep 17 00:00:00 2001 From: UserNugget Date: Sat, 28 Mar 2026 13:16:01 +0300 Subject: [PATCH 4/4] Revert "Test cache" This reverts commit 34c5738ecf31b253e79fa078c8d8cbdda843ee6a. --- plugin/build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugin/build.gradle b/plugin/build.gradle index 9d11cc7d..e6801031 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -337,8 +337,6 @@ File generateData(MinecraftVersion version) { } } - // TODO: revert this line - return targetDir }