Skip to content

Fix maven release #50

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

Merged
merged 80 commits into from
May 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
4d1c37d
Added implementation("org.sonatype.central:central-publishing-maven-p…
tcasstevens May 19, 2025
901694e
Removed maven-publish plugin
tcasstevens May 19, 2025
6d713ab
changed snapshot repository
tcasstevens May 19, 2025
322186e
configure nexusPublishing
tcasstevens May 19, 2025
673ca9a
configure publishing
tcasstevens May 19, 2025
07ee555
configuring jreleaser for publishing to maven central
tcasstevens May 20, 2025
e67d8db
Update run-publish-maven.yml
tcasstevens May 20, 2025
afe6fdd
Update run-publish-maven.yml
tcasstevens May 20, 2025
b0dd15d
Update run-publish-maven.yml
tcasstevens May 20, 2025
15e1634
Update run-publish-maven.yml
tcasstevens May 20, 2025
51a5d50
Update run-publish-maven.yml
tcasstevens May 20, 2025
e380cdb
Update run-publish-maven.yml
tcasstevens May 20, 2025
d99eb8b
Update run-publish-maven.yml
tcasstevens May 20, 2025
33b4595
Update run-publish-maven.yml
tcasstevens May 20, 2025
e0f05e9
Update run-publish-maven.yml
tcasstevens May 20, 2025
6471ab5
Update run-publish-maven.yml
tcasstevens May 20, 2025
3ffe5db
Update getVersionName() in build.gradle.kts to add .0 or .0.0 to vers…
tcasstevens May 20, 2025
a997b44
Adjusted getVersionName() in build.gradle.kts to remove a 'v' or 'V' …
tcasstevens May 20, 2025
3a7e536
Update build.gradle.kts
tcasstevens May 20, 2025
d56a63b
Update build.gradle.kts
tcasstevens May 20, 2025
8d06b86
Update build.gradle.kts
tcasstevens May 20, 2025
f211ca1
Update run-publish-maven.yml
tcasstevens May 20, 2025
fa34251
Update run-publish-maven.yml
tcasstevens May 20, 2025
11f0584
Update run-publish-maven.yml
tcasstevens May 20, 2025
a7c2c2d
Update build.gradle.kts
tcasstevens May 20, 2025
6713bb0
Update run-publish-maven.yml
tcasstevens May 20, 2025
d1a77a5
Update run-publish-maven.yml
tcasstevens May 20, 2025
21b0e08
Update build.gradle.kts
tcasstevens May 20, 2025
21b8f4c
Update build.gradle.kts
tcasstevens May 20, 2025
a453bfd
Update run-publish-maven.yml
tcasstevens May 20, 2025
0825dfb
Update run-publish-maven.yml
tcasstevens May 20, 2025
cea42ae
Update run-publish-maven.yml
tcasstevens May 20, 2025
644fed1
Update run-publish-maven.yml
tcasstevens May 20, 2025
99be35a
Update run-publish-maven.yml
tcasstevens May 20, 2025
7866c37
Update build.gradle.kts
tcasstevens May 21, 2025
0df7b16
Update build.gradle.kts
tcasstevens May 21, 2025
9156110
Update build.gradle.kts
tcasstevens May 21, 2025
556e122
Update build.gradle.kts
tcasstevens May 21, 2025
d8b53ce
Update run-publish-maven.yml
tcasstevens May 21, 2025
e8f376d
Update run-publish-maven.yml
tcasstevens May 21, 2025
e29fe31
Update build.gradle.kts
tcasstevens May 21, 2025
bdc960f
Updated build.gradle.kts
tcasstevens May 21, 2025
9ebd07a
Update build.gradle.kts
tcasstevens May 21, 2025
159649d
Update build.gradle.kts
tcasstevens May 21, 2025
9885601
Update build.gradle.kts
tcasstevens May 21, 2025
bfaf0cc
Update run-publish-maven.yml
tcasstevens May 22, 2025
01e7e27
removing buildScript and apply in build.gradle.kts
tcasstevens May 22, 2025
a0973a3
Update build.gradle.kts
tcasstevens May 22, 2025
e94d31f
Update build.gradle.kts
tcasstevens May 22, 2025
bd02100
Update build.gradle.kts
tcasstevens May 22, 2025
578997b
Change gradle target to jreleaserPublish
tcasstevens May 22, 2025
9b89ade
disable github release
tcasstevens May 22, 2025
d229dec
Update run-publish-maven.yml
tcasstevens May 22, 2025
50a124d
added skipRelease to github
tcasstevens May 22, 2025
7c46364
Update build.gradle.kts
tcasstevens May 22, 2025
67eaf96
Update build.gradle.kts
tcasstevens May 22, 2025
7b31bd7
Update build.gradle.kts
tcasstevens May 22, 2025
dad6e44
Update build.gradle.kts
tcasstevens May 22, 2025
25d1c75
Update build.gradle.kts
tcasstevens May 22, 2025
69b4a8f
Update build.gradle.kts
tcasstevens May 22, 2025
6e05cea
Update build.gradle.kts
tcasstevens May 22, 2025
cc6dfd9
Update build.gradle.kts
tcasstevens May 22, 2025
171c3bd
Update build.gradle.kts
tcasstevens May 22, 2025
9de0e7b
Update build.gradle.kts
tcasstevens May 22, 2025
b2328b1
Update build.gradle.kts
tcasstevens May 22, 2025
9c498b8
Update build.gradle.kts
tcasstevens May 22, 2025
9d2d176
Added JRELEASER_DEPLOY_MAVEN_MAVENCENTRAL_SONATYPE_USERNAME env
tcasstevens May 22, 2025
02149e7
Update build.gradle.kts
tcasstevens May 22, 2025
ab2e801
Update build.gradle.kts
tcasstevens May 22, 2025
c06374e
Update build.gradle.kts
tcasstevens May 22, 2025
9fb2a07
Update build.gradle.kts
tcasstevens May 22, 2025
72585c5
Update build.gradle.kts
tcasstevens May 22, 2025
a4541bd
Update run-publish-maven.yml
tcasstevens May 22, 2025
1a97b49
Update run-publish-maven.yml
tcasstevens May 22, 2025
b4fcbaf
Update run-publish-maven.yml
tcasstevens May 22, 2025
3f3f163
Update run-publish-maven.yml
tcasstevens May 23, 2025
a17872e
Update run-publish-maven.yml
tcasstevens May 23, 2025
0bae555
Update run-publish-maven.yml
tcasstevens May 23, 2025
e829584
Cleaned up build.gradle.kts
tcasstevens May 23, 2025
27b45a9
Update build.gradle.kts
tcasstevens May 23, 2025
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
9 changes: 8 additions & 1 deletion .github/workflows/run-publish-maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,16 @@ jobs:
run: chmod +x ./gradlew

- name: Publish to Maven Central Repository
run: conda run ./gradlew clean publishToSonatype closeAndReleaseSonatypeStagingRepository --no-daemon
run: conda run --no-capture-output bash -c "./gradlew jreleaserConfig && ./gradlew clean && ./gradlew publish && ./gradlew jreleaserFullRelease -Dorg.gradle.jvmargs=\"-Xmx8g\""

This comment was marked as resolved.

env:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USERNAME }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_PASSWORD }}
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
GPG_SIGNING_PASSWORD: ${{ secrets.GPG_SIGNING_PASSWORD }}
JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_SIGNING_KEY }}
JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_SIGNING_PASSWORD }}
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }}
JRELEASER_GITHUB_TOKEN: ${{ secrets.BIOKOTLINMAVEN }}
JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.OSSRH_USERNAME }}
JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}

