6
6
GRADLE_OPTS : -Dorg.gradle.daemon=false -Dkotlin.incremental=false -Dorg.gradle.jvmargs="-XX:+HeapDumpOnOutOfMemoryError -XX:MetaspaceSize=1g"
7
7
8
8
jobs :
9
- build :
9
+ check :
10
10
strategy :
11
11
fail-fast : false
12
12
matrix :
13
13
os : [ macos-latest, ubuntu-latest, windows-latest ]
14
14
java-version : [ 11, 19 ]
15
-
16
15
runs-on : ${{ matrix.os }}
17
-
18
16
steps :
19
- - name : Checkout Repo
20
- uses : actions/checkout@v3
17
+ - name : Checkout Repository
18
+ uses : actions/checkout@v4
21
19
22
20
- name : Validate Gradle Wrapper
23
- uses : gradle/wrapper-validation-action@v1
24
-
25
- - name : Setup Caches [ Gradle Wrapper ]
26
- uses : actions/cache@v1
27
- with :
28
- path : ~/.gradle/wrapper
29
- key : ${{ runner.os }}-gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.*') }}
30
- restore-keys : ${{ runner.os }}-gradle-wrapper-
31
-
32
- - name : Setup Caches [ Konan ]
33
- uses : actions/cache@v1
34
- with :
35
- path : ~/.konan
36
- key : ${{ runner.os }}-konan-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('gradle/libs.versions.toml') }}
37
- restore-keys : ${{ runner.os }}-konan-
38
-
39
- - name : Setup Caches [ Gradle Caches ]
40
- uses : actions/cache@v1
41
- with :
42
- path : ~/.gradle/caches
43
- key : ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('gradle/libs.versions.toml') }}
44
- restore-keys : ${{ runner.os }}-gradle-caches-
21
+ uses : gradle/actions/wrapper-validation@v3
45
22
46
23
- name : Setup JDK
47
- uses : actions/setup-java@v3.4.0
24
+ uses : actions/setup-java@v4
48
25
with :
49
26
distribution : ' zulu'
50
27
java-version : ${{ matrix.java-version }}
@@ -54,46 +31,83 @@ jobs:
54
31
run : >
55
32
./gradlew apiCheck --stacktrace
56
33
57
- - name : Run macOS Tests
34
+ - name : Run macOS Tests [ Java 11 ]
35
+ if : matrix.os == 'macos-latest' && matrix.java-version == 11
36
+ run : >
37
+ ./gradlew check --stacktrace
38
+ -PKMP_TARGETS="IOS_ARM64,IOS_X64,IOS_SIMULATOR_ARM64,JS,JVM,WASM_JS,WASM_WASI"
39
+
40
+ - name : Run macOS Tests [ Java 19 ]
58
41
if : matrix.os == 'macos-latest' && matrix.java-version == 19
59
42
run : >
60
43
./gradlew check --stacktrace
61
- -PKMP_TARGETS="IOS_ARM64,IOS_X64,IOS_SIMULATOR_ARM64, JVM,MACOS_ARM64,MACOS_X64,TVOS_ARM64,TVOS_X64,TVOS_SIMULATOR_ARM64,WATCHOS_ARM32,WATCHOS_ARM64,WATCHOS_DEVICE_ARM64,WATCHOS_X64,WATCHOS_SIMULATOR_ARM64"
44
+ -PKMP_TARGETS="JVM,MACOS_ARM64,MACOS_X64,TVOS_ARM64,TVOS_X64,TVOS_SIMULATOR_ARM64,WATCHOS_ARM32,WATCHOS_ARM64,WATCHOS_DEVICE_ARM64,WATCHOS_X64,WATCHOS_SIMULATOR_ARM64"
62
45
63
- - name : Run macOS Java11 Tests
64
- if : matrix.os == 'macos -latest' && matrix.java-version == 11
46
+ - name : Run Linux Tests [ Java 11 ]
47
+ if : matrix.os == 'ubuntu -latest' && matrix.java-version == 11
65
48
run : >
66
49
./gradlew check --stacktrace
67
50
-PKMP_TARGETS="JS,JVM,WASM_JS,WASM_WASI"
68
51
69
- - name : Run Linux Tests
52
+ - name : Run Linux Tests [ Java 19 ]
70
53
if : matrix.os == 'ubuntu-latest' && matrix.java-version == 19
71
54
run : >
72
55
./gradlew check --stacktrace
73
56
-PKMP_TARGETS="ANDROID,ANDROID_ARM32,ANDROID_ARM64,ANDROID_X64,ANDROID_X86,JVM,LINUX_ARM64,LINUX_X64"
74
57
75
- - name : Run Linux Java11 Tests
76
- if : matrix.os == 'ubuntu -latest' && matrix.java-version == 11
58
+ - name : Run Windows Tests [ Java 11 ]
59
+ if : matrix.os == 'windows -latest' && matrix.java-version == 11
77
60
run : >
78
61
./gradlew check --stacktrace
79
- -PKMP_TARGETS="JS,JVM,WASM_JS,WASM_WASI"
62
+ -PKMP_TARGETS="JS,JVM,MINGW_X64, WASM_JS,WASM_WASI"
80
63
81
- - name : Run Windows Tests
82
- if : matrix.os == 'windows-latest' && matrix.java-version == 11
64
+ - name : Upload Test Reports
65
+ uses : actions/upload-artifact@v4
66
+ if : ${{ always() }}
67
+ with :
68
+ name : test-report-${{ matrix.os }}-java${{ matrix.java-version }}
69
+ path : ' **/build/reports/tests/**'
70
+ retention-days : 1
71
+
72
+ benchmark :
73
+ strategy :
74
+ fail-fast : false
75
+ matrix :
76
+ os : [ macos-latest, ubuntu-latest, windows-latest ]
77
+ runs-on : ${{ matrix.os }}
78
+ steps :
79
+ - name : Checkout Repository
80
+ uses : actions/checkout@v4
81
+
82
+ - name : Validate Gradle Wrapper
83
+ uses : gradle/actions/wrapper-validation@v3
84
+
85
+ - name : Setup JDK
86
+ uses : actions/setup-java@v4
87
+ with :
88
+ distribution : ' zulu'
89
+ java-version : 11
90
+
91
+ - name : Run Benchmark
83
92
run : >
84
- ./gradlew check --stacktrace
85
- -PKMP_TARGETS="JVM,JS,MINGW_X64,WASM_JS,WASM_WASI"
93
+ ./gradlew benchmark
94
+ -PKMP_TARGETS="JVM,JS,LINUX_ARM64,LINUX_X64,MACOS_ARM64,MACOS_X64, MINGW_X64,WASM_JS,WASM_WASI"
86
95
87
- emulator :
88
- runs-on : ubuntu-latest
96
+ - name : Upload Benchmark Reports
97
+ uses : actions/upload-artifact@v4
98
+ with :
99
+ name : benchmark-report-${{ matrix.os }}
100
+ path : ' **/build/reports/benchmarks/**'
89
101
102
+ android-check :
90
103
strategy :
91
104
fail-fast : false
92
105
matrix :
93
- api-level : [ 15, 23, 29 ]
106
+ api-level : [ 15, 21, 23, 24, 29 ]
107
+ runs-on : ubuntu-latest
94
108
steps :
95
- - name : Checkout Repo
96
- uses : actions/checkout@v3
109
+ - name : Checkout Repository
110
+ uses : actions/checkout@v4
97
111
98
112
- name : Enable KVM
99
113
run : |
@@ -102,20 +116,25 @@ jobs:
102
116
sudo udevadm trigger --name-match=kvm
103
117
104
118
- name : Validate Gradle Wrapper
105
- uses : gradle/wrapper-validation-action@v1
119
+ uses : gradle/actions/ wrapper-validation@v3
106
120
107
121
- name : Setup JDK
108
- uses : actions/setup-java@v3.11.0
122
+ uses : actions/setup-java@v4
109
123
with :
110
124
distribution : ' zulu'
111
125
java-version : 17
112
126
113
- - name : Build
114
- uses : gradle/gradle-build-action@v2
115
-
116
127
- name : Run Android Instrumented Tests
117
128
uses : reactivecircus/android-emulator-runner@v2
118
129
with :
119
130
emulator-boot-timeout : 300 # 5 minutes
120
131
api-level : ${{ matrix.api-level }}
121
132
script : ./gradlew :test-android:connectedCheck -PKMP_TARGETS="ANDROID,JVM"
133
+
134
+ - name : Upload Test Reports
135
+ uses : actions/upload-artifact@v4
136
+ if : ${{ always() }}
137
+ with :
138
+ name : test-report-android-${{ matrix.api-level }}
139
+ path : ' **/build/reports/androidTests/**'
140
+ retention-days : 1
0 commit comments