Skip to content

chore(deps): bump tauri-apps/tauri-action from 0.5 to 0.6 #211

chore(deps): bump tauri-apps/tauri-action from 0.5 to 0.6

chore(deps): bump tauri-apps/tauri-action from 0.5 to 0.6 #211

Workflow file for this run

name: CI
on:
push:
branches: [next]
pull_request:
branches: [next]
workflow_call:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_INCREMENTAL: 0
CARGO_TERM_COLOR: always
NODE_VERSION: '20'
jobs:
# ─── Fast checks: linting, formatting, type-checking ───────────────
lint-and-typecheck:
name: Lint & Typecheck
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: TypeScript type check
run: npx tsc --noEmit
- name: Prettier format check
run: npx prettier --check .
- name: ESLint
run: npx eslint .
# ─── Unit tests with Vitest ────────────────────────────────────────
unit-tests:
name: Unit Tests
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run Vitest
run: npx vitest run --coverage --reporter=verbose --reporter=junit --outputFile=test-results/junit.xml
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: unit-test-results
path: test-results/
retention-days: 14
if-no-files-found: warn
# ─── E2E tests with Playwright ─────────────────────────────────────
# TODO: Enable when Playwright tests are added
e2e-tests:
if: false
name: E2E Tests
runs-on: ubuntu-latest
timeout-minutes: 20
needs: [unit-tests]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Playwright browsers
run: npx playwright install chromium --with-deps
- name: Run Playwright tests
run: npx playwright test
- name: Upload Playwright report
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report/
retention-days: 14
if-no-files-found: warn
- name: Upload E2E screenshots
if: always()
uses: actions/upload-artifact@v4
with:
name: e2e-screenshots
path: e2e/screenshots/
retention-days: 14
if-no-files-found: ignore
# ─── Security audit: npm + cargo ───────────────────────────────────
security-audit:
name: Security Audit
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: npm audit
run: pnpm audit --audit-level=high
- name: Install Rust stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
workspaces: apps/src-tauri
- name: Install cargo-audit
run: cargo install cargo-audit
- name: Cargo audit
run: cargo audit --file apps/src-tauri/Cargo.lock
# ─── Rust: cargo check, clippy, fmt ────────────────────────────────
rust-check:
name: Rust Check
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install system dependencies for Tauri
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev
- name: Install Rust stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt
- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
workspaces: apps/src-tauri
- name: Cargo check
run: cargo check --manifest-path apps/src-tauri/Cargo.toml
- name: Clippy lint
run: cargo clippy --manifest-path apps/src-tauri/Cargo.toml -- -D warnings
- name: Format check
run: cargo fmt --manifest-path apps/src-tauri/Cargo.toml -- --check
- name: Run Rust tests
run: cargo test --manifest-path apps/src-tauri/Cargo.toml