Skip to content

Commit 992cb82

Browse files
committed
Merge branch 'main' into feature/SerializersModule
2 parents c0b7eae + 34b4d27 commit 992cb82

43 files changed

Lines changed: 1310 additions & 1034 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/run_gradle_task.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,13 @@ jobs:
6161
ref: ${{ inputs.checkout-ref || github.ref }}
6262

6363
- name: Validate Gradle Wrapper
64-
uses: gradle/wrapper-validation-action@v3
64+
uses: gradle/actions/wrapper-validation@v5
6565

6666
- name: Setup JDK
6767
uses: actions/setup-java@v4
6868
with:
6969
distribution: temurin
70-
java-version: 11
70+
java-version: 17
7171

7272
- name: Cache NPM
7373
uses: actions/cache@v4
@@ -88,11 +88,11 @@ jobs:
8888
- name: Run the tests
8989
run: ./gradlew ${{ inputs.gradle-task }}
9090
env:
91-
ORG_GRADLE_PROJECT_sonatypeRepositoryUsername: ${{ secrets.MAVEN_SONATYPE_USERNAME }}
92-
ORG_GRADLE_PROJECT_sonatypeRepositoryPassword: ${{ secrets.MAVEN_SONATYPE_PASSWORD }}
93-
"ORG_GRADLE_PROJECT_signing.keyId": ${{ secrets.MAVEN_SONATYPE_SIGNING_KEY_ID }}
94-
"ORG_GRADLE_PROJECT_signing.key": ${{ secrets.MAVEN_SONATYPE_SIGNING_KEY }}
95-
"ORG_GRADLE_PROJECT_signing.password": ${{ secrets.MAVEN_SONATYPE_SIGNING_PASSWORD }}
91+
MAVEN_SONATYPE_USERNAME: ${{ secrets.MAVEN_SONATYPE_USERNAME }}
92+
MAVEN_SONATYPE_PASSWORD: ${{ secrets.MAVEN_SONATYPE_PASSWORD }}
93+
MAVEN_SONATYPE_SIGNING_KEY_ID: ${{ secrets.MAVEN_SONATYPE_SIGNING_KEY_ID }}
94+
MAVEN_SONATYPE_SIGNING_KEY: ${{ secrets.MAVEN_SONATYPE_SIGNING_KEY }}
95+
MAVEN_SONATYPE_SIGNING_PASSWORD: ${{ secrets.MAVEN_SONATYPE_SIGNING_PASSWORD }}
9696

9797
- name: Upload build reports
9898
if: failure()

.github/workflows/run_publish_maven.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@ jobs:
4040
with:
4141
runs-on: macos-latest # only macOS supports building all Kotlin targets
4242
gradle-task: >-
43-
publishAllPublicationsToSonatypeReleaseRepository --stacktrace --no-configuration-cache --no-parallel
43+
nmcpPublish --stacktrace --no-configuration-cache --no-parallel
4444
checkout-ref: ${{ inputs.checkout-ref }}

.github/workflows/run_publish_site.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ jobs:
3232
ref: ${{ inputs.checkout-ref || github.ref }}
3333

3434
- name: Validate Gradle Wrapper
35-
uses: gradle/wrapper-validation-action@v3
35+
uses: gradle/actions/wrapper-validation@v5
3636

3737
- name: Setup JDK
3838
uses: actions/setup-java@v4
3939
with:
4040
distribution: temurin
41-
java-version: 11
41+
java-version: 17
4242

4343
- name: Cache NPM
4444
uses: actions/cache@v4

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ gradle-app.setting
88
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
99
!gradle-wrapper.jar
1010

11+
### Kotlin ###
12+
13+
.kotlin/
14+
1115
### Linux ###
1216
*~
1317

build.gradle.kts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ plugins {
44
idea
55
id("org.jetbrains.kotlinx.kover")
66
buildsrc.convention.base
7+
id("com.gradleup.nmcp.aggregation")
78
}
89

910

