Skip to content

Commit f8d2919

Browse files
authored
Merge pull request #2 from korlibs/soywiz/codecov.kover.binary.compatibility
Update template
2 parents a77e735 + 8589214 commit f8d2919

File tree

5 files changed

+71
-78
lines changed

5 files changed

+71
-78
lines changed

.github/workflows/CODECOV.yml

-36
This file was deleted.

.github/workflows/DEPLOY.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ jobs:
4646
- { os: ubuntu-latest, publishTask: "publishAndroidDebugPublicationToMavenLocal publishAndroidReleasePublicationToMavenLocal" }
4747
- { os: ubuntu-latest, publishTask: "publishKotlinMultiplatformPublicationToMavenLocal publishJvmPublicationToMavenLocal" }
4848
- { os: ubuntu-latest, publishTask: "publishJsPublicationToMavenLocal publishWasmJsPublicationToMavenLocal" }
49-
- { os: macos-latest, publishTask: "publishMacosX64PublicationToMavenLocal publishMacosArm64PublicationToMavenLocal" }
50-
- { os: macos-latest, publishTask: "publishTvosArm64PublicationToMavenLocal publishTvosSimulatorArm64PublicationToMavenLocal publishTvosX64PublicationToMavenLocal" }
51-
- { os: macos-latest, publishTask: "publishIosArm64PublicationToMavenLocal publishIosSimulatorArm64PublicationToMavenLocal publishIosX64PublicationToMavenLocal" }
52-
- { os: macos-latest, publishTask: "publishWatchosArm64PublicationToMavenLocal publishWatchosArm32PublicationToMavenLocal publishWatchosDeviceArm64PublicationToMavenLocal publishWatchosSimulatorArm64PublicationToMavenLocal" }
49+
- { os: macos-13, publishTask: "publishMacosX64PublicationToMavenLocal publishMacosArm64PublicationToMavenLocal" }
50+
- { os: macos-13, publishTask: "publishTvosArm64PublicationToMavenLocal publishTvosSimulatorArm64PublicationToMavenLocal publishTvosX64PublicationToMavenLocal" }
51+
- { os: macos-13, publishTask: "publishIosArm64PublicationToMavenLocal publishIosSimulatorArm64PublicationToMavenLocal publishIosX64PublicationToMavenLocal" }
52+
- { os: macos-13, publishTask: "publishWatchosArm64PublicationToMavenLocal publishWatchosArm32PublicationToMavenLocal publishWatchosDeviceArm64PublicationToMavenLocal publishWatchosSimulatorArm64PublicationToMavenLocal" }
5353
timeout-minutes: 300
5454
runs-on: ${{ matrix.os }}
5555
##needs: [start]

.github/workflows/TEST.yml

+23-15
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,20 @@ name: TEST
44
on:
55
push:
66
branches: [ main, 'release/**' ]
7+
paths:
8+
- '**'
9+
- '!**.gitignore'
10+
- '!**.md'
11+
- '!**.github/workflows/*'
12+
- '**.github/workflows/TEST.yml'
713
pull_request:
814
branches: [ main, 'release/**' ]
15+
paths:
16+
- '**'
17+
- '!**.gitignore'
18+
- '!**.md'
19+
- '!**.github/workflows/*'
20+
- '**.github/workflows/TEST.yml'
921

