Skip to content

Commit 5001208

Browse files
authored
Cache generated data on CI (Elytrium#237)
1 parent 74424b4 commit 5001208

4 files changed

Lines changed: 52 additions & 3 deletions

File tree

.github/workflows/build.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ jobs:
1919
with:
2020
distribution: temurin
2121
java-version: 25
22+
- name: Cache generated data
23+
uses: actions/cache@v5.0.4
24+
with:
25+
path: |
26+
plugin/build/minecraft/
27+
plugin/build/generated/minecraft/mapping/
28+
key: minecraft-${{ hashFiles('gradle.properties') }}
2229
- name: Build LimboAPI
2330
run: ./gradlew build
2431
- name: Upload LimboAPI

.github/workflows/release.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ jobs:
1515
with:
1616
distribution: temurin
1717
java-version: 25
18+
- name: Cache generated data
19+
uses: actions/cache@v5.0.4
20+
with:
21+
path: |
22+
plugin/build/minecraft/
23+
plugin/build/generated/minecraft/mapping/
24+
key: minecraft-${{ hashFiles('gradle.properties') }}
1825
- name: Build LimboAPI
1926
run: ./gradlew build
2027
- name: Upload LimboAPI

gradle.properties

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
org.gradle.jvmargs=-Xmx4096m
22
manifestUrl=https://launchermeta.mojang.com/mc/game/version_manifest.json
3-
cacheValidMillis=6000000
3+
4+
# 1 week
5+
cacheValidMillis=604800000
6+
7+
# Change to invalidate mappings cache on CI
8+
gameVersion=26.1

plugin/build.gradle

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,8 @@ File generateData(MinecraftVersion version) {
283283
}
284284

285285
File jarFile = this.getServerJar(version.getVersionName())
286-
File targetDir = new File(jarFile.getParentFile(), "generated")
286+
File parent = jarFile.getParentFile()
287+
File targetDir = new File(parent, "generated")
287288

288289
try {
289290
FileUtils.deleteDirectory(targetDir)
@@ -306,7 +307,36 @@ File generateData(MinecraftVersion version) {
306307
File java = new File(System.getProperty("java.home"), "bin/java")
307308
commandLine = ["bash", "-c", String.format(command, java)]
308309
}
309-
commandLine.execute([], jarFile.getParentFile()).waitFor()
310+
commandLine.execute([], parent).waitFor()
311+
312+
// Remove/compact files, reduces disk usage from ~2.9gb to ~92mb (or ~9.5mb on a compressed filesystem)
313+
jarFile.delete()
314+
FileUtils.deleteDirectory(new File(parent, "logs"))
315+
FileUtils.deleteDirectory(new File(parent, "libraries"))
316+
FileUtils.deleteDirectory(new File(parent, "versions"))
317+
318+
new File(targetDir, "reports/commands.json").delete()
319+
320+
FileUtils.deleteDirectory(new File(targetDir, ".cache"))
321+
FileUtils.deleteDirectory(new File(targetDir, "reports/biome_parameters"))
322+
FileUtils.deleteDirectory(new File(targetDir, "reports/biomes"))
323+
FileUtils.deleteDirectory(new File(targetDir, "reports/worldgen"))
324+
FileUtils.deleteDirectory(new File(targetDir, "reports/minecraft/components/item"))
325+
FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/datapacks"))
326+
FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/advancements"))
327+
FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/advancement"))
328+
FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/recipes"))
329+
FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/recipe"))
330+
FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/loot_tables"))
331+
FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/loot_table"))
332+
FileUtils.deleteDirectory(new File(targetDir, "data/minecraft/worldgen"))
333+
334+
java.nio.file.Files.walk(parent.toPath(), 32).forEach { it ->
335+
if (it.fileName.toString().endsWith(".json")) {
336+
java.nio.file.Files.writeString(it, JsonOutput.toJson(new JsonSlurper().parse(it)))
337+
}
338+
}
339+
310340
return targetDir
311341
}
312342

0 commit comments

Comments
 (0)