Skip to content

feat(onboarding): tour folder+outline steps, interactive guide, expor… #195

feat(onboarding): tour folder+outline steps, interactive guide, expor…

feat(onboarding): tour folder+outline steps, interactive guide, expor… #195

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
check:
strategy:
fail-fast: false
matrix:
platform: [windows-latest, ubuntu-24.04, macos-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
# The stable toolchain installs with the minimal profile, which omits
# clippy — request it explicitly so the lint step below has it.
with:
components: clippy
- name: Rust cache
uses: swatinem/rust-cache@v2
# Caching is an optimization — a flaky GitHub cache service must never
# fail the build (it took down a Windows release once).
continue-on-error: true
with:
workspaces: './src-tauri -> target'
- name: Install Linux dependencies
if: matrix.platform == 'ubuntu-24.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install frontend dependencies
run: bun install
- name: Build frontend (tsc + vite)
run: bun run build
- name: Run frontend tests
run: bun run test
# clippy compiles the crate (so it subsumes `cargo check`) while also
# failing the build on any lint warning, keeping the Rust side clean.
- name: Lint Rust (clippy)
working-directory: src-tauri
run: cargo clippy --all-targets -- -D warnings
- name: Test Rust
working-directory: src-tauri
run: cargo test