Skip to content

Commit 12cd4fc

Browse files
committed
cleanup build:
* move kotlin version to VC * move plugins to root * remove build-parameters
1 parent e3c3724 commit 12cd4fc

27 files changed

+94
-151
lines changed

.github/actions/setup-gradle/action.yml

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
name: "Setup Gradle"
22
description: "Setup konan relocation and gradle caching specific to kotlin MPP"
33
inputs:
4-
os:
5-
required: true
6-
description: "OS"
7-
default: ${{ matrix.os }}
84
cache-disabled:
95
description: When 'true', all caching is disabled. No entries will be written to or read from the cache.
106
required: false
@@ -16,28 +12,32 @@ inputs:
1612
required: false
1713
default: ${{ github.event.repository != null && github.ref_name != github.event.repository.default_branch }}
1814
runs:
19-
# noinspection YAMLSchemaValidation
2015
using: "composite"
2116
steps:
22-
- if: inputs.os != 'windows-latest'
17+
- if: runner.os != 'Windows'
2318
run: echo "KONAN_DATA_DIR=${HOME}/.gradle/konan" >> $GITHUB_ENV
2419
shell: bash
25-
- if: inputs.os == 'windows-latest'
20+
- if: runner.os == 'Windows'
2621
run: echo "KONAN_DATA_DIR=${USERPROFILE}\.gradle\konan" >> $GITHUB_ENV
2722
shell: bash
2823
- uses: actions/setup-java@v3
2924
with:
3025
distribution: 'temurin'
26+
# the latest listed version will be used for executions of gradle
3127
java-version: |
3228
8
3329
11
30+
21
3431
17
35-
20
32+
- name: Validate gradle wrapper
33+
uses: gradle/wrapper-validation-action@v1
3634
- name: Setup gradle
3735
uses: gradle/gradle-build-action@v2
3836
with:
3937
cache-disabled: ${{ inputs.cache-disabled }}
4038
cache-read-only: ${{ inputs.cache-read-only }}
39+
# disabled on windows because of issue with long paths
40+
gradle-home-cache-cleanup: true
4141
gradle-home-cache-includes: |
4242
caches
4343
notifications

gradle/plugins/build-logic/build.gradle.kts build-logic/build.gradle.kts

-5
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@ plugins {
1818
`kotlin-dsl`
1919
}
2020

21-
kotlin {
22-
jvmToolchain(8)
23-
}
24-
2521
dependencies {
2622
implementation(kotlinLibs.gradle.plugin)
27-
implementation("rsocket.build:build-parameters")
2823
}

gradle/plugins/build-logic/settings.gradle.kts build-logic/settings.gradle.kts

+6-17
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,19 @@
1515
*/
1616

1717
pluginManagement {
18-
repositories {
19-
gradlePluginPortal()
20-
mavenCentral()
21-
}
22-
includeBuild("../kotlin-version-catalog")
18+
includeBuild("../build-settings")
2319
}
2420

25-
dependencyResolutionManagement {
26-
repositories {
27-
gradlePluginPortal()
28-
mavenCentral()
29-
}
21+
plugins {
22+
id("rsocketbuild.settings.default")
23+
}
3024

25+
dependencyResolutionManagement {
3126
versionCatalogs {
3227
create("libs") {
33-
from(files("../../libs.versions.toml"))
28+
from(files("../gradle/libs.versions.toml"))
3429
}
3530
}
3631
}
3732

38-
plugins {
39-
id("kotlin-version-catalog")
40-
}
41-
4233
rootProject.name = "build-logic"
43-
44-
includeBuild("../build-parameters")

gradle/plugins/build-logic/src/main/kotlin/rsocket.multiplatform.gradle.kts build-logic/src/main/kotlin/rsocket.multiplatform.gradle.kts

-6
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
plugins {
1818
kotlin("multiplatform")
19-
id("build-parameters")
2019
}
2120

2221
kotlin {
@@ -37,8 +36,3 @@ kotlin {
3736
}
3837
}
3938
}
40-
41-
val buildParameters = the<buildparameters.BuildParametersExtension>()
42-
43-
if (buildParameters.skip.test) tasks.matching { it.name.endsWith("test", ignoreCase = true) }.configureEach { onlyIf { false } }
44-
if (buildParameters.skip.link) tasks.matching { it.name.startsWith("link", ignoreCase = true) }.configureEach { onlyIf { false } }

gradle/plugins/build-logic/src/main/kotlin/rsocket.publication.gradle.kts build-logic/src/main/kotlin/rsocket.publication.gradle.kts

