Skip to content

feat: Add ODE Desktop Application (Tauri + React) (#610) #9

feat: Add ODE Desktop Application (Tauri + React) (#610)

feat: Add ODE Desktop Application (Tauri + React) (#610) #9

Workflow file for this run

name: ODE Desktop
on:
pull_request:
paths:
- 'desktop/**'
- '.github/workflows/ode-desktop.yml'
push:
branches:
- main
- dev
paths:
- 'desktop/**'
- '.github/workflows/ode-desktop.yml'
workflow_dispatch:
env:
NODE_VERSION: '24'
jobs:
desktop:
name: Lint, test, and Rust checks
runs-on: ubuntu-latest
defaults:
run:
working-directory: desktop
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Enable corepack and install pnpm
run: |
corepack enable
corepack prepare pnpm@latest --activate
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path $(pnpm --version))" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: ESLint
run: pnpm lint
- name: Prettier
run: pnpm format:check
- name: Vitest
run: pnpm test
- name: Typecheck
run: pnpm typecheck
- name: Regenerate Synkronus TypeScript client
run: pnpm codegen:synk-client
- name: Verify generated client matches repository
working-directory: ${{ github.workspace }}
run: git diff --exit-code -- desktop/src/generated
- name: Install Linux dependencies (Tauri prerequisites)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libglib2.0-dev \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libappindicator3-dev \
librsvg2-dev \
patchelf \
libssl-dev \
pkg-config
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Cargo fmt, clippy, test
working-directory: desktop/src-tauri
run: |
cargo fmt --check
cargo clippy -- -D warnings
cargo test