Skip to content

Commit f1c1507

Browse files
authored
Add Publishing Step for UDP Exporter (#1075)
*Issue #, if available:* *Description of changes:* 1. Add Publishing Step for UDP Exporter to Sonatype/MavenCentral 2. Update exporter package name from `aws-opentelemetry-xray-udp-span-exporter` to `aws-distro-opentelemetry-xray-udp-span-exporter` 3. Update udp testing sample app name to `udp-exporter-test-app` By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 6ffc78e commit f1c1507

File tree

16 files changed

+127
-32
lines changed

16 files changed

+127
-32
lines changed

.github/workflows/pr-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ jobs:
9090

9191
- name: Build and Test UDP exporter
9292
run: |
93-
./gradlew build -p exporters/aws-opentelemetry-xray-udp-span-exporter
93+
./gradlew build -p exporters/aws-distro-opentelemetry-xray-udp-span-exporter
9494
9595
- name: Set up Java version for tests
9696
uses: actions/setup-java@v4

.github/workflows/release-udp-exporter.yml

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ name: Release ADOT X-Ray UDP Exporter
33
on:
44
workflow_dispatch:
55
inputs:
6-
version:
6+
udp-exporter-version:
77
description: The version to tag the release with, e.g., 1.2.0
88
required: true
99
type: string
1010

1111
permissions:
1212
id-token: write
13+
contents: write
1314

1415
jobs:
1516
validate-udp-exporter-e2e-test:
@@ -21,6 +22,7 @@ jobs:
2122

2223
release-udp-exporter:
2324
runs-on: ubuntu-latest
25+
needs: validate-udp-exporter-e2e-test
2426
steps:
2527
- name: Checkout Repo @ SHA - ${{ github.sha }}
2628
uses: actions/checkout@v4
@@ -34,6 +36,33 @@ jobs:
3436

3537
- name: Build and Test UDP exporter
3638
run: |
37-
./gradlew build -p exporters/aws-opentelemetry-xray-udp-span-exporter
39+
./gradlew build -p exporters/aws-distro-opentelemetry-xray-udp-span-exporter
3840
39-
# TODO: Steps to publish to Maven Central
41+
- name: Validate project version matches workflow input
42+
run: |
43+
xrayUdpSpanExporterVersion=$(./gradlew -q printVersion -p exporters/aws-distro-opentelemetry-xray-udp-span-exporter)
44+
if [[ ! "$xrayUdpSpanExporterVersion" == "${{ inputs.udp-exporter-version }}" ]]; then
45+
echo "Input version '${{ inputs.udp-exporter-version }}' does not match with the UDP Exporter project version '$xrayUdpSpanExporterVersion'"
46+
exit 1
47+
fi
48+
49+
- name: Build and publish to sonatype
50+
run: ./gradlew -p exporters/aws-distro-opentelemetry-xray-udp-span-exporter publishToSonatype closeAndReleaseSonatypeStagingRepository --stacktrace
51+
env:
52+
PUBLISH_TOKEN_USERNAME: ${{ secrets.PUBLISH_TOKEN_USERNAME }}
53+
PUBLISH_TOKEN_PASSWORD: ${{ secrets.PUBLISH_TOKEN_PASSWORD }}
54+
GRGIT_USER: ${{ secrets.GITHUB_TOKEN }}
55+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
56+
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
57+
58+
# Publish to GitHub releases
59+
- name: Create GH release
60+
id: create_release
61+
env:
62+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
63+
run: |
64+
gh release create --target "$GITHUB_REF_NAME" \
65+
--title "Release aws-distro-opentelemetry-xray-udp-span-exporter v${{ inputs.udp-exporter-version }}" \
66+
--notes "Please refer to the [Changelog](https://github.com/aws-observability/aws-otel-java-instrumentation/blob/main/exporters/aws-distro-opentelemetry-xray-udp-span-exporter/CHANGELOG.md) for more details" \
67+
--draft \
68+
"v${{ inputs.udp-exporter-version }}"

.github/workflows/udp-exporter-e2e-test.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,16 @@ jobs:
3838
3939
- name: Publish UDP exporter to Maven Local
4040
id: build-udp-exporter
41-
working-directory: exporters/aws-opentelemetry-xray-udp-span-exporter
4241
run: |
43-
gradle build
44-
gradle publishToMavenLocal
45-
echo "xrayUdpSpanExporterVersion=$(gradle -q printVersion)" >> $GITHUB_OUTPUT
42+
./gradlew build -p exporters/aws-distro-opentelemetry-xray-udp-span-exporter
43+
./gradlew publishToMavenLocal -p exporters/aws-distro-opentelemetry-xray-udp-span-exporter
44+
echo "xrayUdpSpanExporterVersion=$(./gradlew -q printVersion -p exporters/aws-distro-opentelemetry-xray-udp-span-exporter)" >> $GITHUB_OUTPUT
45+
env:
46+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
47+
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
4648

4749
- name: Setup and Run Sample App in Background
48-
working-directory: sample-apps/integ-test-app
50+
working-directory: sample-apps/udp-exporter-test-app
4951
run: |
5052
export XRAY_UDP_SPAN_EXPORTER_VERSION=${{ steps.build-udp-exporter.outputs.xrayUdpSpanExporterVersion }}
5153
echo "Running Sample App against X-Ray UDP Span Exporter version: $XRAY_UDP_SPAN_EXPORTER_VERSION"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Release History: aws-distro-opentelemetry-xray-udp-span-exporter

exporters/aws-opentelemetry-xray-udp-span-exporter/build.gradle.kts renamed to exporters/aws-distro-opentelemetry-xray-udp-span-exporter/build.gradle.kts

Lines changed: 64 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,12 @@ plugins {
1717
id("java")
1818
id("java-library")
1919
id("maven-publish")
20+
id("signing")
21+
id("io.github.gradle-nexus.publish-plugin")
22+
id("nebula.release")
2023
}
2124

22-
group = "software.amazon.distro.opentelemetry.exporter.xray.udp.trace"
25+
group = "software.amazon.distro.opentelemetry"
2326
version = "0.1.0"
2427

2528
dependencies {
@@ -40,6 +43,8 @@ dependencies {
4043
java {
4144
withSourcesJar()
4245
withJavadocJar()
46+
sourceCompatibility = JavaVersion.VERSION_1_8
47+
targetCompatibility = JavaVersion.VERSION_1_8
4348
}
4449

4550
tasks.javadoc {
@@ -93,13 +98,64 @@ tasks.create("printVersion") {
9398
}
9499
}
95100

96-
publishing {
97-
publications {
98-
create<MavenPublication>("mavenJava") {
99-
from(components["java"])
100-
groupId = project.group.toString()
101-
artifactId = "aws-opentelemetry-xray-udp-span-exporter"
102-
version = project.version.toString()
101+
nexusPublishing {
102+
repositories {
103+
sonatype {
104+
nexusUrl.set(uri("https://aws.oss.sonatype.org/service/local/"))
105+
snapshotRepositoryUrl.set(uri("https://aws.oss.sonatype.org/content/repositories/snapshots/"))
106+
username.set(System.getenv("PUBLISH_TOKEN_USERNAME"))
107+
password.set(System.getenv("PUBLISH_TOKEN_PASSWORD"))
103108
}
104109
}
105110
}
111+
112+
plugins.withId("maven-publish") {
113+
plugins.apply("signing")
114+
115+
configure<PublishingExtension> {
116+
publications {
117+
register<MavenPublication>("maven") {
118+
from(components["java"])
119+
120+
pom {
121+
name.set("AWS Distro for OpenTelemetry X-Ray UDP Exporter")
122+
description.set(
123+
"AWS X-Ray UDP Exporter for OpenTelemetry Java"
124+
)
125+
url.set("https:/github.com/aws-observability/aws-otel-java-instrumentation")
126+
licenses {
127+
license {
128+
name.set("Apache License, Version 2.0")
129+
url.set("https://aws.amazon.com/apache2.0")
130+
distribution.set("repo")
131+
}
132+
}
133+
developers {
134+
developer {
135+
id.set("amazonwebservices")
136+
organization.set("Amazon Web Services")
137+
organizationUrl.set("https://aws.amazon.com")
138+
roles.add("developer")
139+
}
140+
}
141+
scm {
142+
connection.set("scm:git:git@github.com:aws-observability/aws-otel-java-instrumentation.git")
143+
developerConnection.set("scm:git:git@github.com:aws-observability/aws-otel-java-instrumentation.git")
144+
url.set("https://github.com/aws-observability/aws-otel-java-instrumentation.git")
145+
}
146+
}
147+
}
148+
}
149+
}
150+
151+
tasks.withType<Sign>().configureEach {
152+
onlyIf { System.getenv("CI") == "true" }
153+
}
154+
155+
configure<SigningExtension> {
156+
val signingKey = System.getenv("GPG_PRIVATE_KEY")
157+
val signingPassword = System.getenv("GPG_PASSPHRASE")
158+
useInMemoryPgpKeys(signingKey, signingPassword)
159+
sign(the<PublishingExtension>().publications["maven"])
160+
}
161+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
rootProject.name = "aws-distro-opentelemetry-xray-udp-span-exporter"
2+
3+
dependencyResolutionManagement {
4+
repositories {
5+
mavenCentral()
6+
mavenLocal()
7+
8+
maven {
9+
setUrl("https://oss.sonatype.org/content/repositories/snapshots")
10+
}
11+
}
12+
}
13+
14+
pluginManagement {
15+
plugins {
16+
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
17+
id("nebula.release") version "18.0.6"
18+
}
19+
}

0 commit comments

Comments
 (0)