Skip to content

Commit 47a48b0

Browse files
committed
chore: new task to print outgoing artifacts
1 parent 0aceb05 commit 47a48b0

File tree

4 files changed

+62
-31
lines changed

4 files changed

+62
-31
lines changed

gradle/libs.versions.toml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ jmh = "1.37"
9898
mrjar = "0.1.1"
9999
ktfmt = "0.54"
100100
google-javaformat = "1.25.2"
101-
palantir-javaformat = "2.51.0"
101+
palantir-javaformat = "2.52.0"
102102
google-auto-service = "1.1.1"
103103
google-tink = "1.16.0"
104104
graalvm = "24.1.2"
@@ -138,7 +138,7 @@ micrometer = "1.14.3"
138138
swagger-ui = "5.17.14"
139139
hoplite = "2.9.0"
140140
config4k = "0.7.0"
141-
shedlock = "6.2.0"
141+
shedlock = "6.3.0"
142142
sherlock = "1.0.3"
143143
sqids = "0.1.0"
144144
tsid = "2.1.3"
@@ -608,7 +608,6 @@ okapibarcode = { module = "uk.org.okapibarcode:okapibarc
608608
# OpenTelemetry
609609
otel-bom = { module = "io.opentelemetry:opentelemetry-bom" , version.ref = "otel"}
610610
otel-api = { module = "io.opentelemetry:opentelemetry-api" , version.ref = "otel"}
611-
otel-extension-kotlin = { module = "io.opentelemetry:opentelemetry-extension-kotlin" , version.ref = "otel"}
612611
otel-autoconfigure = { module = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure" , version.ref = "otel"}
613612
otel-autoconfigure-spi = { module = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi" , version.ref = "otel"}
614613
otel-semconv = { module = "io.opentelemetry.semconv:opentelemetry-semconv" , version.ref = "otel-semconv"}
@@ -619,8 +618,7 @@ otel-instr-javaagent = { module = "io.opentelemetry.javaagent:op
619618
otel-instr-annotations = { module = "io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations" , version.ref = "otel-instr"}
620619
otel-instr-api = { module = "io.opentelemetry.instrumentation:opentelemetry-instrumentation-api" , version.ref = "otel-instr"}
621620
otel-instr-extension-api = { module = "io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api" , version.ref = "otel-instr-alpha"}
622-
otel-instr-ktor = { module = "io.opentelemetry.instrumentation:opentelemetry-ktor-2.0" , version.ref = "otel-instr-alpha"}
623-
otel-instr-coroutines = { module = "io.opentelemetry.javaagent.instrumentation:opentelemetry-javaagent-kotlinx-coroutines" , version.ref = "otel-instr-alpha"}
621+
otel-instr-ktor = { module = "io.opentelemetry.instrumentation:opentelemetry-ktor-3.0" , version.ref = "otel-instr-alpha"}
624622
otel-instr-logback-appender = { module = "io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0" , version.ref = "otel-instr-alpha"}
625623
otel-instr-logback-mdc = { module = "io.opentelemetry.instrumentation:opentelemetry-logback-mdc-1.0" , version.ref = "otel-instr-alpha"}
626624

plugins/project/src/main/kotlin/dev.suresh.plugin.common.gradle.kts

Lines changed: 57 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,67 @@
1+
import com.github.ajalt.mordant.rendering.TextColors.*
12
import common.*
23
import org.gradle.kotlin.dsl.*
34

4-
@Suppress("UNUSED_VARIABLE")
55
tasks {
6-
val copyTemplates by
7-
registering(Copy::class) {
8-
description = "Generate template classes"
9-
group = LifecycleBasePlugin.BUILD_GROUP
10-
11-
// val props = project.properties.toMutableMap()
12-
val props = mutableMapOf<String, Any?>()
13-
props["git_branch"] = project.findProperty("branch_name")
14-
props["git_tag"] = project.findProperty("base_tag")
15-
16-
// Add info from the Gradle version catalog
17-
val versionCatalog = project.catalogs.named("libs")
18-
props["javaVersion"] = versionCatalog.findVersion("java").get()
19-
props["kotlinVersion"] = versionCatalog.findVersion("kotlin").get()
20-
props["gradleVersion"] = versionCatalog.findVersion("gradle").get()
21-
22-
if (debugEnabled) {
23-
props.forEach { (t, u) -> println("%1\$-42s --> %2\$s".format(t, u)) }
24-
}
6+
register("printArtifacts") {
7+
doLast {
8+
val configsWithArtifacts =
9+
configurations
10+
.filter { it.isCanBeResolved || it.isCanBeConsumed }
11+
.filter { it.outgoing.artifacts.isNotEmpty() }
12+
13+
if (configsWithArtifacts.isEmpty()) {
14+
logger.lifecycle(yellow("No configurations with outgoing artifacts found"))
15+
return@doLast
16+
}
2517

26-
filteringCharset = Charsets.UTF_8.name()
27-
from(project.projectDir.resolve("src/main/templates"))
28-
into(project.layout.buildDirectory.dir("generated-sources/templates/kotlin/main"))
29-
exclude { it.name.startsWith("jte") }
30-
expand(props)
18+
logger.lifecycle(magenta("\n📦 Outgoing Artifacts Report"))
19+
logger.lifecycle("".repeat(28))
3120

32-
// inputs.property("buildversions", props.hashCode())
21+
configsWithArtifacts.forEach { config ->
22+
logger.lifecycle("")
23+
logger.lifecycle("📎 Configuration: ${green(config.name)}")
24+
logger.lifecycle("├─ Consumable: ${config.isCanBeConsumed}")
25+
logger.lifecycle("├─ Resolvable: ${config.isCanBeResolved}")
26+
logger.lifecycle("└─ Artifacts:")
27+
28+
config.outgoing.artifacts.forEachIndexed { index, artifact ->
29+
val isLast = index == config.outgoing.artifacts.size - 1
30+
val prefix = if (isLast) " └─" else " ├─"
31+
logger.lifecycle(
32+
"$prefix ${cyan(artifact.file.name)} (${artifact.file.length().byteDisplaySize()})")
33+
}
3334
}
35+
}
36+
}
37+
38+
register<Copy>("copyTemplates") {
39+
description = "Generate template classes"
40+
group = LifecycleBasePlugin.BUILD_GROUP
41+
42+
// val props = project.properties.toMutableMap()
43+
val props = mutableMapOf<String, Any?>()
44+
props["git_branch"] = project.findProperty("branch_name")
45+
props["git_tag"] = project.findProperty("base_tag")
46+
47+
// Add info from the Gradle version catalog
48+
val versionCatalog = project.catalogs.named("libs")
49+
props["javaVersion"] = versionCatalog.findVersion("java").get()
50+
props["kotlinVersion"] = versionCatalog.findVersion("kotlin").get()
51+
props["gradleVersion"] = versionCatalog.findVersion("gradle").get()
52+
53+
if (debugEnabled) {
54+
props.forEach { (t, u) -> println("%1\$-42s --> %2\$s".format(t, u)) }
55+
}
56+
57+
filteringCharset = Charsets.UTF_8.name()
58+
from(project.projectDir.resolve("src/main/templates"))
59+
into(project.layout.buildDirectory.dir("generated-sources/templates/kotlin/main"))
60+
exclude { it.name.startsWith("jte") }
61+
expand(props)
62+
63+
// inputs.property("buildversions", props.hashCode())
64+
}
3465

3566
// val versionCatalog = the<VersionCatalogsExtension>().named("libs")
3667

plugins/project/src/main/kotlin/dev.suresh.plugin.kotlin.jvm.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ plugins {
2323
dev.zacsweers.redacted
2424
com.javiersc.kotlin.kopy
2525
org.jetbrains.kotlinx.atomicfu
26+
id("dev.suresh.plugin.common")
2627
id("dev.suresh.plugin.kotlin.docs")
2728
// kotlin("plugin.atomicfu")
2829
// `test-suite-base`

plugins/project/src/main/kotlin/dev.suresh.plugin.kotlin.mpp.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ plugins {
2020
kotlin("plugin.serialization")
2121
kotlin("plugin.power-assert")
2222
kotlin("plugin.js-plain-objects")
23+
id("dev.suresh.plugin.common")
2324
id("dev.suresh.plugin.kotlin.docs")
2425
com.google.devtools.ksp
2526
dev.zacsweers.redacted

0 commit comments

Comments
 (0)