|
|
|
@ -1,3 +1,9 @@
|
|
|
|
|
import org.jetbrains.compose.internal.publishing.* |
|
|
|
|
|
|
|
|
|
plugins { |
|
|
|
|
signing |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val composeBuild = gradle.includedBuild("support") |
|
|
|
|
fun Task.dependsOnComposeTask(name: String) = dependsOn(composeBuild.task(name)) |
|
|
|
|
|
|
|
|
@ -131,3 +137,69 @@ tasks.register("testComposeModules") { // used in https://github.com/JetBrains/a
|
|
|
|
|
tasks.register("run") { |
|
|
|
|
dependsOnComposeTask(":compose:desktop:desktop:desktop-samples:run") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val mavenCentral = MavenCentralProperties(project) |
|
|
|
|
if (mavenCentral.signArtifacts) { |
|
|
|
|
signing.useInMemoryPgpKeys( |
|
|
|
|
mavenCentral.signArtifactsKey.get(), |
|
|
|
|
mavenCentral.signArtifactsPassword.get() |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val publishingDir = project.layout.buildDirectory.dir("publishing") |
|
|
|
|
val originalArtifactsRoot = publishingDir.map { it.dir("original") } |
|
|
|
|
val preparedArtifactsRoot = publishingDir.map { it.dir("prepared") } |
|
|
|
|
val modulesFile = publishingDir.map { it.file("modules.txt") } |
|
|
|
|
|
|
|
|
|
val findComposeModules by tasks.registering(FindModulesInSpaceTask::class) { |
|
|
|
|
requestedGroupId.set("org.jetbrains.compose") |
|
|
|
|
requestedVersion.set(mavenCentral.version) |
|
|
|
|
spaceInstanceUrl.set("https://public.jetbrains.space") |
|
|
|
|
spaceClientId.set(System.getenv("COMPOSE_REPO_USERNAME") ?: "") |
|
|
|
|
spaceClientSecret.set(System.getenv("COMPOSE_REPO_KEY") ?: "") |
|
|
|
|
spaceProjectId.set(System.getenv("COMPOSE_DEV_REPO_PROJECT_ID") ?: "") |
|
|
|
|
spaceRepoId.set(System.getenv("COMPOSE_DEV_REPO_REPO_ID") ?: "") |
|
|
|
|
modulesTxtFile.set(modulesFile) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val downloadArtifactsFromComposeDev by tasks.registering(DownloadFromSpaceMavenRepoTask::class) { |
|
|
|
|
dependsOn(findComposeModules) |
|
|
|
|
modulesToDownload.set(project.provider { readComposeModules(modulesFile, originalArtifactsRoot) }) |
|
|
|
|
spaceRepoUrl.set("https://maven.pkg.jetbrains.space/public/p/compose/dev") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val fixModulesBeforePublishing by tasks.registering(FixModulesBeforePublishingTask::class) { |
|
|
|
|
dependsOn(downloadArtifactsFromComposeDev) |
|
|
|
|
inputRepoDir.set(originalArtifactsRoot) |
|
|
|
|
outputRepoDir.set(preparedArtifactsRoot) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val reuploadArtifactsToMavenCentral by tasks.registering(UploadToSonatypeTask::class) { |
|
|
|
|
dependsOn(fixModulesBeforePublishing) |
|
|
|
|
|
|
|
|
|
version.set(mavenCentral.version) |
|
|
|
|
modulesToUpload.set(project.provider { readComposeModules(modulesFile, preparedArtifactsRoot) }) |
|
|
|
|
|
|
|
|
|
sonatypeServer.set("https://oss.sonatype.org") |
|
|
|
|
user.set(mavenCentral.user) |
|
|
|
|
password.set(mavenCentral.password) |
|
|
|
|
autoCommitOnSuccess.set(mavenCentral.autoCommitOnSuccess) |
|
|
|
|
autoDropOnError.set(mavenCentral.autoDropOnError) |
|
|
|
|
stagingProfileName.set("org.jetbrains.compose") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fun readComposeModules( |
|
|
|
|
modulesFile: Provider<out FileSystemLocation>, |
|
|
|
|
repoRoot: Provider<out FileSystemLocation> |
|
|
|
|
): List<ModuleToUpload> = |
|
|
|
|
modulesFile.get().asFile.readLines() |
|
|
|
|
.filter { it.isNotBlank() } |
|
|
|
|
.map { line -> |
|
|
|
|
val (group, artifact, version) = line.split(":") |
|
|
|
|
ModuleToUpload( |
|
|
|
|
groupId = group, |
|
|
|
|
artifactId = artifact, |
|
|
|
|
version = version, |
|
|
|
|
localDir = repoRoot.get().asFile.resolve("$group/$artifact/$version") |
|
|
|
|
) |
|
|
|
|
} |