Skip to content

ci: the daemon on Ubuntu and macOS #197

ci: the daemon on Ubuntu and macOS

ci: the daemon on Ubuntu and macOS #197

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
rust-windows:
name: Rust (Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- run: cargo fmt --all --check
- run: cargo clippy --workspace --all-targets -- -D warnings
- run: cargo test --workspace
- name: Generated TypeScript bindings are up to date
run: git diff --exit-code -- app/src/lib/protocol.gen.ts
# The daemon and its crates off Windows (spec 18, item 8). Plain `cargo`
# builds the default members only: the app crates need the desktop
# libraries of each system and join later.
rust-unix:
name: Rust (${{ matrix.name }})
strategy:
fail-fast: false
matrix:
include:
- name: Ubuntu
os: ubuntu-latest
- name: macOS
os: macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo clippy --all-targets -- -D warnings
- run: cargo test
app:
name: App (Windows)
runs-on: windows-latest
defaults:
run:
working-directory: app
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
with:
package_json_file: app/package.json
- uses: actions/setup-node@v5
with:
node-version: 24
cache: pnpm
cache-dependency-path: app/pnpm-lock.yaml
- run: pnpm install --frozen-lockfile
- run: pnpm check
- run: pnpm build
- name: The setup window's page builds too (spec 15.7)
run: pnpm exec vite build --mode setup