1022
concurrency:
1123
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
@@ -23,16 +35,10 @@ jobs:
2335
fail-fast: true # Once working, comment this
2436
matrix:
2537
include:
26-
- { outputKey: testWindows, os: windows-latest, testTask: mingwX64Test, enableKotlinNative: true }
27-
- { outputKey: testLinux, os: ubuntu-latest, testTask: linuxX64Test, buildTasks: publishLinuxArm64PublicationToMavenLocal, enableKotlinNative: true }
28-
- { outputKey: testMacos, os: macos-latest, testTask: macosX64Test, buildTasks: publishMacosArm64PublicationToMavenLocal, enableKotlinNative: true }
29-
- { outputKey: testIos, os: macos-latest, testTask: iosX64Test, enableKotlinNative: true }
30-
#- { outputKey: testJs, os: ubuntu-latest, testTask: "wasmBrowserTest", buildTasks: "jsNodeTest jsBrowserTest" }
31-
- { outputKey: testJs, os: ubuntu-latest, testTask: "wasmBrowserTest", buildTasks: "jsBrowserTest jsDenoTest" }
32-
- { outputKey: testAndroid, os: ubuntu-latest, enableAndroid: true }
33-
- { outputKey: testJvmMacos, os: macos-latest, testTask: jvmTest apiCheck }
34-
- { outputKey: testJvmLinux, os: ubuntu-latest, testTask: jvmTest, precompileTask: compileTestKotlinJvm, enableKotlinNative: true, enableSandbox: true, e2e: true }
35-
- { outputKey: testJvmWindows, os: windows-latest, testTask: jvmTest, precompileTask: compileTestKotlinJvm }
38+
- { outputKey: testMacosIos, os: macos-13, testTask: jvmTest macosX64Test iosX64Test, buildTasks: publishMacosArm64PublicationToMavenLocal }
39+
- { outputKey: testJsAndroid, os: ubuntu-latest, testTask: "wasmBrowserTest", buildTasks: "jsBrowserTest jsDenoTest", enableAndroid: true }
40+
- { outputKey: testLinux, os: ubuntu-latest, testTask: apiCheck jvmTest linuxX64Test, precompileTask: compileTestKotlinJvm, e2e: true }
41+
- { outputKey: testWindows, os: windows-latest, testTask: jvmTest mingwX64Test jsDenoTest, precompileTask: compileTestKotlinJvm, enableCodecov: true }
3642
#if: ${{ needs.changes.outputs[matrix.outputKey] == 'true' }}
3743
timeout-minutes: 30
3844
runs-on: ${{ matrix.os }}
@@ -44,15 +50,17 @@ jobs:
4450
- { name: Set up JDK, uses: actions/setup-java@v4, with: { distribution: "${{ env.JAVA_DISTRIBUTION }}", java-version: "${{ env.JAVA_VERSION }}" } }
4551
- { name: Prepare Gradle, uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 } # https://github.com/gradle/actions/releases/tag/v3.5.0
4652
- { name: Start gradle, run: ./gradlew }
47-
- { if: "${{ matrix.precompileTask }}", name: "Building ${{ matrix.precompileTask }} classes", run: "./gradlew --no-configuration-cache --stacktrace ${{ matrix.precompileTask }}" }
48-
- { if: "${{ matrix.testTask }}", name: "Run ${{ matrix.testTask }} tests", run: "./gradlew --no-configuration-cache ${{ matrix.testTask }}" }
49-
- { if: "${{ matrix.buildTasks }}", name: "Run ${{ matrix.buildTasks }}", run: "./gradlew --no-configuration-cache ${{ matrix.buildTasks }}" }
53+
- { if: "${{ matrix.precompileTask }}", name: "Building ${{ matrix.precompileTask }} classes", run: "./gradlew --no-configuration-cache --stacktrace --build-cache ${{ matrix.precompileTask }}" }
54+
- { if: "${{ matrix.enableCodecov }}", name: "Upload coverage reports to Codecov", uses: "codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673", with: { token: "${{ secrets.CODECOV_TOKEN }}" } } # https://github.com/codecov/codecov-action/releases/tag/v4.5.0
55+
- { if: "${{ matrix.testTask }}", name: "Run ${{ matrix.testTask }} tests", run: "./gradlew --no-configuration-cache --build-cache ${{ matrix.testTask }}" }
56+
- { if: "${{ matrix.buildTasks }}", name: "Run ${{ matrix.buildTasks }}", run: "./gradlew --no-configuration-cache --build-cache ${{ matrix.buildTasks }}" }
5057
- name: Enable KVM
5158
if: "${{ matrix.enableAndroid }}"
5259
run: |
5360
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
5461
sudo udevadm control --reload-rules
5562
sudo udevadm trigger --name-match=kvm
56-
- { name: "Run Android Tests", if: "${{ matrix.enableAndroid }}", uses: reactivecircus/android-emulator-runner@v2, with: { "api-level": 21, "script": "./gradlew --no-configuration-cache connectedCheck lintDebug" } }
63+
- { name: "Run Android Tests", if: "${{ matrix.enableAndroid }}", uses: reactivecircus/android-emulator-runner@v2, with: { "api-level": 21, "script": "./gradlew --no-configuration-cache --build-cache connectedCheck lintDebug" } }
5764
- { name: Archive Test Results, if: failure(), uses: actions/upload-artifact@v4, with: { name: "test-results-${{ matrix.outputKey }}", retention-days: 21, path: "**/build/reports", if-no-files-found: ignore } }
58-
- { if: "${{ matrix.e2e }}", name: Publish to maven local, run: ./gradlew --no-configuration-cache publishJvmLocal publishKotlinMultiplatformPublicationToMavenLocal }
65+
- { if: "${{ matrix.e2e }}", name: Publish to maven local, run: ./gradlew --no-configuration-cache --build-cache publishJvmLocal publishKotlinMultiplatformPublicationToMavenLocal }
66+
- { name: Code coverage, run: ./gradlew --build-cache koverXmlReport }

build.gradle.kts

+37-18
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ var REAL_VERSION = System.getenv("FORCED_VERSION")
3535
//val REAL_VERSION = System.getenv("FORCED_VERSION") ?: "999.0.0.999"
3636

3737
val JVM_TARGET = JvmTarget.JVM_1_8
38+
val JDK_VERSION = org.gradle.api.JavaVersion.VERSION_1_8
39+
//val JVM_TARGET = JvmTarget.JVM_11
40+
//val JDK_VERSION = org.gradle.api.JavaVersion.VERSION_11
3841
val GROUP = "com.soywiz"
3942

