Skip to content

Commit d6f246f

Browse files
committed
Cleanup files after transformation
1 parent 4648051 commit d6f246f

6 files changed

Lines changed: 40 additions & 23 deletions

File tree

core/src/main/kotlin/org/sinytra/probe/core/platform/ModrinthPlatform.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,7 @@ class ModrinthPlatform(
6767
val key = versionKey(versionId)
6868

6969
cache.getObject<ModrinthResolvedVersion>(key)
70-
?.let {
71-
val path = storagePath.resolve(it.path)
72-
if (!path.exists()) {
73-
cache.del(key)
74-
return@let null
75-
}
76-
return it
77-
}
70+
?.let { return it }
7871

7972
LOGGER.info("Fetching '{}' version {}", slug, versionId)
8073

core/src/main/kotlin/org/sinytra/probe/core/platform/PlatformService.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ data class ResolvedProject(
2929

3030
interface PlatformService {
3131
suspend fun getProject(slug: String): PlatformProject?
32+
// Does not guarantee that the version file exists
3233
suspend fun getVersion(slug: String, versionId: String): ProjectVersion?
3334
suspend fun isNeoForgeAvailable(project: PlatformProject, gameVersion: String): Boolean
3435
suspend fun resolveProject(project: PlatformProject, gameVersion: String): ResolvedProject?
@@ -42,7 +43,7 @@ class GlobalPlatformService(private val platforms: Map<ProjectPlatform, Platform
4243

4344
suspend fun getProject(platform: ProjectPlatform, slug: String): PlatformProject? =
4445
getPlatform(platform).getProject(slug)
45-
46+
4647
suspend fun isNeoForgeAvailable(project: PlatformProject, gameVersion: String): Boolean =
4748
getPlatform(project.platform).isNeoForgeAvailable(project, gameVersion)
4849

core/src/main/kotlin/org/sinytra/probe/core/service/TransformationService.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ class TransformationService(
5454
null
5555
}
5656

57-
workDir.deleteRecursively()
57+
// Cleanup files
58+
workDir.parent.deleteRecursively()
5859

5960
return TransformationResult(
6061
project.version.projectId,

gatherer/build.gradle.kts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ tasks {
8383
"TEST_COUNT" to 10
8484
)
8585
}
86-
86+
8787
jar {
8888
manifest {
8989
attributes(
@@ -100,6 +100,16 @@ tasks {
100100
jib {
101101
from {
102102
image = "eclipse-temurin:21-jdk"
103+
platforms {
104+
platform {
105+
architecture = "amd64"
106+
os = "linux"
107+
}
108+
platform {
109+
architecture = "arm64"
110+
os = "linux"
111+
}
112+
}
103113
}
104114
to {
105115
setImage(

gatherer/src/main/kotlin/org/sinytra/probe/gatherer/internal/TransformerInvoker.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ class TransformerInvoker(
5151
stripAnsiCodes(outputLog)
5252
stripAnsiCodes(errorLog)
5353

54-
if (errorLog.readText().isNotEmpty()) {
54+
val errorText = errorLog.readText()
55+
val filteredLines = errorText.lines().filterNot { it.isBlank() || it.contains("Picked up JAVA_TOOL_OPTIONS") }
56+
if (filteredLines.isNotEmpty()) {
5557
LOGGER.error("{} Got errors while transforming {}", ICON_WARN, slug)
5658
errors = true
5759
}

service/src/main/kotlin/org/sinytra/probe/service/impl/RoutingImpl.kt

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ import kotlinx.coroutines.awaitAll
99
import kotlinx.coroutines.coroutineScope
1010
import org.sinytra.probe.base.*
1111
import org.sinytra.probe.base.db.ProjectPlatform
12+
import org.sinytra.probe.core.model.TestEnvironment
1213
import org.sinytra.probe.core.model.TestResult
1314
import org.sinytra.probe.core.platform.GlobalPlatformService
1415
import org.sinytra.probe.core.platform.ModrinthPlatform.Companion.LOADER_FABRIC
1516
import org.sinytra.probe.core.platform.ModrinthPlatform.Companion.LOADER_NEOFORGE
17+
import org.sinytra.probe.core.platform.PlatformProject
1618
import org.sinytra.probe.core.service.AsyncTransformationRunner
1719
import org.sinytra.probe.core.service.PersistenceService
1820
import org.sinytra.probe.core.service.SetupService
@@ -65,21 +67,20 @@ class RoutingImpl(
6567
)
6668
}
6769

68-
val resolved = platforms.resolveProject(project, body.gameVersion)
69-
?: return call.respond(
70-
TestResponseBody.Unavailable(
71-
LOADER_FABRIC,
72-
body.gameVersion,
73-
testProject,
74-
ResultType.UNAVAILABLE
75-
)
76-
)
77-
7870
liveResourceLock.read {
7971
val neoForgeVersion = setup.getNeoForgeVersion(body.gameVersion)
8072
val transformer = setup.getTransformLib(body.gameVersion)
8173
val testEnvironment = persistence.getOrCreateTestEnvironment(transformer.version, body.gameVersion, neoForgeVersion)
82-
val result: TestResult = asyncTransform.transform(project, resolved, testEnvironment)
74+
75+
val result: TestResult = getOrRunTest(project, testEnvironment)
76+
?: return call.respond(
77+
TestResponseBody.Unavailable(
78+
LOADER_FABRIC,
79+
body.gameVersion,
80+
testProject,
81+
ResultType.UNAVAILABLE
82+
)
83+
)
8384

8485
val version = platforms.getVersion(project, result.versionId)
8586
val envDto = TestEnvironmentDTO(testEnvironment.connectorVersion, testEnvironment.gameVersion, testEnvironment.neoForgeVersion)
@@ -101,6 +102,15 @@ class RoutingImpl(
101102
}
102103
}
103104

105+
suspend fun getOrRunTest(project: PlatformProject, testEnvironment: TestEnvironment): TestResult? {
106+
val existing = persistence.getExistingResult(project, testEnvironment)
107+
if (existing != null) {
108+
return existing
109+
}
110+
val resolved = platforms.resolveProject(project, testEnvironment.gameVersion) ?: return null
111+
return asyncTransform.transform(project, resolved, testEnvironment)
112+
}
113+
104114
suspend fun importTestReport(body: TestReport) = coroutineScope {
105115
LOGGER.info("Importing ${body.results.size} test results")
106116

0 commit comments

Comments
 (0)