60 lines
1.3 KiB
YAML
60 lines
1.3 KiB
YAML
name: CI
|
||
|
||
on:
|
||
push:
|
||
branches: [main, master]
|
||
pull_request:
|
||
branches: [main, master]
|
||
|
||
jobs:
|
||
rust:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
with:
|
||
submodules: recursive
|
||
|
||
- uses: dtolnay/rust-toolchain@stable
|
||
with:
|
||
components: rustfmt, clippy
|
||
|
||
- name: cargo fmt
|
||
run: cargo fmt --all -- --check
|
||
|
||
- name: cargo clippy
|
||
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||
|
||
- name: cargo test
|
||
run: cargo test --workspace --all-features
|
||
|
||
# Operator UI (`ui/`): same checks you’d run locally before a control-plane bundle.
|
||
ui:
|
||
runs-on: ubuntu-latest
|
||
defaults:
|
||
run:
|
||
working-directory: ui
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
|
||
- uses: pnpm/action-setup@v4
|
||
with:
|
||
version: 10
|
||
|
||
- uses: actions/setup-node@v4
|
||
with:
|
||
node-version: "22"
|
||
cache: pnpm
|
||
cache-dependency-path: ui/pnpm-lock.yaml
|
||
|
||
- name: pnpm install
|
||
run: pnpm install --frozen-lockfile
|
||
|
||
- name: TypeScript (no emit)
|
||
run: pnpm run typecheck
|
||
|
||
- name: Prettier
|
||
run: pnpm run format:check
|
||
|
||
- name: Vite production build
|
||
run: pnpm run build
|