4043
kotlin {
@@ -57,7 +60,29 @@ allprojects {
5760
project.apply(plugin = "kotlin-multiplatform")
5861
project.apply(plugin = "android-library")
5962

63+
java.toolchain.languageVersion = JavaLanguageVersion.of(JDK_VERSION.majorVersion)
64+
kotlin.jvmToolchain(JDK_VERSION.majorVersion.toInt())
65+
afterEvaluate {
66+
tasks.withType(Test::class) {
67+
//this.javaLauncher.set()
68+
this.javaLauncher.set(javaToolchains.launcherFor {
69+
// 17 is latest at the current moment
70+
languageVersion.set(JavaLanguageVersion.of(JDK_VERSION.majorVersion))
71+
})
72+
}
73+
}
74+
75+
kotlin {
76+
androidTarget {
77+
this.compilerOptions.jvmTarget.set(JvmTarget.JVM_17)
78+
}
79+
}
80+
6081
android {
82+
compileOptions {
83+
sourceCompatibility = JDK_VERSION
84+
targetCompatibility = JDK_VERSION
85+
}
6186
//signingConfigs {
6287
// debug {
6388
// […]
@@ -345,19 +370,6 @@ subprojects {
345370
apply(plugin = "maven-publish")
346371
apply(plugin = "signing")
347372

348-
//val JDK_VERSION = 8
349-
//java.toolchain.languageVersion = JavaLanguageVersion.of(JDK_VERSION)
350-
//kotlin.jvmToolchain(JDK_VERSION)
351-
//afterEvaluate {
352-
// tasks.withType(Test::class) {
353-
// //this.javaLauncher.set()
354-
// this.javaLauncher.set(javaToolchains.launcherFor {
355-
// // 17 is latest at the current moment
356-
// languageVersion.set(JavaLanguageVersion.of(JDK_VERSION))
357-
// })
358-
// }
359-
//}
360-
361373
kotlin {
362374
js {
363375
//nodejs()
@@ -973,10 +985,12 @@ class MicroAmper(val project: Project) {
973985
main = maybeCreate("${name}Main").also {
974986
it.kotlin.srcDirIfExists("src$atName")
975987
it.resources.srcDirIfExists("resources$atName")
988+
it.kotlin.srcDir("build/generated/ksp/$name/${name}Main/kotlin")
976989
},
977990
test = maybeCreate("${name}Test").also {
978991
it.kotlin.srcDirIfExists("test$atName")
979992
it.resources.srcDirIfExists("testResources$atName")
993+
it.kotlin.srcDir("build/generated/ksp/$name/${name}Test/kotlin")
980994
}
981995
)
982996
}
@@ -990,6 +1004,8 @@ class MicroAmper(val project: Project) {
9901004
ssDependsOn("appleNonWatchos", "apple")
9911005
ssDependsOn("appleIosTvos", "apple")
9921006

1007+
maybeCreate("commonMain").kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
1008+
9931009
for (platform in kotlinPlatforms) {
9941010
val isMacos = platform.startsWith("macos")
9951011
val isIos = platform.startsWith("ios")
@@ -1111,11 +1127,14 @@ allprojects {
11111127
afterEvaluate {
11121128
tasks.withType(org.gradle.api.tasks.testing.Test::class) {
11131129
//println("TEST-TASK: $this")
1114-
jvmArgs(
1115-
"--add-opens", "java.base/java.nio=ALL-UNNAMED",
1116-
//"--add-opens", "java.base/jdk.incubator.foreign=ALL-UNNAMED",
1117-
"--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED",
1118-
)
1130+
if (JDK_VERSION.majorVersion.toInt() >= 9) {
1131+
jvmArgs(
1132+
"-XX:+IgnoreUnrecognizedVMOptions",
1133+
"--add-opens", "java.base/java.nio=ALL-UNNAMED",
1134+
//"--add-opens", "java.base/jdk.incubator.foreign=ALL-UNNAMED",
1135+
"--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED",
1136+
)
1137+
}
11191138
}
11201139
}
11211140
}

settings.gradle.kts

+7-5
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ pluginManagement {
77
//maven("https://www.jetbrains.com/intellij-repository/releases")
88
//maven("https://packages.jetbrains.team/maven/p/ij/intellij-dependencies")
99
}
10-
}
1110

12-
plugins {
13-
//id("org.jetbrains.amper.settings.plugin").version("0.2.1-dev-470")
14-
//id("org.jetbrains.amper.settings.plugin").version("0.2.2")
15-
//id("org.jetbrains.amper.settings.plugin").version("0.2.3-dev-473")
11+
plugins {
12+
id("com.google.devtools.ksp") version "2.0.0-1.0.23"
13+
//id("org.jetbrains.amper.settings.plugin").version("0.2.1-dev-470")
14+
//id("org.jetbrains.amper.settings.plugin").version("0.2.2")
15+
//id("org.jetbrains.amper.settings.plugin").version("0.2.3-dev-473")
16+
}
1617
}
1718

19+
1820
for (file in rootDir.listFiles()) {
1921
if (file.isDirectory() && File(file, "module.yaml").exists()) {
2022
include(":${file.name}")

0 commit comments

Comments
 (0)