102 changes: 60 additions & 42 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jreleaser.model.Active
import java.io.ByteArrayOutputStream
import java.nio.file.Files
import java.nio.file.Paths
import kotlin.io.path.isRegularFile
import kotlin.jvm.optionals.getOrNull

// Note Kotlin version needs to be updated in both the buildscript and plugins.
// Dependencies will follow the buildscript

// This is used to get the version from the git tag
// The version is expected to be in the format X.Y.Z
// JReleaser will use this version to create the release
fun getVersionName(): String {
val stdout = ByteArrayOutputStream()
exec {
commandLine = listOf("git", "describe", "--tags", "--abbrev=0")
standardOutput = stdout
}
return stdout.toString().trim()
val versionStr = stdout.toString().trim().removePrefix("v").removePrefix("V")
val parts = versionStr.split('.')
val normalizedStr = when (parts.size) {
0 -> throw IllegalArgumentException("Version string is empty")
1 -> "${parts[0]}.0.0"
2 -> "${parts[0]}.${parts[1]}.0"
else -> versionStr
}
return normalizedStr
}

group = "org.biokotlin"
Expand All @@ -25,20 +34,8 @@ This build script is need to use the early access
*/
buildscript {
val kotlinVersion by extra("1.9.24")

repositories {
mavenCentral()
gradlePluginPortal()
}

dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
classpath(kotlin("serialization", version = kotlinVersion))
classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.9.20")
}
}


