Skip to content

Commit

Permalink
Merge pull request #8 from ReneeVandervelde/release-updates
Browse files Browse the repository at this point in the history
Stabilize API for release
  • Loading branch information
ReneeVandervelde authored Dec 30, 2023
2 parents 8925be6 + ab1150c commit 3031471
Show file tree
Hide file tree
Showing 30 changed files with 1,045 additions and 78 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/pull_requests.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: Pull Request
name: PR Checks
on: [pull_request]
jobs:
tests:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/[email protected].1
uses: actions/[email protected].4
-
name: Unit Tests
run: ./gradlew build jvmTest
name: Checks
run: ./gradlew check
81 changes: 72 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,87 @@
on:
push:
tags: ['*']
name: Release
on:
push:
tags: ['*']
env:
GITHUB_TAG: ${{ github.ref }}
jobs:
build:
tests:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/[email protected]
-
name: Configure Java
uses: actions/[email protected]
with:
java-version: 17
distribution: oracle
-
name: Tests
run: ./gradlew check
linux:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/[email protected]
uses: actions/[email protected]
-
name: Configure Java
uses: actions/[email protected]
with:
java-version: 17
distribution: oracle
-
name: Maven Publish
env:
GITHUB_TAG: ${{ github.ref }}
ORG_GRADLE_PROJECT_mavenUser: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.PGP_INK_CI_KEYID }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_INK_CI_PRIVATE }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_INK_CI_PASSWORD }}
run: >
./gradlew
publishKotlinMultiplatformPublicationToMavenCentralRepository
publishLinuxX64PublicationToMavenCentralRepository
publishLinuxArm64PublicationToMavenCentralRepository
publishJsPublicationToMavenCentralRepository
publishJvmPublicationToMavenCentralRepository
-Pversion=${GITHUB_TAG/refs\/tags\//}
macos:
runs-on: macos-latest
steps:
-
name: Checkout
uses: actions/[email protected]
-
name: Build
run: ./gradlew build
name: Configure Java
uses: actions/[email protected]
with:
java-version: 17
distribution: oracle
-
name: Publish
name: Maven Publish
env:
GITHUB_TAG: ${{ github.ref }}
ORG_GRADLE_PROJECT_mavenUser: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.PGP_INK_CI_KEYID }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_INK_CI_PRIVATE }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_INK_CI_PASSWORD }}
run: ./gradlew publishAllPublicationsToMavenCentralRepository -Pversion=${GITHUB_TAG/refs\/tags\//}
run: >
./gradlew
publishMacosX64PublicationToMavenCentralRepository
publishMacosArm64PublicationToMavenCentralRepository
publishIosSimulatorArm64PublicationToMavenCentralRepository
publishIosX64PublicationToMavenCentralRepository
publishWatchosSimulatorArm64PublicationToMavenCentralRepository
publishWatchosX64PublicationToMavenCentralRepository
publishWatchosArm32PublicationToMavenCentralRepository
publishWatchosArm64PublicationToMavenCentralRepository
publishTvosSimulatorArm64PublicationToMavenCentralRepository
publishTvosX64PublicationToMavenCentralRepository
publishTvosArm64PublicationToMavenCentralRepository
publishIosArm64PublicationToMavenCentralRepository
-Pversion=${GITHUB_TAG/refs\/tags\//}
14 changes: 10 additions & 4 deletions .github/workflows/snapshots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,18 @@ on:
push:
branches: [master]
jobs:
build:
tests:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/[email protected].1
uses: actions/[email protected].4
-
name: Build
run: ./gradlew build jvmTest
name: Configure Java
uses: actions/[email protected]
with:
java-version: 17
distribution: oracle
-
name: Tests
run: ./gradlew check
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Change Log
==========

1.0.0
-----

### New

- Releases for Structures, Codec and client libraries!
- API is considered stable for the structures, codec and client libraries.
- CLI tool is available for generating APRS-IS codes and parsing files.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright 2020-2022 Ink Applications
Copyright 2020-2023 Ink Applications

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
8 changes: 6 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import org.gradle.api.tasks.testing.logging.TestExceptionFormat

subprojects {
repositories {
mavenCentral()
google()
}

allprojects {
repositories {
mavenCentral()
maven(url = "https://kotlin.bintray.com/kotlinx/")
google()
}

Expand Down
3 changes: 2 additions & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ repositories {
dependencies {
implementation(kotlinLibraries.kotlin.gradle)
implementation(thirdParty.mosaic)
implementation(inkLibraries.ink.publishing)
implementation(thirdParty.dokka)
implementation(thirdParty.kotlinx.binary.compatibility)
}
2 changes: 0 additions & 2 deletions buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
enableFeaturePreview("VERSION_CATALOGS")

dependencyResolutionManagement {
versionCatalogs {
create("thirdParty") {
Expand Down
76 changes: 76 additions & 0 deletions buildSrc/src/main/kotlin/ink.publishing.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
plugins {
id("maven-publish")
id("signing")
id("org.jetbrains.dokka")
id("org.jetbrains.kotlinx.binary-compatibility-validator")
}

val dokkaHtml by tasks.getting(org.jetbrains.dokka.gradle.DokkaTask::class)

val javadocJar: TaskProvider<Jar> by tasks.registering(Jar::class) {
dependsOn(dokkaHtml)
archiveClassifier.set("javadoc")
from(dokkaHtml.outputDirectory)
}

publishing {
repositories {
val mavenUser = findProperty("mavenUser")?.toString()
val mavenPassword = findProperty("mavenPassword")?.toString()
if (mavenUser != null && mavenPassword != null) {
maven {
name = "MavenCentral"
setUrl("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
credentials {
username = mavenUser
password = mavenPassword
}
}
}
}
publications {
withType<MavenPublication> {
artifact(javadocJar)
pom {
name.set("ACK ${project.name}")
description.set("APRS Client for Kotlin")
url.set("https://ack.inkapplications.com")
licenses {
license {
name.set("MIT")
url.set("https://choosealicense.com/licenses/mit/")
}
}
developers {
developer {
id.set("reneevandervelde")
name.set("Renee Vandervelde")
email.set("[email protected]")
}
}
scm {
connection.set("scm:git:https://github.com/InkApplications/ack.git")
developerConnection.set("scm:git:ssh://[email protected]:InkApplications/ack.git")
url.set("https://github.com/InkApplications/ack")
}
}
}
}
}

signing {
val signingKey = findProperty("signingKey")?.toString()
val signingKeyId = findProperty("signingKeyId")?.toString()
val signingPassword = findProperty("signingPassword")?.toString()
val shouldSign = signingKeyId != null && signingKey != null && signingPassword != null

if (shouldSign) {
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign(publishing.publications)
}
}

val signingTasks: TaskCollection<Sign> = tasks.withType<Sign>()
tasks.withType<PublishToMavenRepository>().configureEach {
mustRunAfter(signingTasks)
}
28 changes: 28 additions & 0 deletions buildSrc/src/main/kotlin/multiplatform.tier1.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
plugins {
kotlin("multiplatform")
}

repositories {
mavenCentral()
}

kotlin {
jvmToolchain(11)
jvm()
// js(IR) {
// nodejs()
// browser()
// browser {
// testTask {
// useKarma {
// useFirefoxHeadless()
// }
// }
// }
// }
macosX64()
macosArm64()
iosSimulatorArm64()
iosX64()
}

22 changes: 22 additions & 0 deletions buildSrc/src/main/kotlin/multiplatform.tier2.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
plugins {
kotlin("multiplatform")
id("multiplatform.tier1")
}

repositories {
mavenCentral()
}

kotlin {
linuxX64()
linuxArm64()
watchosSimulatorArm64()
watchosX64()
watchosArm32()
watchosArm64()
tvosSimulatorArm64()
tvosX64()
tvosArm64()
iosArm64()
}

18 changes: 18 additions & 0 deletions buildSrc/src/main/kotlin/multiplatform.tier3.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
plugins {
kotlin("multiplatform")
id("multiplatform.tier2")
}

repositories {
mavenCentral()
}

kotlin {
androidNativeArm32()
androidNativeArm64()
androidNativeX86()
androidNativeX64()
mingwX64()
watchosDeviceArm64()
}

2 changes: 1 addition & 1 deletion cli/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {
}

application {
mainClassName = "com.inkapplications.ack.cli.MainKt"
mainClass.set("com.inkapplications.ack.cli.MainKt")
}

dependencies {
Expand Down
Loading

0 comments on commit 3031471

Please sign in to comment.