Skip to content

Commit 062a4cf

Browse files
chore(ci): First draft of GraalVM native compile in CI / CD
1 parent b38f451 commit 062a4cf

5 files changed

Lines changed: 33 additions & 25 deletions

File tree

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ updates:
55
schedule:
66
interval: daily
77
open-pull-requests-limit: 10
8-
ignore:
9-
- dependency-name: com.squareup.retrofit2:retrofit
10-
versions:
11-
- ">= 2.9.a, < 2.10"
128
- package-ecosystem: github-actions
139
directory: "/"
1410
schedule:
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,11 @@
1-
name: Android CI
1+
name: Java FX
22

33
on: [push, pull_request]
44

55
permissions:
66
contents: read
77

88
jobs:
9-
validation:
10-
name: Validate Gradle Wrapper
11-
runs-on: ubuntu-latest
12-
steps:
13-
- name: Checkout
14-
uses: actions/checkout@v6
15-
- name: Validate Gradle Wrapper
16-
uses: gradle/actions/wrapper-validation@v5
17-
189
lint:
1910
name: Lint
2011
runs-on: ubuntu-latest
@@ -24,7 +15,7 @@ jobs:
2415
- uses: actions/setup-java@v5
2516
with:
2617
distribution: 'temurin'
27-
java-version: '17'
18+
java-version: '26'
2819
check-latest: true
2920
cache: 'gradle'
3021
- name: Lint
@@ -39,7 +30,7 @@ jobs:
3930
- uses: actions/setup-java@v5
4031
with:
4132
distribution: 'temurin'
42-
java-version: '17'
33+
java-version: '26'
4334
check-latest: true
4435
cache: 'gradle'
4536
- name: Unit tests
@@ -49,18 +40,21 @@ jobs:
4940
name: Generate APK
5041
runs-on: ubuntu-latest
5142
steps:
52-
- name: Checkout
53-
uses: actions/checkout@v6
54-
- uses: actions/setup-java@v5
43+
- name: Set up GraalVM
44+
uses: actions/setup-java@v4
5545
with:
56-
distribution: 'temurin'
57-
java-version: '17'
46+
distribution: graalvm
47+
java-version: '26'
5848
check-latest: true
59-
cache: 'gradle'
49+
cache: gradle
50+
- name: Verify GraalVM
51+
run: |
52+
java --version
53+
native-image --version
6054
- name: Build debug APK
61-
run: bash ./gradlew assembleDev --no-configuration-cache
55+
run: bash ./gradlew nativeCompile --no-configuration-cache
6256
- name: Upload APK
6357
uses: actions/upload-artifact@v7
6458
with:
6559
name: app-dev-debug
66-
path: app/build/outputs/apk/dev/debug/app-dev-debug.apk
60+
path: app/javafx/build/native/nativeCompile/deck-pc

app/javafx/build.gradle.kts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ plugins {
44
alias(libs.plugins.gradleup.shadow)
55
alias(libs.plugins.javafx)
66
alias(libs.plugins.jlink)
7+
alias(libs.plugins.graalvm)
78
}
89

910
java {
@@ -24,11 +25,26 @@ javafx {
2425
jlink {
2526
options = listOf("--strip-debug", "--compress", "2", "--no-header-files", "--no-man-pages")
2627
launcher {
27-
name = "Deck Desktop"
28+
name = "Deck PC"
2829
jvmArgs = listOf("--add-modules javafx.controls,javafx.fxml")
2930
}
3031
}
3132

33+
graalvmNative {
34+
binaries {
35+
named("main") {
36+
imageName.set("deck-pc")
37+
38+
buildArgs.addAll(
39+
listOf(
40+
"--no-fallback",
41+
"-H:+ReportExceptionStackTraces"
42+
)
43+
)
44+
}
45+
}
46+
}
47+
3248
dependencies {
3349
implementation(project(":app:shared"))
3450
implementation(project(":domain:usecases"))

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ datastore = "1.2.1"
99
espressoCore = "3.7.0"
1010
google-ksp = "2.3.5"
1111
gson = "2.14.0"
12+
graalvm = "0.11.0"
1213
hilt = "2.59.2"
1314
ikonliJavafx = "12.4.0"
1415
jakarta-inject = "2.0.1"
@@ -96,3 +97,4 @@ javafx = { id = "org.openjfx.javafxplugin", version.ref = "javafx-plugin" }
9697
jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "jetbrainsKotlinJvm" }
9798
jlink = { id = "org.beryx.jlink", version.ref = "jlink" }
9899
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
100+
graalvm = { id = "org.graalvm.buildtools.native", version.ref = "graalvm" }

0 commit comments

Comments
 (0)