Skip to content

Commit

Permalink
Update template: codecov + kover + binary compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
soywiz committed Aug 6, 2024
1 parent c69753f commit fea5b23
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 1 deletion.
36 changes: 36 additions & 0 deletions .github/workflows/CODECOV.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: CODECOV
# https://docs.github.com/en/actions/learn-github-actions/expressions

on:
push:
branches: [ main, 'release/**' ]
pull_request:
branches: [ main, 'release/**' ]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
CI: true

JAVA_VERSION: 17
JAVA_DISTRIBUTION: zulu

jobs:
test:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- { uses: actions/checkout@v4 }
- { name: Use Node.js 20.x, uses: actions/setup-node@v4, with: { node-version: 20.x } }
- { name: Setup Deno, uses: denoland/setup-deno@v1, with: { deno-version: "1.44.4" } }
- { name: Replace gradle wrapper, run: "sed 's/-all/-bin/g' gradle/wrapper/gradle-wrapper.properties > gradle/wrapper/gradle-wrapper.properties.bak; cp gradle/wrapper/gradle-wrapper.properties.bak gradle/wrapper/gradle-wrapper.properties" }
- { name: Set up JDK, uses: actions/setup-java@v4, with: { distribution: "${{ env.JAVA_DISTRIBUTION }}", java-version: "${{ env.JAVA_VERSION }}" } }
- { name: Prepare Gradle, uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 } # https://github.com/gradle/actions/releases/tag/v3.5.0
- { name: Start gradle, run: ./gradlew }
- { name: Code coverage, run: ./gradlew koverXmlReport }
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/TEST.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
#- { outputKey: testJs, os: ubuntu-latest, testTask: "wasmBrowserTest", buildTasks: "jsNodeTest jsBrowserTest" }
- { outputKey: testJs, os: ubuntu-latest, testTask: "wasmBrowserTest", buildTasks: "jsBrowserTest jsDenoTest" }
- { outputKey: testAndroid, os: ubuntu-latest, enableAndroid: true }
- { outputKey: testJvmMacos, os: macos-latest, testTask: jvmTest }
- { outputKey: testJvmMacos, os: macos-latest, testTask: jvmTest apiCheck }
- { outputKey: testJvmLinux, os: ubuntu-latest, testTask: jvmTest, precompileTask: compileTestKotlinJvm, enableKotlinNative: true, enableSandbox: true, e2e: true }
- { outputKey: testJvmWindows, os: windows-latest, testTask: jvmTest, precompileTask: compileTestKotlinJvm }
#if: ${{ needs.changes.outputs[matrix.outputKey] == 'true' }}
Expand Down
7 changes: 7 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import java.util.concurrent.*
plugins {
kotlin("multiplatform") version "2.0.0"
id("com.android.library") version "8.2.2"
id("org.jetbrains.kotlinx.kover") version "0.8.3" apply false
id("org.jetbrains.kotlinx.binary-compatibility-validator") version "0.16.2"
id("org.jetbrains.dokka") version "1.9.20"
`maven-publish`
signing
Expand Down Expand Up @@ -1122,6 +1124,7 @@ allprojects {

subprojects {
plugins.apply("org.jetbrains.dokka")
plugins.apply("org.jetbrains.kotlinx.kover")
}

allprojects {
Expand All @@ -1130,3 +1133,7 @@ allprojects {
offlineMode.set(true)
}
}

apiValidation {
ignoredProjects.addAll(listOf(rootProject.name))
}
22 changes: 22 additions & 0 deletions korlibs-jseval/api/android/korlibs-jseval.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
public abstract interface class korlibs/io/lang/IJSEval {
public abstract fun getAvailable ()Z
public abstract fun getGlobalThis ()Ljava/lang/Object;
public abstract fun invoke (Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;
public abstract fun invokeSuspend (Ljava/lang/String;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class korlibs/io/lang/IJSEval$DefaultImpls {
public static fun invokeSuspend (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class korlibs/io/lang/JSEvalKt {
public static final fun expr (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;[Lkotlin/Pair;)Ljava/lang/Object;
public static final fun exprSuspend (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;[Lkotlin/Pair;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun invoke (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;[Lkotlin/Pair;)Ljava/lang/Object;
public static final fun invokeSuspend (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;[Lkotlin/Pair;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class korlibs/io/lang/JSEval_androidKt {
public static final fun getJSEval ()Lkorlibs/io/lang/IJSEval;
}

22 changes: 22 additions & 0 deletions korlibs-jseval/api/jvm/korlibs-jseval.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
public abstract interface class korlibs/io/lang/IJSEval {
public abstract fun getAvailable ()Z
public abstract fun getGlobalThis ()Ljava/lang/Object;
public abstract fun invoke (Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;
public abstract fun invokeSuspend (Ljava/lang/String;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class korlibs/io/lang/IJSEval$DefaultImpls {
public static fun invokeSuspend (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class korlibs/io/lang/JSEvalKt {
public static final fun expr (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;[Lkotlin/Pair;)Ljava/lang/Object;
public static final fun exprSuspend (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;[Lkotlin/Pair;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun invoke (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;[Lkotlin/Pair;)Ljava/lang/Object;
public static final fun invokeSuspend (Lkorlibs/io/lang/IJSEval;Ljava/lang/String;[Lkotlin/Pair;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public final class korlibs/io/lang/JSEval_jvmKt {
public static final fun getJSEval ()Lkorlibs/io/lang/IJSEval;
}

0 comments on commit fea5b23

Please sign in to comment.