Skip to content

Refactor: Use an interface for dark mode detector #511

Refactor: Use an interface for dark mode detector

Refactor: Use an interface for dark mode detector #511

Workflow file for this run

name: Test GraalVM Native Image
on:
pull_request:
branches:
- '*'
concurrency:
group: test-graalvm-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
build-natives:
uses: ./.github/workflows/build-natives.yaml
graalvm:
needs: build-natives
name: GraalVM - ${{ matrix.name }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- name: Linux x64
os: ubuntu-latest
- name: macOS ARM64
os: macos-latest
- name: Windows x64
os: windows-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Download darkmode-detector native artifacts
uses: actions/download-artifact@v4
with:
path: darkmode-detector/src/main/resources/nucleus/native/
pattern: '*-natives*'
merge-multiple: true
- name: Download native-ssl artifacts
uses: actions/download-artifact@v4
with:
path: native-ssl/src/main/resources/nucleus/native/
pattern: 'ssl-*'
merge-multiple: true
- name: Download decorated-window-jbr artifacts
uses: actions/download-artifact@v4
with:
path: decorated-window-jbr/src/main/resources/nucleus/native/
pattern: 'decorated-window-jbr-*'
merge-multiple: true
- name: Download decorated-window-jni artifacts
uses: actions/download-artifact@v4
with:
path: decorated-window-jni/src/main/resources/nucleus/native/
pattern: 'decorated-window-jni-*'
merge-multiple: true
- name: Download decorated-window-core artifacts
uses: actions/download-artifact@v4
with:
path: decorated-window-core/src/main/resources/nucleus/native/
pattern: 'decorated-window-core-*'
merge-multiple: true
- name: Download linux-hidpi artifacts
uses: actions/download-artifact@v4
with:
path: linux-hidpi/src/main/resources/nucleus/native/
pattern: 'linux-hidpi-*'
merge-multiple: true
- name: Download system-color artifacts
uses: actions/download-artifact@v4
with:
path: system-color/src/main/resources/nucleus/native/
pattern: 'system-color-*'
merge-multiple: true
- name: Download energy-manager artifacts
uses: actions/download-artifact@v4
with:
path: energy-manager/src/main/resources/nucleus/native/
pattern: 'energy-manager-*'
merge-multiple: true
- name: Download taskbar-progress artifacts
uses: actions/download-artifact@v4
with:
path: taskbar-progress/src/main/resources/nucleus/native/
pattern: 'taskbar-progress-*'
merge-multiple: true
- name: Download notification-macos artifacts
uses: actions/download-artifact@v4
with:
path: notification-macos/src/main/resources/nucleus/native/
pattern: 'notification-macos*'
merge-multiple: true
- name: Download service-management-macos artifacts
uses: actions/download-artifact@v4
with:
path: service-management-macos/src/main/resources/nucleus/native/
pattern: 'service-management-macos*'
merge-multiple: true
- name: Download notification-linux artifacts
uses: actions/download-artifact@v4
with:
path: notification-linux/src/main/resources/nucleus/native/
pattern: 'notification-linux-*'
merge-multiple: true
- name: Download notification-windows artifacts
uses: actions/download-artifact@v4
with:
path: notification-windows/src/main/resources/nucleus/native/
pattern: 'notification-windows*'
merge-multiple: true
- name: Download autolaunch artifacts
uses: actions/download-artifact@v4
with:
path: autolaunch/src/main/resources/nucleus/native/
pattern: 'autolaunch*'
merge-multiple: true
- name: Download launcher-windows artifacts
uses: actions/download-artifact@v4
with:
path: launcher-windows/src/main/resources/nucleus/native/
pattern: 'launcher-windows*'
merge-multiple: true
- name: Download launcher-linux artifacts
uses: actions/download-artifact@v4
with:
path: launcher-linux/src/main/resources/nucleus/native/
pattern: 'launcher-linux-*'
merge-multiple: true
- name: Download launcher-macos artifacts
uses: actions/download-artifact@v4
with:
path: launcher-macos/src/main/resources/nucleus/native/
pattern: 'launcher-macos*'
merge-multiple: true
- name: Download global-hotkey artifacts
uses: actions/download-artifact@v4
with:
path: global-hotkey/src/main/resources/nucleus/native/
pattern: 'global-hotkey-*'
merge-multiple: true
- name: Download menu-macos artifacts
uses: actions/download-artifact@v4
with:
path: menu-macos/src/main/resources/nucleus/native/
pattern: 'menu-macos*'
merge-multiple: true
- name: Download system-info artifacts
uses: actions/download-artifact@v4
with:
path: system-info/src/main/resources/nucleus/native/
pattern: 'system-info-*'
merge-multiple: true
- name: Download scheduler artifacts
uses: actions/download-artifact@v4
with:
path: scheduler/src/main/resources/nucleus/native/
pattern: 'scheduler-*'
merge-multiple: true
- name: Download media-control artifacts
uses: actions/download-artifact@v4
with:
path: media-control/src/main/resources/nucleus/native/
pattern: 'media-control-*'
merge-multiple: true
- name: Setup Nucleus (GraalVM)
uses: ./.github/actions/setup-nucleus
with:
graalvm: 'true'
setup-gradle: 'true'
setup-node: 'false'
- name: Build GraalVM native image
shell: bash
run: ./gradlew :example:packageGraalvmNative -PnativeMarch=compatibility --no-daemon --stacktrace
- name: Upload GraalVM artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: graalvm-${{ runner.os }}
path: |
example/build/compose/tmp/**/graalvm/output/**
if-no-files-found: warn