Skip to content

Commit ea3544b

Browse files
committed
fix: inject otel agent when building images on CI
1 parent 0ef9e48 commit ea3544b

3 files changed

Lines changed: 15 additions & 15 deletions

File tree

.github/workflows/build-docker.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ jobs:
7676
- name: Build and push image
7777
uses: docker/build-push-action@v7
7878
with:
79-
build-args:
79+
build-args: |
8080
JAR=build/libs/${{ matrix.name }}.jar
81+
OTEL_AGENT=build/otel/opentelemetry-javaagent.jar
8182
context: ${{ matrix.context }}
8283
file: ${{ matrix.dockerfile }}
8384
push: true

build.gradle.kts

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
*/
1414

1515
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
16-
import java.net.URI
1716

1817
plugins {
1918
`java-library`
@@ -32,19 +31,16 @@ buildscript {
3231
val edcBuildId = libs.plugins.edc.build.get().pluginId
3332
val jadVersion: String by project
3433

35-
val downloadOtelAgent by tasks.registering {
36-
val outputFile = layout.buildDirectory.file("otel/opentelemetry-javaagent.jar")
37-
outputs.file(outputFile)
38-
doLast {
39-
val url = URI("https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar").toURL()
40-
val destFile = outputFile.get().asFile
41-
destFile.parentFile.mkdirs()
42-
url.openStream().use { input ->
43-
destFile.outputStream().use { output ->
44-
input.copyTo(output)
45-
}
46-
}
34+
val downloadOtelAgent by tasks.register("downloadOtelAgent", Copy::class) {
35+
val openTelemetry = configurations.create("open-telemetry")
36+
37+
dependencies {
38+
openTelemetry(libs.opentelemetry.javaagent)
4739
}
40+
41+
from(openTelemetry)
42+
into("build/otel")
43+
rename { "opentelemetry-javaagent.jar" }
4844
}
4945

5046
allprojects {
@@ -70,6 +66,8 @@ subprojects {
7066
from(rootProject.layout.buildDirectory.dir("otel"))
7167
into(project.layout.buildDirectory.dir("otel"))
7268
}
69+
var shadowJarTask = tasks.named("shadowJar").get();
70+
shadowJarTask.dependsOn(copyOtelAgent)
7371

7472
// configure the "dockerize" task
7573
val dockerTask: DockerBuildImage = tasks.create("dockerize", DockerBuildImage::class) {
@@ -87,7 +85,6 @@ subprojects {
8785
inputDir.set(file(dockerContextDir))
8886
}
8987
dockerTask.dependsOn(tasks.named("shadowJar"))
90-
dockerTask.dependsOn(copyOtelAgent)
9188
}
9289
}
9390
}

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ rsApi = "4.0.0"
1313
swagger = "2.2.47"
1414
jersey = "3.1.11"
1515
postgres = "42.7.10"
16+
opentelemetry = "2.26.1"
1617

1718
[libraries]
1819
# upstream EDC dependencies
@@ -88,6 +89,7 @@ jakarta-rsApi = { module = "jakarta.ws.rs:jakarta.ws.rs-api", version.ref = "rsA
8889
jersey-multipart = { module = "org.glassfish.jersey.media:jersey-media-multipart", version.ref = "jersey" }
8990
postgres = { module = "org.postgresql:postgresql", version.ref = "postgres" }
9091
opentelemetry-exporter-otlp = { module = "io.opentelemetry:opentelemetry-exporter-otlp", version = "1.61.0" }
92+
opentelemetry-javaagent = { module = "io.opentelemetry.javaagent:opentelemetry-javaagent", version.ref = "opentelemetry" }
9193

9294
[plugins]
9395
shadow = { id = "com.gradleup.shadow", version = "9.4.1" }

0 commit comments

Comments
 (0)