Skip to content

Commit 24a773b

Browse files
authored
Add benchmark for Digest (#64)
1 parent 7057ec4 commit 24a773b

File tree

10 files changed

+675
-359
lines changed

10 files changed

+675
-359
lines changed

.github/workflows/CI.yml

+69-50
Original file line numberDiff line numberDiff line change
@@ -6,45 +6,22 @@ env:
66
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dkotlin.incremental=false -Dorg.gradle.jvmargs="-XX:+HeapDumpOnOutOfMemoryError -XX:MetaspaceSize=1g"
77

88
jobs:
9-
build:
9+
check:
1010
strategy:
1111
fail-fast: false
1212
matrix:
1313
os: [ macos-latest, ubuntu-latest, windows-latest ]
1414
java-version: [ 11, 19 ]
15-
1615
runs-on: ${{ matrix.os }}
17-
1816
steps:
19-
- name: Checkout Repo
20-
uses: actions/checkout@v3
17+
- name: Checkout Repository
18+
uses: actions/checkout@v4
2119

2220
- 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
4522

4623
- name: Setup JDK
47-
uses: actions/setup-java@v3.4.0
24+
uses: actions/setup-java@v4
4825
with:
4926
distribution: 'zulu'
5027
java-version: ${{ matrix.java-version }}
@@ -54,46 +31,83 @@ jobs:
5431
run: >
5532
./gradlew apiCheck --stacktrace
5633
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 ]
5841
if: matrix.os == 'macos-latest' && matrix.java-version == 19
5942
run: >
6043
./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"
6245
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
6548
run: >
6649
./gradlew check --stacktrace
6750
-PKMP_TARGETS="JS,JVM,WASM_JS,WASM_WASI"
6851
69-
- name: Run Linux Tests
52+
- name: Run Linux Tests [ Java 19 ]
7053
if: matrix.os == 'ubuntu-latest' && matrix.java-version == 19
7154
run: >
7255
./gradlew check --stacktrace
7356
-PKMP_TARGETS="ANDROID,ANDROID_ARM32,ANDROID_ARM64,ANDROID_X64,ANDROID_X86,JVM,LINUX_ARM64,LINUX_X64"
7457
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
7760
run: >
7861
./gradlew check --stacktrace
79-
-PKMP_TARGETS="JS,JVM,WASM_JS,WASM_WASI"
62+
-PKMP_TARGETS="JS,JVM,MINGW_X64,WASM_JS,WASM_WASI"
8063
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
8392
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"
8695
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/**'
89101

102+
android-check:
90103
strategy:
91104
fail-fast: false
92105
matrix:
93-
api-level: [ 15, 23, 29 ]
106+
api-level: [ 15, 21, 23, 24, 29 ]
107+
runs-on: ubuntu-latest
94108
steps:
95-
- name: Checkout Repo
96-
uses: actions/checkout@v3
109+
- name: Checkout Repository
110+
uses: actions/checkout@v4
97111

98112
- name: Enable KVM
99113
run: |
@@ -102,20 +116,25 @@ jobs:
102116
sudo udevadm trigger --name-match=kvm
103117
104118
- name: Validate Gradle Wrapper
105-
uses: gradle/wrapper-validation-action@v1
119+
uses: gradle/actions/wrapper-validation@v3
106120

107121
- name: Setup JDK
108-
uses: actions/setup-java@v3.11.0
122+
uses: actions/setup-java@v4
109123
with:
110124
distribution: 'zulu'
111125
java-version: 17
112126

113-
- name: Build
114-
uses: gradle/gradle-build-action@v2
115-
116127
- name: Run Android Instrumented Tests
117128
uses: reactivecircus/android-emulator-runner@v2
118129
with:
119130
emulator-boot-timeout: 300 # 5 minutes
120131
api-level: ${{ matrix.api-level }}
121132
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

Comments
 (0)