Skip to content

feat(brand): replace the app icon with the Main agent's face (#213) #869

feat(brand): replace the app icon with the Main agent's face (#213)

feat(brand): replace the app icon with the Main agent's face (#213) #869

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
name: Check & Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev
- name: Install npm dependencies
run: npm ci
- name: Lint frontend
run: npm run lint
- name: Typecheck frontend
run: npm run typecheck
- name: Frontend tests
run: npm test
- name: Check generated bindings
run: |
npm run gen:bindings
git diff --exit-code src/generated/bindings.ts
- name: Build frontend
run: npm run build
- name: Rust check
working-directory: src-tauri
run: cargo check
- name: Rust clippy
working-directory: src-tauri
# --all-targets brings tests, benches and examples under the lint
# policy; a plain `cargo clippy` lints only the lib, the bin and
# build.rs. README already tells contributors to run it this way.
run: cargo clippy --all-targets -- -D warnings
- name: Rust fmt check
working-directory: src-tauri
run: cargo fmt --check
- name: Rust tests
working-directory: src-tauri
run: cargo test
- name: Build Tauri app (debug, no bundle)
run: npm run tauri -- build --debug --no-bundle
windows-check:
name: Windows check
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Install npm dependencies
run: npm ci
# generate_context! (src-tauri/src/lib.rs) embeds frontendDist (../dist)
# into the binary at compile time, so the Rust steps below need dist/ to
# exist. Build the frontend first (mirrors the Linux job's ordering). The
# frontend quality checks (lint/typecheck/tests/bindings) and fmt are
# platform-independent and already covered by the Linux `check` job, so we
# don't repeat them here — this job exists to compile-check the
# Windows-only (`#[cfg(windows)]` / `cfg!(windows)`) Rust paths.
- name: Build frontend
run: npm run build
- name: Rust check
working-directory: src-tauri
run: cargo check
- name: Rust clippy
working-directory: src-tauri
# --all-targets brings tests, benches and examples under the lint
# policy; a plain `cargo clippy` lints only the lib, the bin and
# build.rs. README already tells contributors to run it this way.
run: cargo clippy --all-targets -- -D warnings
- name: Rust tests
working-directory: src-tauri
run: cargo test