Skip to content

fix: release confirm dialog pointer lock #817

fix: release confirm dialog pointer lock

fix: release confirm dialog pointer lock #817

Workflow file for this run

name: CI
on:
push:
branches: [main]
paths:
- 'src/**'
- 'src-tauri/**'
- 'cli/**'
- 'index.html'
- 'package.json'
- 'pnpm-lock.yaml'
- 'vite.config.ts'
- 'tsconfig.json'
- 'tsconfig.node.json'
- 'tailwind.config.js'
- '.github/workflows/ci.yml'
pull_request:
branches: [main]
# Cancel in-flight runs for the same branch/PR when a newer commit arrives
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
# ── Frontend: TypeScript + i18n ────────────────────────────────────
frontend:
name: Frontend (TypeScript + i18n)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
node-version: '20'
- uses: pnpm/action-setup@v6
with:
version: 9
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: TypeScript type check
run: npx tsc --noEmit
- name: i18n completeness check
run: node scripts/check-i18n.cjs
- name: Run tests
run: pnpm test
# ── Rust: check + fmt + deny ────────────────────────────────────────
rust:
name: Rust (check + fmt)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- uses: swatinem/rust-cache@v2
with:
workspaces: |
./src-tauri -> target
./cli -> target
cache-on-failure: false
- name: Install Linux system dependencies
run: |
sudo apt-get update
# serialport links against libudev on Linux.
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libjavascriptcoregtk-4.1-dev \
libsoup-3.0-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libssl-dev \
libudev-dev \
pkg-config \
build-essential
- name: Ensure bundled resource directories exist
run: |
mkdir -p src-tauri/cli-bin
- name: cargo check (src-tauri)
run: cd src-tauri && cargo check --all-features
- name: cargo fmt (src-tauri)
run: cd src-tauri && cargo fmt --check
- name: cargo check (cli)
run: cd cli && cargo check
- name: cargo fmt (cli)
run: cd cli && cargo fmt --check
- name: cargo test (src-tauri)
run: cd src-tauri && cargo test --lib
- name: cargo test (cli)
run: cd cli && cargo test
# ── License & duplicate dependency audit ────────────────────────────
# cargo deny reads the dependency graph only — no compilation, no Linux
# graphics libs needed. Runs in parallel with the rust job.
cargo-deny:
name: License & dependency audit (cargo deny)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: cargo deny (src-tauri)
uses: EmbarkStudios/cargo-deny-action@v2
with:
manifest-path: src-tauri/Cargo.toml
# Advisory checks are intentionally not a CI gate: Tauri/WebKitGTK
# transitive advisories churn faster than we can action upstream fixes.
# Keep licenses and duplicate-crate bans as hard gates.
command: check
command-arguments: licenses bans
- name: cargo deny (cli)
uses: EmbarkStudios/cargo-deny-action@v2
with:
manifest-path: cli/Cargo.toml
command: check
command-arguments: --config src-tauri/deny.toml licenses bans