Skip to content

Commit 2694c9d

Browse files
authored
refactor(server): allow injecting logic for building version artifacts (#1929)
To improve testability, for the purpose of testing the fix in #1924
1 parent 1aee061 commit 2694c9d

File tree

2 files changed

+32
-29
lines changed

2 files changed

+32
-29
lines changed

jit-binding-server/src/main/kotlin/io/github/typesafegithub/workflows/jitbindingserver/ArtifactRoutes.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,14 @@ typealias ArtifactResult = Result<Map<String, Artifact>>
3636

3737
private val prefetchScope = CoroutineScope(Dispatchers.IO)
3838

39-
internal fun buildBindingsCache(): LoadingCache<ActionCoords, ArtifactResult> =
39+
internal fun buildBindingsCache(
40+
buildVersionArtifacts: (ActionCoords) -> Map<String, Artifact>? = ::buildVersionArtifacts,
41+
): LoadingCache<ActionCoords, ArtifactResult> =
4042
Caffeine
4143
.newBuilder()
4244
.refreshAfterWrite(1.hours)
4345
.recordStats()
44-
.asLoadingCache<ActionCoords, ArtifactResult> { runCatching { it.buildVersionArtifacts()!! } }
46+
.asLoadingCache<ActionCoords, ArtifactResult> { runCatching { buildVersionArtifacts(it)!! } }
4547

4648
fun Routing.artifactRoutes(
4749
bindingsCache: LoadingCache<ActionCoords, ArtifactResult>,

maven-binding-builder/src/main/kotlin/io/github/typesafegithub/workflows/mavenbinding/VersionArtifactsBuilding.kt

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,30 +12,31 @@ data class JarArtifact(
1212
val data: () -> ByteArray,
1313
) : Artifact
1414

15-
fun ActionCoords.buildVersionArtifacts(): Map<String, Artifact>? {
16-
val jars = buildJars() ?: return null
17-
val pom = buildPomFile()
18-
val module = buildModuleFile()
19-
return mapOf(
20-
"$mavenName-$version.jar" to JarArtifact(jars.mainJar),
21-
"$mavenName-$version.jar.md5" to TextArtifact { jars.mainJar().md5Checksum() },
22-
"$mavenName-$version.jar.sha1" to TextArtifact { jars.mainJar().sha1Checksum() },
23-
"$mavenName-$version.jar.sha256" to TextArtifact { jars.mainJar().sha256Checksum() },
24-
"$mavenName-$version.jar.sha512" to TextArtifact { jars.mainJar().sha512Checksum() },
25-
"$mavenName-$version-sources.jar" to JarArtifact(jars.sourcesJar),
26-
"$mavenName-$version-sources.jar.md5" to TextArtifact { jars.sourcesJar().md5Checksum() },
27-
"$mavenName-$version-sources.jar.sha1" to TextArtifact { jars.sourcesJar().sha1Checksum() },
28-
"$mavenName-$version-sources.jar.sha256" to TextArtifact { jars.sourcesJar().sha256Checksum() },
29-
"$mavenName-$version-sources.jar.sha512" to TextArtifact { jars.sourcesJar().sha512Checksum() },
30-
"$mavenName-$version.pom" to TextArtifact { pom },
31-
"$mavenName-$version.pom.md5" to TextArtifact { pom.md5Checksum() },
32-
"$mavenName-$version.pom.sha1" to TextArtifact { pom.sha1Checksum() },
33-
"$mavenName-$version.pom.sha256" to TextArtifact { pom.sha256Checksum() },
34-
"$mavenName-$version.pom.sha512" to TextArtifact { pom.sha512Checksum() },
35-
"$mavenName-$version.module" to TextArtifact { module },
36-
"$mavenName-$version.module.md5" to TextArtifact { module.md5Checksum() },
37-
"$mavenName-$version.module.sha1" to TextArtifact { module.sha1Checksum() },
38-
"$mavenName-$version.module.sha256" to TextArtifact { module.sha256Checksum() },
39-
"$mavenName-$version.module.sha512" to TextArtifact { module.sha512Checksum() },
40-
)
41-
}
15+
fun buildVersionArtifacts(actionCoords: ActionCoords): Map<String, Artifact>? =
16+
with(actionCoords) {
17+
val jars = buildJars() ?: return null
18+
val pom = buildPomFile()
19+
val module = buildModuleFile()
20+
return mapOf(
21+
"$mavenName-$version.jar" to JarArtifact(jars.mainJar),
22+
"$mavenName-$version.jar.md5" to TextArtifact { jars.mainJar().md5Checksum() },
23+
"$mavenName-$version.jar.sha1" to TextArtifact { jars.mainJar().sha1Checksum() },
24+
"$mavenName-$version.jar.sha256" to TextArtifact { jars.mainJar().sha256Checksum() },
25+
"$mavenName-$version.jar.sha512" to TextArtifact { jars.mainJar().sha512Checksum() },
26+
"$mavenName-$version-sources.jar" to JarArtifact(jars.sourcesJar),
27+
"$mavenName-$version-sources.jar.md5" to TextArtifact { jars.sourcesJar().md5Checksum() },
28+
"$mavenName-$version-sources.jar.sha1" to TextArtifact { jars.sourcesJar().sha1Checksum() },
29+
"$mavenName-$version-sources.jar.sha256" to TextArtifact { jars.sourcesJar().sha256Checksum() },
30+
"$mavenName-$version-sources.jar.sha512" to TextArtifact { jars.sourcesJar().sha512Checksum() },
31+
"$mavenName-$version.pom" to TextArtifact { pom },
32+
"$mavenName-$version.pom.md5" to TextArtifact { pom.md5Checksum() },
33+
"$mavenName-$version.pom.sha1" to TextArtifact { pom.sha1Checksum() },
34+
"$mavenName-$version.pom.sha256" to TextArtifact { pom.sha256Checksum() },
35+
"$mavenName-$version.pom.sha512" to TextArtifact { pom.sha512Checksum() },
36+
"$mavenName-$version.module" to TextArtifact { module },
37+
"$mavenName-$version.module.md5" to TextArtifact { module.md5Checksum() },
38+
"$mavenName-$version.module.sha1" to TextArtifact { module.sha1Checksum() },
39+
"$mavenName-$version.module.sha256" to TextArtifact { module.sha256Checksum() },
40+
"$mavenName-$version.module.sha512" to TextArtifact { module.sha512Checksum() },
41+
)
42+
}

0 commit comments

Comments
 (0)