Skip to content

Commit

Permalink
fix: the upload task explicitly depends on the signing task
Browse files Browse the repository at this point in the history
  • Loading branch information
DanySK committed Jun 17, 2022
1 parent 868513e commit c510415
Showing 1 changed file with 18 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,9 @@ fun MavenPublication.configureForMavenCentral(extension: PublishOnCentralExtensi
configurePomForMavenCentral(extension)
val project = extension.project
// Signing
project.tasks.findByName("sign${name.capitalized()}Publication")
?: project.configure<SigningExtension> {
sign(this@configureForMavenCentral)
}
findSigningTaskIn(project) ?: project.configure<SigningExtension> {
sign(this@configureForMavenCentral)
}
}

/**
Expand Down Expand Up @@ -132,27 +131,28 @@ private fun Project.configureNexusRepository(repoToConfigure: Repository, nexusU
val publicationName = publication.name.replaceFirstChar(Char::titlecase)
project.tasks.register<PublishToMavenRepository>(
"upload${publicationName}To${repoToConfigure.name}Nexus",
).configure { publishTask ->
publishTask.repository = project.repositories.maven { repo ->
).configure { uploadTask ->
uploadTask.repository = project.repositories.maven { repo ->
repo.name = repoToConfigure.name
repo.url = project.uri(repoToConfigure.url)
repo.credentials {
it.username = repoToConfigure.user.orNull
it.password = repoToConfigure.password.orNull
}
}
publishTask.dependsOn(createStagingRepository)
uploadAllPublications.get().dependsOn(publishTask)
closeStagingRepository.get().mustRunAfter(publishTask)
publishTask.publication = publication
publishTask.doFirst {
publication.findSigningTaskIn(project)?.let { uploadTask.dependsOn(it) }
uploadTask.dependsOn(createStagingRepository)
uploadAllPublications.get().dependsOn(uploadTask)
closeStagingRepository.get().mustRunAfter(uploadTask)
uploadTask.publication = publication
uploadTask.doFirst {
warnIfCredentialsAreMissing(repoToConfigure)
}
publishTask.doLast {
publishTask.repository.url = nexusUploadUrl.get()
uploadTask.doLast {
uploadTask.repository.url = nexusUploadUrl.get()
}
publishTask.group = PublishingPlugin.PUBLISH_TASK_GROUP
publishTask.description = "Uploads the $publicationName publication " +
uploadTask.group = PublishingPlugin.PUBLISH_TASK_GROUP
uploadTask.description = "Uploads the $publicationName publication " +
"to a staging repository on ${repoToConfigure.name}."
}
}
Expand All @@ -175,3 +175,6 @@ private fun Project.warnIfCredentialsAreMissing(repository: Repository) {
)
}
}

private fun MavenPublication.findSigningTaskIn(project: Project) =
project.tasks.findByName("sign${name.capitalized()}Publication")

0 comments on commit c510415

Please sign in to comment.