From 5a034aee46ea5817c91b7edddb245de073534b78 Mon Sep 17 00:00:00 2001 From: Nicolas Farabegoli Date: Sun, 29 Jan 2023 17:58:23 +0100 Subject: [PATCH] feat: declare as step output the staging repository id --- .../gradle/mavencentral/Configuration.kt | 11 +++++++++++ .../gradle/mavencentral/NexusStatefulOperation.kt | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/org/danilopianini/gradle/mavencentral/Configuration.kt b/src/main/kotlin/org/danilopianini/gradle/mavencentral/Configuration.kt index 35d821bf4..af6308878 100644 --- a/src/main/kotlin/org/danilopianini/gradle/mavencentral/Configuration.kt +++ b/src/main/kotlin/org/danilopianini/gradle/mavencentral/Configuration.kt @@ -105,6 +105,17 @@ private fun Project.configureNexusRepository(repoToConfigure: Repository, nexusU doLast { rootProject.warnIfCredentialsAreMissing(repoToConfigure) nexusClient.nexusClient.repoUrl // triggers the initialization of a repository + // Write the staging repository ID to the Github env if on CI + if (System.getenv("CI") == true.toString()) { + exec { + it.commandLine( + "echo", + "${repoToConfigure.name}StagingRepositoryId=${nexusClient.nexusClient.repoId}", + ">>", + "\$GITHUB_OUTPUT" + ) + } + } } group = PublishingPlugin.PUBLISH_TASK_GROUP description = "Creates a new Nexus staging repository on ${repoToConfigure.name}." diff --git a/src/main/kotlin/org/danilopianini/gradle/mavencentral/NexusStatefulOperation.kt b/src/main/kotlin/org/danilopianini/gradle/mavencentral/NexusStatefulOperation.kt index c77507fc4..3eac6e583 100644 --- a/src/main/kotlin/org/danilopianini/gradle/mavencentral/NexusStatefulOperation.kt +++ b/src/main/kotlin/org/danilopianini/gradle/mavencentral/NexusStatefulOperation.kt @@ -60,9 +60,10 @@ data class NexusStatefulOperation( * Lazily computed staging repository descriptor. */ val stagingRepository: StagingRepositoryDescriptor by lazy { - project.properties["nexusStagingRepositoryId"]?.let { + project.properties["stagingRepositoryId"]?.let { project.logger.lifecycle("Using existing staging repository {}", it) - return@lazy StagingRepositoryDescriptor(project.uri(nexusUrl), it as String) + val stagingRepo = client.getStagingRepositoryStateById(it as String) + return@lazy StagingRepositoryDescriptor(project.uri(nexusUrl), stagingRepo.id) } ?: run { project.logger.lifecycle("Creating repository for profile id {} on Nexus at {}", stagingProfile, nexusUrl) client.createStagingRepository(