Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish snapshot to GitHub pages #41

Merged
merged 6 commits into from
Sep 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions librarian-cli/api/librarian-cli.api
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,35 @@ public final class com/gradleup/librarian/cli/MultilineSecretComponent : com/git
public fun value ()Ljava/lang/String;
}

public final class com/gradleup/librarian/cli/UtilsKt {
public static final fun requireInteraction ()V
}

public final class com/gradleup/librarian/cli/VersionKt {
public static final field VERSION Ljava/lang/String;
}

public final class com/gradleup/librarian/cli/command/init/GradleWrapperCommand : com/github/ajalt/clikt/core/CliktCommand {
public final class com/gradleup/librarian/cli/command/CreateGitHubRepository : com/github/ajalt/clikt/core/CliktCommand {
public fun <init> ()V
public fun run ()V
}

public final class com/gradleup/librarian/cli/command/GenerateKey : com/github/ajalt/clikt/core/CliktCommand {
public fun <init> ()V
public fun run ()V
}

public final class com/gradleup/librarian/cli/command/init/PublishingCommand : com/github/ajalt/clikt/core/CliktCommand {
public final class com/gradleup/librarian/cli/command/UploadKey : com/github/ajalt/clikt/core/CliktCommand {
public fun <init> ()V
public final fun getKeyFile ()Ljava/lang/String;
public fun run ()V
}

public final class com/gradleup/librarian/cli/command/init/GitHubSecretsKt {
public static final fun setSecrets (Ljava/nio/file/Path;)V
}

public final class com/gradleup/librarian/cli/command/init/GradleWrapperCommand : com/github/ajalt/clikt/core/CliktCommand {
public fun <init> ()V
public fun run ()V
}
Expand Down
84 changes: 73 additions & 11 deletions librarian-core/api/librarian-core.api
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public final class com/gradleup/librarian/core/tooling/GH {
public final fun createBranch (Ljava/lang/String;)V
public final fun enablePages (Ljava/lang/String;)V
public final fun repository ()Lcom/gradleup/librarian/core/tooling/GitHubRepository;
public final fun repositoryOrNull ()Lcom/gradleup/librarian/core/tooling/GitHubRepository;
public final fun setDescription (Ljava/lang/String;)V
public final fun setSecret (Ljava/lang/String;Ljava/lang/String;)V
public final fun setUrl (Ljava/lang/String;)V
Expand All @@ -23,18 +22,35 @@ public final class com/gradleup/librarian/core/tooling/GH {
public final class com/gradleup/librarian/core/tooling/GHKt {
public static final fun GH (Ljava/nio/file/Path;)Lcom/gradleup/librarian/core/tooling/GH;
public static final fun getAvailableOrganizations ()Ljava/util/List;
public static final fun gitHubRepositoryOrNull (Ljava/nio/file/Path;)Lcom/gradleup/librarian/core/tooling/GitHubRepository;
}

public final class com/gradleup/librarian/core/tooling/GitHubRepository {
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
public final fun getName ()Ljava/lang/String;
public final fun getOwner ()Ljava/lang/String;
public final fun rawUrl (Ljava/lang/String;)Ljava/lang/String;
public final fun url ()Ljava/lang/String;
}

public final class com/gradleup/librarian/core/tooling/JsonKt {
public static final fun toJsonElement (Ljava/lang/String;)Lkotlinx/serialization/json/JsonElement;
}

public final class com/gradleup/librarian/core/tooling/KeysKt {
public static final fun armored ([B)Ljava/lang/String;
public static final fun dearmored (Ljava/lang/String;)[B
public static final fun secretKeyRing (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/gradleup/librarian/core/tooling/SecretKeyRing;
public static final fun secretKeyRingOrNull (Ljava/nio/file/Path;)Lcom/gradleup/librarian/core/tooling/SecretKeyRing;
public static final fun uploadKey (Ljava/lang/String;[B)Lcom/gradleup/librarian/core/tooling/UploadResult;
}

public final class com/gradleup/librarian/core/tooling/PreRelease {
public fun <init> (Ljava/lang/String;I)V
public final fun getName ()Ljava/lang/String;
public final fun getVersion ()I
}

public final class com/gradleup/librarian/core/tooling/ProcessKt {
public static final fun runCommand (Ljava/nio/file/Path;[Ljava/lang/String;)V
public static final fun runCommandAndCaptureStdout (Ljava/nio/file/Path;[Ljava/lang/String;)Lcom/gradleup/librarian/core/tooling/ProcessResult;
Expand All @@ -49,18 +65,61 @@ public final class com/gradleup/librarian/core/tooling/ProcessResult {

public final class com/gradleup/librarian/core/tooling/ResourceKt {
public static final fun makeExecutable (Ljava/nio/file/Path;)Ljava/nio/file/Path;
public static final fun readResource (Ljava/lang/String;)Ljava/lang/String;
public static final fun readBinaryResource (Ljava/lang/String;)[B
public static final fun readTextResource (Ljava/lang/String;)Ljava/lang/String;
public static final fun substituteVariables (Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
public static final fun substituteVariables (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Ljava/lang/String;
public static final fun writeTo (Ljava/lang/String;Ljava/nio/file/Path;)V
public static final fun writeTextTo (Ljava/lang/String;Ljava/nio/file/Path;)V
}

public final class com/gradleup/librarian/core/tooling/SecretKeyRing {
public fun <init> (Lorg/bouncycastle/openpgp/PGPSecretKeyRing;)V
public final fun publicKey ()[B
public final fun secretKey ()[B
}

public final class com/gradleup/librarian/core/tooling/SemverKt {
public static final fun copy (Lcom/gradleup/librarian/core/tooling/PreRelease;Ljava/lang/String;I)Lcom/gradleup/librarian/core/tooling/PreRelease;
public static final fun copy (Lcom/gradleup/librarian/core/tooling/Version;IIILcom/gradleup/librarian/core/tooling/PreRelease;Z)Lcom/gradleup/librarian/core/tooling/Version;
public static synthetic fun copy$default (Lcom/gradleup/librarian/core/tooling/PreRelease;Ljava/lang/String;IILjava/lang/Object;)Lcom/gradleup/librarian/core/tooling/PreRelease;
public static synthetic fun copy$default (Lcom/gradleup/librarian/core/tooling/Version;IIILcom/gradleup/librarian/core/tooling/PreRelease;ZILjava/lang/Object;)Lcom/gradleup/librarian/core/tooling/Version;
public static final fun next (Lcom/gradleup/librarian/core/tooling/Version;)Lcom/gradleup/librarian/core/tooling/Version;
public static final fun nextMinor (Lcom/gradleup/librarian/core/tooling/Version;)Lcom/gradleup/librarian/core/tooling/Version;
public static final fun nextPatch (Lcom/gradleup/librarian/core/tooling/Version;)Lcom/gradleup/librarian/core/tooling/Version;
public static final fun toVersionOrNull (Ljava/lang/String;)Lcom/gradleup/librarian/core/tooling/Version;
}

public final class com/gradleup/librarian/core/tooling/Tag_and_bumpKt {
public static final fun tagAndBump (Ljava/lang/String;)V
public static final fun getCurrentVersion ()Ljava/lang/String;
public static final fun tagAndBump (Lcom/gradleup/librarian/core/tooling/Version;)V
}

public final class com/gradleup/librarian/core/tooling/UploadError : com/gradleup/librarian/core/tooling/UploadResult {
public fun <init> (Ljava/lang/String;)V
public final fun getMessage ()Ljava/lang/String;
}

public abstract interface class com/gradleup/librarian/core/tooling/UploadResult {
}

public final class com/gradleup/librarian/core/tooling/UploadSuccess : com/gradleup/librarian/core/tooling/UploadResult {
public fun <init> (Ljava/lang/String;)V
public final fun getUrl ()Ljava/lang/String;
}

public final class com/gradleup/librarian/core/tooling/Version {
public fun <init> (IIILcom/gradleup/librarian/core/tooling/PreRelease;Z)V
public final fun compareTo (Lcom/gradleup/librarian/core/tooling/Version;)I
public final fun getMajor ()I
public final fun getMinor ()I
public final fun getPatch ()I
public final fun getPreRelease ()Lcom/gradleup/librarian/core/tooling/PreRelease;
public final fun isSnapshot ()Z
public fun toString ()Ljava/lang/String;
}

public final class com/gradleup/librarian/core/tooling/init/ActionsKt {
public static final fun initActions (Ljava/nio/file/Path;Ljava/lang/String;)V
public static final fun initActions (Ljava/nio/file/Path;Ljava/lang/String;Z)V
}

public final class com/gradleup/librarian/core/tooling/init/ChangelogKt {
Expand All @@ -83,6 +142,11 @@ public final class com/gradleup/librarian/core/tooling/init/Gradle_wrapperKt {
public static final fun initGradleWrapper (Ljava/nio/file/Path;)V
}

public final class com/gradleup/librarian/core/tooling/init/LibrarianKt {
public static final fun initLibrarian (Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;Lcom/gradleup/librarian/core/tooling/init/SonatypeBackend;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/gradleup/librarian/core/tooling/init/SupportedLicense;Ljava/lang/String;Ljava/lang/String;)V
public static final fun toBaseUrl (Lcom/gradleup/librarian/core/tooling/init/SonatypeBackend;)Ljava/lang/String;
}

public final class com/gradleup/librarian/core/tooling/init/LicenseKt {
public static final fun currentYear ()Ljava/lang/String;
public static final fun guessLicenseOrNull (Ljava/nio/file/Path;)Lcom/gradleup/librarian/core/tooling/init/SupportedLicense;
Expand All @@ -95,11 +159,9 @@ public final class com/gradleup/librarian/core/tooling/init/MetadataKt {
}

public final class com/gradleup/librarian/core/tooling/init/ProjectKt {
public static final fun initProject (Ljava/nio/file/Path;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/gradleup/librarian/core/tooling/GitHubRepository;)V
}

public final class com/gradleup/librarian/core/tooling/init/PublishingKt {
public static final fun initPublishing (Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;Lcom/gradleup/librarian/core/tooling/init/SonatypeBackend;Ljava/lang/String;Lcom/gradleup/librarian/core/tooling/GitHubRepository;Lcom/gradleup/librarian/core/tooling/init/SupportedLicense;)V
public static final fun getKotlinPluginVersion ()Ljava/lang/String;
public static final fun initProject (Ljava/nio/file/Path;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/gradleup/librarian/core/tooling/GitHubRepository;ZLcom/gradleup/librarian/core/tooling/init/SonatypeBackend;)V
public static final fun writeBinaryTo ([BLjava/nio/file/Path;)V
}

public final class com/gradleup/librarian/core/tooling/init/Secrets {
Expand Down Expand Up @@ -133,8 +195,8 @@ public final class com/gradleup/librarian/core/tooling/init/SonatypeRelease : ja

public final class com/gradleup/librarian/core/tooling/init/SupportedLicense : java/lang/Enum {
public static final field MIT Lcom/gradleup/librarian/core/tooling/init/SupportedLicense;
public final fun getDisplayName ()Ljava/lang/String;
public static fun getEntries ()Lkotlin/enums/EnumEntries;
public final fun getFullName ()Ljava/lang/String;
public static fun valueOf (Ljava/lang/String;)Lcom/gradleup/librarian/core/tooling/init/SupportedLicense;
public static fun values ()[Lcom/gradleup/librarian/core/tooling/init/SupportedLicense;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ jobs:
- uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda #v3.4.2
- run: |
export JAVA_HOME=$JAVA_HOME_21_X64 # Remove when ubuntu-latest updates to Java 21
./gradlew dokkatooGeneratePublicationHtml
mkdir -p build/static
cp -rf build/dokka/html build/static/kdoc
./gradlew librarianStaticContent
unzip artifacts/webHelpDOC2-all.zip -d build/static
- uses: JamesIves/github-pages-deploy-action@94f3c658273cf92fb48ef99e5fbc02bd2dc642b2 #v4.6.3
Expand Down
4 changes: 1 addition & 3 deletions librarian-core/src/main/resources/actions/publish-pages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,7 @@ jobs:
- uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda #v3.4.2
- run: |
export JAVA_HOME=$JAVA_HOME_21_X64 # Remove when ubuntu-latest updates to Java 21
./gradlew dokkatooGeneratePublicationHtml
mkdir -p build/static
cp -rf build/dokka/html build/static/kdoc
./gradlew librarianStaticContent
- uses: JamesIves/github-pages-deploy-action@94f3c658273cf92fb48ef99e5fbc02bd2dc642b2 #v4.6.3
with:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ jobs:

steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #v4.1.7
with:
# See https://github.com/cli/cli/issues/9558
ref: ${{ github.ref }}
- uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda #v3.4.2
- run: |
./gradlew librarianPublishToMavenCentral
Expand Down
2 changes: 2 additions & 0 deletions librarian-core/src/test/kotlin/UploadKeyTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ import com.gradleup.librarian.core.tooling.secretKeyRingOrNull
import com.gradleup.librarian.core.tooling.uploadKey
import kotlinx.coroutines.runBlocking
import kotlin.io.path.Path
import kotlin.test.Ignore
import kotlin.test.Test
import kotlin.test.assertEquals

class UploadKeyTest {
@Ignore
@Test
fun test(): Unit = runBlocking {
val mockServer = MockServer()
Expand Down
24 changes: 14 additions & 10 deletions librarian-gradle-plugin/api/librarian-gradle-plugin.api
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,6 @@ public final class com/gradleup/librarian/gradle/KmpKt {
public static final fun allAppleTargets (Lorg/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension;)V
}

public final class com/gradleup/librarian/gradle/LibrarianKt {
public static final fun librarianProperties (Lorg/gradle/api/Project;)Ljava/util/Properties;
}

public final class com/gradleup/librarian/gradle/LibrarianPlugin : org/gradle/api/Plugin {
public fun <init> ()V
public synthetic fun apply (Ljava/lang/Object;)V
Expand Down Expand Up @@ -139,6 +135,16 @@ public final class com/gradleup/librarian/gradle/internal/Publishing_androidKt {
public static final fun createAndroidPublication (Lorg/gradle/api/Project;Ljava/lang/String;)V
}

public abstract class com/gradleup/librarian/gradle/internal/task/CloseAndMaybeReleaseRepositoryTask : org/gradle/api/DefaultTask {
public fun <init> ()V
public abstract fun getAutomatic ()Lorg/gradle/api/provider/Property;
public abstract fun getBaseUrl ()Lorg/gradle/api/provider/Property;
public abstract fun getPassword ()Lorg/gradle/api/provider/Property;
public abstract fun getRepoId ()Lorg/gradle/api/provider/Property;
public abstract fun getUsername ()Lorg/gradle/api/provider/Property;
public final fun taskAction ()V
}

public abstract class com/gradleup/librarian/gradle/internal/task/CreateRepositoryTask : org/gradle/api/DefaultTask {
public fun <init> ()V
public abstract fun getBaseUrl ()Lorg/gradle/api/provider/Property;
Expand All @@ -163,13 +169,11 @@ public abstract class com/gradleup/librarian/gradle/internal/task/DeployToPortal
public final fun taskAction ()V
}

public abstract class com/gradleup/librarian/gradle/internal/task/ReleaseRepositoryTask : org/gradle/api/DefaultTask {
public abstract class com/gradleup/librarian/gradle/internal/task/GenerateStaticContentTask : org/gradle/api/DefaultTask {
public fun <init> ()V
public abstract fun getAutomatic ()Lorg/gradle/api/provider/Property;
public abstract fun getBaseUrl ()Lorg/gradle/api/provider/Property;
public abstract fun getPassword ()Lorg/gradle/api/provider/Property;
public abstract fun getRepoId ()Lorg/gradle/api/provider/Property;
public abstract fun getUsername ()Lorg/gradle/api/provider/Property;
public abstract fun getKdocFiles ()Lorg/gradle/api/file/ConfigurableFileCollection;
public abstract fun getOutputDirectory ()Lorg/gradle/api/file/DirectoryProperty;
public abstract fun getRepositoryFiles ()Lorg/gradle/api/file/ConfigurableFileCollection;
public final fun taskAction ()V
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.gradleup.librarian.gradle.internal.task

import org.gradle.api.DefaultTask
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction

abstract class GenerateStaticContentTask: DefaultTask() {
@get:InputFiles
abstract val repositoryFiles: ConfigurableFileCollection

@get:InputFiles
abstract val kdocFiles: ConfigurableFileCollection

@get:OutputDirectory
abstract val outputDirectory: DirectoryProperty

@TaskAction
fun taskAction() {
outputDirectory.get().asFile.let { base ->
base.deleteRecursively()
base.mkdirs()
repositoryFiles.asFileTree.visit { source ->
if (source.file.isDirectory) {
return@visit
}
base.resolve("repository").resolve(source.path).let { destination ->
destination.parentFile.mkdirs()
source.file.copyTo(destination)
}
}
kdocFiles.asFileTree.visit { source ->
if (source.file.isDirectory) {
return@visit
}
base.resolve("kdoc").resolve(source.path).let { destination ->
destination.parentFile.mkdirs()
source.file.copyTo(destination)
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ fun Project.configurePublishing(
}

private fun Project.emptyJavadoc(repositoryUrl: String?): TaskProvider<Jar> {
return tasks.register("librarianEmptyJavadoc", org.gradle.jvm.tasks.Jar::class.java) {
return tasks.register("librarianEmptyJavadoc", Jar::class.java) {
it.archiveClassifier.set("javadoc")
val extra = repositoryUrl?.let { " or $repositoryUrl" }
it.from(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,14 @@ fun Project.librarianRoot() {
}
val allFiles = allFilesConfiguration.incoming.artifactView { it.lenient(true) }.files

val librarianStaticContent = tasks.register("librarianStaticContent", GenerateStaticContentTask::class.java) {
it.dependsOn("dokkatooGeneratePublicationHtml")

it.repositoryFiles.from(allFiles)
it.kdocFiles.from(file("build/dokka/html"))

it.outputDirectory.set(layout.buildDirectory.dir("static"))
}
val repoId = createRepoTask.map { it.output.get().asFile.readText() }

val mavenCentralTaskProvider: TaskProvider<*>
Expand Down
2 changes: 2 additions & 0 deletions librarian-gradle-plugin/src/test/kotlin/GradleTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@ import org.gradle.testkit.runner.GradleRunner
import org.gradle.testkit.runner.TaskOutcome
import java.io.File
import java.util.zip.ZipInputStream
import kotlin.test.Ignore
import kotlin.test.Test
import kotlin.test.assertEquals

class GradleTest {
@Ignore // Blocked on https://github.com/apollographql/apollo-kotlin-mockserver/pull/10
@Test
fun portalEndToEndTest() = runBlocking {
val mockWebServer = MockServer()
Expand Down
7 changes: 3 additions & 4 deletions librarian-gradle-plugin/testProjects/simple/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import com.gradleup.librarian.gradle.librarianRoot

plugins {
id("org.jetbrains.kotlin.jvm").version("2.0.0").apply(false)
id("com.gradleup.librarian")
}

librarian {
root()
}

librarianRoot()
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import com.gradleup.librarian.gradle.librarianModule

plugins {
id("org.jetbrains.kotlin.jvm")
id("com.gradleup.librarian")
}

librarian {
module()
}
librarianModule()