Publish package to gitea

This commit is contained in:
2024-09-01 19:11:15 +02:00
parent 38964c1499
commit 9d6944400c
4 changed files with 143 additions and 29 deletions

1
.gitignore vendored
View File

@@ -45,3 +45,4 @@ bin/
.DS_Store
/web
/gradle.properties

View File

@@ -0,0 +1,8 @@
<component name="ArtifactManager">
<artifact type="jar" name="typed-byte-arrays-js-0.1.0-SNAPSHOT">
<output-path>$PROJECT_DIR$/build/libs</output-path>
<root id="archive" name="typed-byte-arrays-js-0.1.0-SNAPSHOT.jar">
<element id="module-output" name="typed-byte-arrays.jsMain" />
</root>
</artifact>
</component>

View File

@@ -0,0 +1,8 @@
<component name="ArtifactManager">
<artifact type="jar" name="typed-byte-arrays-jvm-0.1.0-SNAPSHOT">
<output-path>$PROJECT_DIR$/build/libs</output-path>
<root id="archive" name="typed-byte-arrays-jvm-0.1.0-SNAPSHOT.jar">
<element id="module-output" name="typed-byte-arrays.jvmMain" />
</root>
</artifact>
</component>

View File

@@ -1,9 +1,12 @@
plugins {
kotlin("multiplatform") version "2.0.20"
`maven-publish`
signing
id("org.jetbrains.dokka") version "1.5.31"
}
group = "nl.astraeus"
version = "1.0-SNAPSHOT"
version = "0.1.0-SNAPSHOT"
repositories {
mavenCentral()
@@ -11,51 +14,28 @@ repositories {
kotlin {
jvm {
kotlin {
jvmToolchain(17)
}
withJava()
}
js {
browser {
distribution {
outputDirectory.set(file("$projectDir/web/"))
}
}
browser {}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation(kotlin("stdlib"))
}
}
val commonMain by getting
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
}
}
val jvmMain by getting {
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
}
val jvmMain by getting
val jvmTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val jsMain by getting {
dependencies {
implementation(kotlin("stdlib-js"))
}
}
val jsMain by getting
val jsTest by getting {
dependencies {
implementation(kotlin("test-js"))
@@ -63,3 +43,120 @@ kotlin {
}
}
}
extra["PUBLISH_GROUP_ID"] = group
extra["PUBLISH_VERSION"] = version
extra["PUBLISH_ARTIFACT_ID"] = name
// Stub secrets to let the project sync and build without the publication values set up
val signingKeyId: String? by project
val signingPassword: String? by project
val signingSecretKeyRingFile: String? by project
extra["signing.keyId"] = signingKeyId
extra["signing.password"] = signingPassword
extra["signing.secretKeyRingFile"] = signingSecretKeyRingFile
val javadocJar by tasks.registering(Jar::class) {
archiveClassifier.set("javadoc")
}
publishing {
repositories {
mavenLocal()
maven {
name = "gitea"
setUrl("https://gitea.astraeus.nl/api/packages/rnentjes/maven")
credentials() {
val giteaUsername: String? by project
val giteaPassword: String? by project
username = giteaUsername
password = giteaPassword
}
}
}
// Configure all publications
publications.withType<MavenPublication> {
// Stub javadoc.jar artifact
artifact(javadocJar.get())
// Provide artifacts information requited by Maven Central
pom {
name.set("typed-byte-arrays")
description.set("Typed byte arrays")
url.set("https://gitea.astraeus.nl/rnentjes/typed-byte-arrays")
licenses {
license {
name.set("MIT")
url.set("https://opensource.org/licenses/MIT")
}
}
developers {
developer {
id.set("rnentjes")
name.set("Rien Nentjes")
email.set("info@nentjes.com")
}
}
scm {
url.set("https://gitea.astraeus.nl/rnentjes/typed-byte-arrays")
}
}
}
}
signing {
sign(publishing.publications)
}
tasks.named<Task>("publishJsPublicationToMavenLocal") {
dependsOn(tasks.named<Task>("signJvmPublication"))
}
tasks.named<Task>("publishJvmPublicationToMavenLocal") {
dependsOn(tasks.named<Task>("signJsPublication"))
}
tasks.named<Task>("publishJvmPublicationToMavenLocal") {
dependsOn(tasks.named<Task>("signKotlinMultiplatformPublication"))
}
tasks.named<Task>("publishJsPublicationToMavenLocal") {
dependsOn(tasks.named<Task>("signKotlinMultiplatformPublication"))
}
tasks.named<Task>("publishKotlinMultiplatformPublicationToMavenLocal") {
dependsOn(tasks.named<Task>("signJvmPublication"))
}
tasks.named<Task>("publishKotlinMultiplatformPublicationToMavenLocal") {
dependsOn(tasks.named<Task>("signJsPublication"))
}
tasks.named<Task>("publishJsPublicationToGiteaRepository") {
dependsOn(tasks.named<Task>("signJvmPublication"))
}
tasks.named<Task>("publishJvmPublicationToGiteaRepository") {
dependsOn(tasks.named<Task>("signJsPublication"))
}
tasks.named<Task>("publishJvmPublicationToGiteaRepository") {
dependsOn(tasks.named<Task>("signKotlinMultiplatformPublication"))
}
tasks.named<Task>("publishJsPublicationToGiteaRepository") {
dependsOn(tasks.named<Task>("signKotlinMultiplatformPublication"))
}
tasks.named<Task>("publishKotlinMultiplatformPublicationToGiteaRepository") {
dependsOn(tasks.named<Task>("signJvmPublication"))
}
tasks.named<Task>("publishKotlinMultiplatformPublicationToGiteaRepository") {
dependsOn(tasks.named<Task>("signJsPublication"))
}