-11
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,6 @@
1717
plugins {
1818
`maven-publish`
1919
signing
20-
id("build-parameters")
21-
}
22-
23-
val buildParameters = the<buildparameters.BuildParametersExtension>()
24-
25-
val versionSuffix = buildParameters.versionSuffix.orNull
26-
if (versionSuffix != null) {
27-
val versionString = project.version.toString()
28-
require(versionString.endsWith("-SNAPSHOT"))
29-
project.version = versionString.replace("-", "-${versionSuffix}-")
30-
println("Current version: ${project.version}")
3120
}
3221

3322
//empty javadoc for maven central

gradle/plugins/kotlin-version-catalog/build.gradle.kts build-settings/build.gradle.kts

+11-4
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,19 @@
1616

1717
plugins {
1818
`kotlin-dsl`
19+
alias(libs.plugins.buildconfig)
1920
}
2021

21-
kotlin {
22-
jvmToolchain(8)
22+
dependencies {
23+
implementation(libs.build.gradle.enterprise)
24+
implementation(libs.build.gradle.foojay)
2325
}
2426

25-
dependencies {
26-
implementation("rsocket.build:build-parameters")
27+
buildConfig {
28+
packageName("rsocketbuild.settings")
29+
useKotlinOutput {
30+
topLevelConstants = true
31+
internalVisibility = true
32+
}
33+
buildConfigField("String", "kotlinVersion", libs.versions.kotlin.map { "\"$it\"" })
2734
}

gradle/plugins/kotlin-version-catalog/settings.gradle.kts build-settings/settings.gradle.kts

+9-5
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,22 @@
1616

1717
pluginManagement {
1818
repositories {
19-
gradlePluginPortal()
2019
mavenCentral()
20+
gradlePluginPortal()
2121
}
2222
}
2323

2424
dependencyResolutionManagement {
2525
repositories {
26-
gradlePluginPortal()
2726
mavenCentral()
27+
gradlePluginPortal()
2828
}
29-
}
3029

31-
rootProject.name = "kotlin-version-catalog"
30+
versionCatalogs {
31+
create("libs") {
32+
from(files("../gradle/libs.versions.toml"))
33+
}
34+
}
35+
}
3236

33-
includeBuild("../build-parameters")
37+
rootProject.name = "build-settings"

gradle/plugins/build-parameters/settings.gradle.kts build-settings/src/main/kotlin/rsocketbuild.settings.default.settings.gradle.kts

+24-1
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,34 @@
1414
* limitations under the License.
1515
*/
1616

17+
plugins {
18+
id("rsocketbuild.settings.kotlin-version-catalog")
19+
id("com.gradle.enterprise")
20+
id("org.gradle.toolchains.foojay-resolver-convention")
21+
}
22+
1723
pluginManagement {
1824
repositories {
25+
mavenCentral()
1926
gradlePluginPortal()
27+
}
28+
}
29+
30+
dependencyResolutionManagement {
31+
repositories {
2032
mavenCentral()
33+
gradlePluginPortal()
34+
}
35+
}
36+
37+
gradleEnterprise {
38+
buildScan {
39+
publishAlwaysIf(System.getenv("CI").toBoolean())
40+
termsOfServiceUrl = "https://gradle.com/terms-of-service"
41+
if (System.getenv("GITHUB_REPOSITORY") == "rsocket/rsocket-kotlin") {
42+
termsOfServiceAgree = "yes"
43+
}
2144
}
2245
}
2346

24-
rootProject.name = "build-parameters"
47+
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

gradle/plugins/kotlin-version-catalog/src/main/kotlin/kotlin-version-catalog.settings.gradle.kts build-settings/src/main/kotlin/rsocketbuild.settings.kotlin-version-catalog.settings.gradle.kts

+12-9
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,29 @@
1414
* limitations under the License.
1515
*/
1616

17-
plugins {
18-
id("build-parameters")
19-
}
17+
import rsocketbuild.settings.*
2018

21-
val kotlinVersion = "1.9.20"
22-
val kotlinVersionOverride = the<buildparameters.BuildParametersExtension>().useKotlin.orNull?.takeIf(String::isNotBlank)
19+
val kotlinVersionOverride = providers.gradleProperty("rsocketbuild.kotlinVersionOverride").orNull?.takeIf(String::isNotBlank)
2320

2421
if (kotlinVersionOverride != null) logger.lifecycle("Kotlin version override: $kotlinVersionOverride")
2522

2623
pluginManagement {
2724
if (kotlinVersionOverride != null) repositories {
28-
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev")
25+
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev") {
26+
content {
27+
includeGroupAndSubgroups("org.jetbrains.kotlin")
28+
}
29+
}
2930
}
3031
}
3132