@@ -18,6 +19,8 @@ idea {
1819
excludeGeneratedGradleDsl(layout)
1920
excludeDirs = excludeDirs + layout.files(
2021
".idea",
22+
".kotlin",
23+
"buildSrc/.kotlin",
2124
"gradle/kotlin-js-store",
2225
"gradle/wrapper",
2326
"site/.docusaurus",
@@ -35,3 +38,39 @@ val projectVersion by tasks.registering {
3538
logger.quiet("${version.orNull}")
3639
}
3740
}
41+
42+
nmcpAggregation {
43+
centralPortal {
44+
username = providers.gradleProperty("dev.adamko.kxstsgen.mavenCentralUsername")
45+
.orElse(providers.environmentVariable("MAVEN_SONATYPE_USERNAME"))
46+
password = providers.gradleProperty("dev.adamko.kxstsgen.mavenCentralPassword")
47+
.orElse(providers.environmentVariable("MAVEN_SONATYPE_PASSWORD"))
48+
49+
// publish manually from the portal
50+
publishingType = "USER_MANAGED"
51+
}
52+
}
53+
54+
dependencies {
55+
nmcpAggregation(projects.modules.kxsTsGenCore)
56+
nmcpAggregation(projects.modules.versionsPlatform)
57+
}
58+
59+
val isReleaseVersion: Provider<Boolean> =
60+
providers.provider { !project.version.toString().endsWith("-SNAPSHOT") }
61+
62+
tasks.nmcpPublishAggregationToCentralPortal {
63+
val isReleaseVersion = isReleaseVersion
64+
onlyIf("is release version") { _ -> isReleaseVersion.get() }
65+
}
66+
67+
tasks.nmcpPublishAggregationToCentralPortalSnapshots {
68+
val isReleaseVersion = isReleaseVersion
69+
onlyIf("is snapshot version") { _ -> !isReleaseVersion.get() }
70+
}
71+
72+
tasks.register("nmcpPublish") {
73+
group = PublishingPlugin.PUBLISH_TASK_GROUP
74+
dependsOn(tasks.nmcpPublishAggregationToCentralPortal)
75+
dependsOn(tasks.nmcpPublishAggregationToCentralPortalSnapshots)
76+
}

buildSrc/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ dependencies {
1212
implementation(libs.gradlePlugin.kotlinxKnit)
1313
implementation(libs.gradlePlugin.kotest)
1414
implementation(libs.gradlePlugin.kotlinSymbolProcessing)
15+
implementation(libs.gradlePlugin.nmcp)
1516
}

buildSrc/src/main/kotlin/buildsrc/config/distributions.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,13 @@ import org.gradle.api.model.ObjectFactory
77
import org.gradle.kotlin.dsl.named
88

99
/** Mark this [Configuration] as one that will be consumed by other subprojects. */
10-
fun Configuration.asProvider(
11-
visible: Boolean = false
12-
) {
13-
isVisible = visible
10+
fun Configuration.asProvider() {
1411
isCanBeResolved = false
1512
isCanBeConsumed = true
1613
}
1714

1815
/** Mark this [Configuration] as one that will consume (also known as 'resolving') artifacts from other subprojects */
19-
fun Configuration.asConsumer(
20-
visible: Boolean = false
21-
) {
22-
isVisible = visible
16+
fun Configuration.asConsumer() {
2317
isCanBeResolved = true
2418
isCanBeConsumed = false
2519
}

buildSrc/src/main/kotlin/buildsrc/config/gradle.kt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,3 @@ fun ProviderFactory.credentialsAction(
4343
password = pass
4444
}
4545
}
46-
47-
48-
/** Logic from [KotlinJvmTarget.withJava] */
49-
fun Project.isKotlinMultiplatformJavaEnabled(): Boolean {
50-
val multiplatformExtension: KotlinMultiplatformExtension? =
51-
extensions.findByType(KotlinMultiplatformExtension::class)
52-
53-
return multiplatformExtension?.targets
54-
?.any { it is KotlinJvmTarget && it.withJavaEnabled }
55-
?: false
56-
}

buildSrc/src/main/kotlin/buildsrc/config/kmm.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package buildsrc.config
22

3-
import org.gradle.api.GradleException
43
import org.gradle.api.Project
54
import org.gradle.kotlin.dsl.findByType
6-
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
7-
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests
85
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension
96

107

buildSrc/src/main/kotlin/buildsrc/convention/knit-tests.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package buildsrc.convention
22

3-
import buildsrc.config.knitDocsAttributes
4-
import buildsrc.config.asConsumer
5-
import org.gradle.kotlin.dsl.withType
63
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
74

85
plugins {

0 commit comments

Comments
 (0)