Cargo workspace (domain, application, infrastructure, api), axum health endpoint with SPA fallback, Vue 3 + Tailwind frontend, Vitest, Playwright, Makefile, Gitea Actions CI and README. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
40 lines
1.3 KiB
YAML
40 lines
1.3 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
|
|
jobs:
|
|
backend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with: { components: rustfmt, clippy }
|
|
- uses: Swatinem/rust-cache@v2
|
|
with: { workspaces: backend }
|
|
- run: cd backend && cargo fmt --check && cargo clippy --workspace --all-targets -- -D warnings
|
|
- run: cd backend && cargo test --workspace
|
|
|
|
frontend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with: { node-version: 22, cache: npm, cache-dependency-path: frontend/package-lock.json }
|
|
- run: cd frontend && npm ci
|
|
- run: cd frontend && npm run lint && npm run typecheck && npm test
|
|
|
|
ui:
|
|
runs-on: ubuntu-latest
|
|
needs: [backend, frontend]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: Swatinem/rust-cache@v2
|
|
with: { workspaces: backend }
|
|
- uses: actions/setup-node@v4
|
|
with: { node-version: 22, cache: npm, cache-dependency-path: frontend/package-lock.json }
|
|
- run: cd frontend && npm ci && npx playwright install --with-deps chromium
|
|
- run: cd frontend && npm run test:ui
|