3233
dependencyResolutionManagement {
3334
if (kotlinVersionOverride != null) repositories {
34-
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev")
35+
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev") {
36+
content {
37+
includeGroupAndSubgroups("org.jetbrains.kotlin")
38+
}
39+
}
3540
}
3641
versionCatalogs {
3742
create("kotlinLibs") {
@@ -41,8 +46,6 @@ dependencyResolutionManagement {
4146

4247
plugin("multiplatform", "org.jetbrains.kotlin.multiplatform").versionRef(kotlin)
4348
plugin("jvm", "org.jetbrains.kotlin.jvm").versionRef(kotlin)
44-
plugin("plugin.serialization", "org.jetbrains.kotlin.plugin.serialization").versionRef(kotlin)
45-
plugin("plugin.allopen", "org.jetbrains.kotlin.plugin.allopen").versionRef(kotlin)
4649
}
4750
}
4851
}

build.gradle.kts

+8-5
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@
1717
import org.jetbrains.kotlin.gradle.targets.js.yarn.*
1818

1919
buildscript {
20-
repositories {
21-
mavenCentral()
22-
}
23-
2420
dependencies {
2521
// kotlinx.atomicfu should be on classpath
2622
// it's an implementation detail of kotlinx.atomicfu gradle plugin
@@ -30,7 +26,6 @@ buildscript {
3026
}
3127

3228
plugins {
33-
id("build-parameters")
3429
// for now BCV uses `allProjects` internally, so we can't apply it just to specific subprojects
3530
alias(libs.plugins.kotlinx.bcv)
3631
}
@@ -50,3 +45,11 @@ plugins.withType<YarnPlugin> {
5045
yarnLockMismatchReport = YarnLockMismatchReport.WARNING
5146
}
5247
}
48+
49+
val skipTest = providers.gradleProperty("skip.test").map(String::toBoolean).getOrElse(false)
50+
val skipLink = providers.gradleProperty("skip.link").map(String::toBoolean).getOrElse(false)
51+
52+
subprojects {
53+
if (skipTest) tasks.matching { it.name.endsWith("test", ignoreCase = true) }.configureEach { onlyIf { false } }
54+
if (skipLink) tasks.matching { it.name.startsWith("link", ignoreCase = true) }.configureEach { onlyIf { false } }
55+
}

gradle.properties

+1-3
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,12 @@
1616
group=io.rsocket.kotlin
1717
version=0.16.0-SNAPSHOT
1818
#Kotlin
19-
kotlin.js.compiler=ir
2019
kotlin.native.ignoreIncorrectDependencies=true
2120
kotlinx.atomicfu.enableJvmIrTransformation=true
2221
kotlinx.atomicfu.enableJsIrTransformation=true
2322
#Gradle
23+
org.gradle.jvmargs=-Xmx2g
2424
org.gradle.parallel=true
2525
org.gradle.caching=true
2626
org.gradle.configureondemand=true
27-
org.gradle.jvmargs=-Xmx2g
28-
org.gradle.vfs.watch=true
2927
org.gradle.configuration-cache=true

gradle/libs.versions.toml

+12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
[versions]
2+
3+
kotlin = "1.9.20"
4+
25
kotlinx-atomicfu = "0.22.0"
36
kotlinx-coroutines = "1.7.3"
47
kotlinx-benchmark = "0.4.8"
@@ -10,6 +13,11 @@ turbine = "1.0.0"
1013

1114
rsocket-java = "1.1.3"
1215

16+
gradle-enterprise = "3.14.1"
17+
gradle-foojay = "0.7.0"
18+
19+
buildconfig = "4.1.2"
20+
1321
jmh = "1.36"
1422

1523
[libraries]
@@ -43,6 +51,10 @@ rsocket-java-transport-local = { module = 'io.rsocket:rsocket-transport-local',
4351

4452
build-kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu-gradle-plugin", version.ref = "kotlinx-atomicfu" }
4553

54+
build-gradle-enterprise = { module = "com.gradle:gradle-enterprise-gradle-plugin", version.ref = "gradle-enterprise" }
55+
build-gradle-foojay = { module = "org.gradle.toolchains:foojay-resolver", version.ref = "gradle-foojay" }
56+
4657
[plugins]
4758
kotlinx-benchmark = { id = "org.jetbrains.kotlinx.benchmark", version.ref = "kotlinx-benchmark" }
4859
kotlinx-bcv = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "kotlinx-bcv" }
60+
buildconfig = { id = "com.github.gmazzo.buildconfig", version.ref = "buildconfig" }

gradle/plugins/build-parameters/build.gradle.kts

-48
This file was deleted.

0 commit comments

Comments
 (0)