Repository navigation
klua 0.1.6 — CI/CD to Maven Central
CI/CD: tag-triggered Maven Central publish
Adds the publishing infrastructure that was previously wired only for a self-hosted macOS ARM runner.
Build changes
- Plugin chain swap.
maven-publish+pw.binom.publish.PrepareProject→com.vanniktech.maven.publish+org.jetbrains.dokka, both pinned in the newgradle/libs.versions.tomlcatalog. mavenPublishing { publishToMavenCentral(automaticRelease = true); signAllPublications(); coordinates(pw.binom:klua:<tag>) }replaces the old in-house POM/scm/license blocks.- Signing toggle.
signingUseGpg=true(CI) switches thesigningextension touseGpgCmd(); locally it falls back to in-memory PGP keys fromsigningInMemoryKey{,Id,Password,IsBase64}(or the legacybinom.gpg.*properties). - Source-set wiring. The dead
pw.binom.publish.dependsOn(mask, to)helper (from the removed binom-publish plugin) is replaced with a standardsourceSets.matching { ... }.configureEach { dependsOn(...) }block — same semantics for the linux/androidNative/mingw/macos POSIX family. - buildSrc cleanup. Dropped
pw.binom:binom-publish:0.1.23,org.jetbrains.dokka:dokka-gradle-plugin:1.9.20, and the now-orphanedpw.binom.plugins.HttpServerTask+io.vertx:vertx-web:4.2.1.
Workflow
- New
.github/workflows/release.yml(tag-triggered onN.N.N*). ubuntu-latest+ Temurin OpenJDK 21 (Liberica 21.0.6 tripsgetgenericunder this project's JNI binding, see project memory).- Installs
gcc g++ clang mingw-w64, imports the GPG key viaprintf '%b'+pinentry-mode loopback. - Pre-publish test gate:
jvmTest linuxX64Testmust stay green. Pre-chained withdownloadKonanToolchainLinux_arm64,downloadKonanToolchainMingw_x64so the cross-target JVM host libs have toolchains. The KGP 2.4.20downloadKonantask itself is skipped (-x downloadKonan) because it hardcodes the legacy asset name; the workflow pre-fetches the correctkotlin-native-prebuilt-linux-x86_64-2.4.20.tar.gzfrom GitHub releases and unpacks it into~/.konan/before gradle runs. publishToMavenCentralis invoked with-PsigningUseGpg=true -Psigning.gnupg.{keyName,passphrase}=… -PmavenCentralUsername=… -PmavenCentralPassword=…. Uses the new Central Portal API (central.sonatype.com), not the legacy s01 staging URL.- Old
.github/workflows/publish.yml(self-hosted semeru JDK 17) removed. .gitignorenow coversbuild/,.gradle/,buildSrc/{build,.gradle}/,.kotlin/,.idea/,.veai/.
Verified locally
./gradlew help— plugins load clean../gradlew tasks --group=publishing—publishToMavenCentral, per-targetpublishJvmPublicationToMavenCentralRepository/publishLinuxX64PublicationToMavenCentralRepository/publishLinuxArm64…/publishMingwX64…/publishAndroidNative{32,64,X86,X64}…, plussign*Publicationtasks are registered../gradlew jvmTest— 44/44 pass../gradlew linuxX64Test— 35/35 pass.