plugins {
val kotlinVersion = "1.9.24"
java
Expand All @@ -56,22 +53,17 @@ plugins {
`java-library`
`maven-publish`
signing
id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
}
apply {
plugin("kotlinx-serialization")
plugin("org.jetbrains.dokka")
id("org.jreleaser") version "1.18.0"
}


repositories {
mavenCentral()
gradlePluginPortal()
maven("https://maven.imagej.net/content/groups/public/")
maven("https://jitpack.io")
maven("https://dl.bintray.com/kotlin/kotlin-eap")
maven("https://kotlin.bintray.com/kotlinx")
maven("https://oss.sonatype.org/content/repositories/snapshots/")
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/eap")
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlinx")

}

dependencies {
Expand Down Expand Up @@ -121,13 +113,14 @@ dependencies {
testImplementation("io.kotest:kotest-$it-jvm:$kotestVersion")
}

//consider adding Kotlintest
}
//This is used for code generation for DataFrame Schema, however, it does not work
//https://github.com/Kotlin/dataframe/tree/eb9ec4fb90f906f6a98e69b9c5a0369009d34bbb/plugins/gradle/codegen
//kotlin.sourceSets.getByName("main").kotlin.srcDir("build/generated/ksp/main/kotlin/")

// This is used for code generation for DataFrame Schema, however, it does not work
// https://github.com/Kotlin/dataframe/tree/eb9ec4fb90f906f6a98e69b9c5a0369009d34bbb/plugins/gradle/codegen
// kotlin.sourceSets.getByName("main").kotlin.srcDir("build/generated/ksp/main/kotlin/")

java {
// withJavadocJar()
withSourcesJar()
}

Expand Down Expand Up @@ -408,6 +401,7 @@ publishing {

pom {
name.set("BioKotlin")
artifactId = "biokotlin"
description.set("BioKotlin aims to be a high-performance bioinformatics library that brings the power and speed of compiled programming languages to scripting and big data environments.")
url.set("http://www.biokotlin.org/")
licenses {
Expand Down Expand Up @@ -467,27 +461,51 @@ publishing {
}
}
}

repositories {
maven {
url = layout.buildDirectory.dir("staging-deploy").get().asFile.toURI()
}
}
}

signing {
useInMemoryPgpKeys(System.getenv("GPG_SIGNING_KEY"), System.getenv("GPG_SIGNING_PASSWORD"))
sign(publishing.publications["maven"])
}

tasks.javadoc {
dependsOn("dokkaJavadoc")
if (JavaVersion.current().isJava9Compatible) {
(options as StandardJavadocDocletOptions).addBooleanOption("html5", true)
jreleaser {
signing {
active.set(Active.ALWAYS)
armored.set(true)
setMode("MEMORY")
}
}

nexusPublishing {
repositories {
sonatype()
deploy {
active.set(Active.ALWAYS)
release {
github {
skipRelease = true
skipTag = true
}
}
maven {
active.set(Active.ALWAYS)
mavenCentral {
signing {
active.set(Active.ALWAYS)
armored.set(true)
setMode("MEMORY")
}
create("sonatype") {
active.set(Active.ALWAYS)
url.set("https://central.sonatype.com/api/v1/publisher")
stagingRepository("build/staging-deploy")
}
}
}
}
}

tasks.publish {
dependsOn(dokkaJar)
mustRunAfter(dokkaJar)
}
tasks.named("publish") {
dependsOn("dokkaJar", "sourcesJar")
}