Publish gradle-plugins to Maven Central (#5333)
* Publish gradle-plugins to Maven Central * Update .github/workflows/release-gradle-plugins.yml Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com> Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
This commit is contained in:
parent
7e5fa5ee93
commit
aeee5b4fae
|
|
@ -156,10 +156,16 @@ jobs:
|
|||
distribution: adopt
|
||||
java-version: 11
|
||||
|
||||
# TODO (trask) cache gradle wrapper?
|
||||
- name: Build and publish gradle plugins
|
||||
uses: gradle/gradle-build-action@v2
|
||||
env:
|
||||
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
|
||||
SONATYPE_KEY: ${{ secrets.SONATYPE_KEY }}
|
||||
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
|
||||
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
|
||||
run: ../gradlew build publishPlugins
|
||||
working-directory: gradle-plugins
|
||||
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }}
|
||||
with:
|
||||
# Don't use publishToSonatype since we don't want to publish the marker artifact
|
||||
arguments: build publishPlugins publishPluginMavenPublicationToSonatypeRepository closeAndReleaseSonatypeStagingRepository
|
||||
build-root-directory: gradle-plugins
|
||||
|
|
|
|||
|
|
@ -157,10 +157,15 @@ jobs:
|
|||
- name: Build and publish gradle plugins
|
||||
uses: gradle/gradle-build-action@v2
|
||||
env:
|
||||
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
|
||||
SONATYPE_KEY: ${{ secrets.SONATYPE_KEY }}
|
||||
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
|
||||
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
|
||||
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }}
|
||||
with:
|
||||
arguments: build publishPlugins
|
||||
# Don't use publishToSonatype since we don't want to publish the marker artifact
|
||||
arguments: build publishPlugins publishPluginMavenPublicationToSonatypeRepository closeAndReleaseSonatypeStagingRepository
|
||||
build-root-directory: gradle-plugins
|
||||
|
||||
- name: Set release version
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import java.time.Duration
|
|||
plugins {
|
||||
`kotlin-dsl`
|
||||
`maven-publish`
|
||||
signing
|
||||
|
||||
id("com.gradle.plugin-publish")
|
||||
id("io.github.gradle-nexus.publish-plugin")
|
||||
|
|
@ -44,8 +45,16 @@ dependencies {
|
|||
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
|
||||
}
|
||||
|
||||
tasks.withType<Test>().configureEach {
|
||||
useJUnitPlatform()
|
||||
tasks {
|
||||
withType<Test>().configureEach {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
withType<JavaCompile>().configureEach {
|
||||
with(options) {
|
||||
release.set(8)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pluginBundle {
|
||||
|
|
@ -67,6 +76,14 @@ gradlePlugin {
|
|||
}
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion.set(JavaLanguageVersion.of(11))
|
||||
}
|
||||
withJavadocJar()
|
||||
withSourcesJar()
|
||||
}
|
||||
|
||||
nexusPublishing {
|
||||
packageGroup.set("io.opentelemetry")
|
||||
|
||||
|
|
@ -86,3 +103,49 @@ tasks {
|
|||
enabled = !version.toString().contains("SNAPSHOT")
|
||||
}
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
publishing {
|
||||
publications {
|
||||
named<MavenPublication>("pluginMaven") {
|
||||
pom {
|
||||
name.set("OpenTelemetry Instrumentation Gradle Plugins")
|
||||
description.set("Gradle plugins to assist developing OpenTelemetry instrumentation")
|
||||
url.set("https://github.com/open-telemetry/opentelemetry-java-instrumentation")
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name.set("The Apache License, Version 2.0")
|
||||
url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
|
||||
}
|
||||
}
|
||||
|
||||
developers {
|
||||
developer {
|
||||
id.set("opentelemetry")
|
||||
name.set("OpenTelemetry")
|
||||
url.set("https://github.com/open-telemetry/opentelemetry-java-instrumentation/discussions")
|
||||
}
|
||||
}
|
||||
|
||||
scm {
|
||||
connection.set("scm:git:git@github.com:open-telemetry/opentelemetry-java-instrumentation.git")
|
||||
developerConnection.set("scm:git:git@github.com:open-telemetry/opentelemetry-java-instrumentation.git")
|
||||
url.set("git@github.com:open-telemetry/opentelemetry-java-instrumentation.git")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sign only if we have a key to do so
|
||||
val signingKey: String? = System.getenv("GPG_PRIVATE_KEY")
|
||||
// Stub out entire signing block off of CI since Gradle provides no way of lazy configuration of
|
||||
// signing tasks.
|
||||
if (System.getenv("CI") != null && signingKey != null) {
|
||||
signing {
|
||||
useInMemoryPgpKeys(signingKey, System.getenv("GPG_PASSWORD"))
|
||||
sign(publishing.publications["pluginMaven"])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue