Skip to content

Commit

Permalink
Make Gradle logic reusable
Browse files Browse the repository at this point in the history
  • Loading branch information
LouisCAD committed Nov 7, 2023
1 parent 6798959 commit 2b82d68
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 45 deletions.
14 changes: 13 additions & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,17 @@ plugins {
}

repositories {
jcenter()
mavenCentral()
gradlePluginPortal()
}

fun plugin(id: String, version: String) = "$id:$id.gradle.plugin:$version"

dependencies {
implementation(plugin(id = "com.gradle.plugin-publish", version = "0.20.0"))
implementation(plugin(id = "org.jetbrains.kotlin.jvm", version = "1.9.20"))
}

kotlin {
compilerOptions.freeCompilerArgs.add("-Xcontext-receivers")
}
35 changes: 35 additions & 0 deletions buildSrc/src/main/kotlin/kotlin-jvm-lib.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.kotlin.dsl.*
import publishing.trySignAll

plugins {
java
kotlin("jvm")
`maven-publish`
signing
}

java { withSourcesJar() }
kotlin { jvmToolchain(8) }
signing { trySignAll() }

dependencies {
testImplementation(kotlin("test"))
}

publishing {
publications.withType<MavenPublication> {
artifact(tasks.emptyJavadocJar())
setupPom()
}
publications {
create<MavenPublication>("maven") {
from(components["java"])
}
mavenCentralStagingPublishing(
project = project,
repositoryId = System.getenv("sonatype_staging_repo_id")
)
sonatypeSnapshotsPublishing(project = project)
}
}
17 changes: 17 additions & 0 deletions buildSrc/src/main/kotlin/publishing/Signing.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package publishing

import gradle.kotlin.dsl.accessors._08d0b7ba318b04adf2094ca092a1d609.publishing
import org.gradle.api.Project
import org.gradle.plugins.signing.SigningExtension
import propertyOrEnv
import propertyOrEnvOrNull

context (Project)
fun SigningExtension.trySignAll() {
useInMemoryPgpKeys(
propertyOrEnvOrNull("GPG_key_id"), // If using a sub-key.
propertyOrEnvOrNull("GPG_private_key") ?: return,
propertyOrEnv("GPG_private_password")
)
sign(publishing.publications)
}
45 changes: 1 addition & 44 deletions lib-publishing-helpers/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,48 +1,5 @@
plugins {
java
kotlin("jvm") version "1.7.10"
`maven-publish`
signing
`kotlin-jvm-lib`
}

group = "com.louiscad.incubator"
version = "0.2.5"

repositories {
mavenCentral()
}

dependencies {
testImplementation(kotlin("test"))
}

java {
sourceCompatibility = JavaVersion.VERSION_1_8
withSourcesJar()
}

signing {
useInMemoryPgpKeys(
propertyOrEnvOrNull("GPG_key_id"),
propertyOrEnvOrNull("GPG_private_key") ?: return@signing,
propertyOrEnv("GPG_private_password")
)
sign(publishing.publications)
}

publishing {
publications.withType<MavenPublication> {
artifact(tasks.emptyJavadocJar())
setupPom()
}
publications {
create<MavenPublication>("maven") {
from(components["java"])
}
mavenCentralStagingPublishing(
project = project,
repositoryId = System.getenv("sonatype_staging_repo_id")
)
sonatypeSnapshotsPublishing(project = project)
}
}
12 changes: 12 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,2 +1,14 @@
rootProject.name = "LibPublishingHelpers"
include("lib-publishing-helpers")

dependencyResolutionManagement {
repositories {
mavenCentral()
}
}

val versionOfThisProject: String = file("version.txt").bufferedReader().use { it.readLine() }

gradle.beforeProject {
version = versionOfThisProject
}
1 change: 1 addition & 0 deletions version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.2.6-SNAPSHOT

0 comments on commit 2b82d68

Please sign in to comment.