Skip to content

Commit

Permalink
Publish snapshot to GitHub pages (#41)
Browse files Browse the repository at this point in the history
* Workaround for tags

* publish the snapshot to GitHub pages

* update api dump

* fix tests

* update to more recent librarian

* Disable test temporarily
  • Loading branch information
martinbonnin authored Sep 16, 2024
1 parent d7cdb46 commit b302428
Show file tree
Hide file tree
Showing 13 changed files with 177 additions and 37 deletions.
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()

0 comments on commit b302428

Please sign in to comment.