Skip to content

release: publish v0.5.9 updater manifest #88

release: publish v0.5.9 updater manifest

release: publish v0.5.9 updater manifest #88

Workflow file for this run

name: ci
on:
pull_request:
push:
branches: [main, master]
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
# Debug info dominates `target/debug` size for this dependency tree
# (datafusion + arrow + lance + llama.cpp + reqwest). CI doesn't ship or
# debug these artifacts, so drop it: shrinks the debug tree by well over
# half and keeps the runner under its disk quota. Only affects the dev/test
# profiles — the release build (build-release job) is unchanged.
CARGO_PROFILE_DEV_DEBUG: 0
CARGO_PROFILE_TEST_DEBUG: 0
jobs:
# -------------------------------------------------------------------------
# Rust formatting (fast, no compile)
# -------------------------------------------------------------------------
fmt:
name: rust / fmt
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --all -- --check
# -------------------------------------------------------------------------
# Clippy on the full workspace. Needs Linux Tauri deps because
# `sync-desktop` (and through it `sync-app`) link webkit2gtk at
# compile time even for clippy.
# -------------------------------------------------------------------------
clippy:
name: rust / clippy
runs-on: ubuntu-24.04
env:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
- name: Reclaim runner disk space
run: |
# The debug build of this dependency tree (datafusion + arrow +
# lance + llama.cpp) can exceed the runner's ~21 GB of free space.
# Drop preinstalled toolchains we never use to reclaim ~20 GB.
sudo rm -rf \
/usr/local/lib/android \
/usr/share/dotnet \
/opt/ghc \
/opt/hostedtoolcache/CodeQL \
/usr/local/share/boost \
/usr/local/graalvm
sudo docker image prune --all --force || true
df -h /
- name: Install Linux Tauri prerequisites
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libsoup-3.0-dev \
libssl-dev
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Install protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Stub frontend dist
# tauri's generate_context! validates `frontendDist` at compile
# time; this Rust-only job never builds the real bundle, so give
# the macro an empty dir to satisfy the check.
run: mkdir -p web/dist && echo '<!doctype html><title>stub</title>' > web/dist/index.html
- run: cargo clippy --workspace --all-targets -- -D warnings
# -------------------------------------------------------------------------
# Workspace tests on Linux + macOS. Windows tests are out of scope
# for now (the engine has Linux/macOS-specific assumptions around
# file locking, signals via nix, etc.).
# -------------------------------------------------------------------------
test:
name: rust / test (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-14]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Reclaim runner disk space
if: runner.os == 'Linux'
run: |
# The debug build of this dependency tree (datafusion + arrow +
# lance + llama.cpp) can exceed the runner's ~21 GB of free space.
# Drop preinstalled toolchains we never use to reclaim ~20 GB.
sudo rm -rf \
/usr/local/lib/android \
/usr/share/dotnet \
/opt/ghc \
/opt/hostedtoolcache/CodeQL \
/usr/local/share/boost \
/usr/local/graalvm
sudo docker image prune --all --force || true
df -h /
- name: Install Linux Tauri prerequisites
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libsoup-3.0-dev \
libssl-dev
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Stub frontend dist
# tauri's generate_context! validates `frontendDist` at compile
# time; this Rust-only job never builds the real bundle, so give
# the macro an empty dir to satisfy the check.
run: mkdir -p web/dist && echo '<!doctype html><title>stub</title>' > web/dist/index.html
- run: cargo test --workspace
# -------------------------------------------------------------------------
# Frontend: typecheck, lint, vitest, production bundle.
# -------------------------------------------------------------------------
frontend:
name: frontend / lint + build (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-14]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22.12.0"
cache: "npm"
cache-dependency-path: web/package-lock.json
- name: Install (hardened)
working-directory: web
# --ignore-scripts is mandatory per f-c00006. No package's
# postinstall script runs at install time.
run: npm ci --ignore-scripts
- name: Typecheck
working-directory: web
run: npm run typecheck
- name: Lint
working-directory: web
run: npm run lint
- name: Test
working-directory: web
run: npm test
- name: Build
working-directory: web
run: npm run build
# -------------------------------------------------------------------------
# Supply-chain checks.
# -------------------------------------------------------------------------
deny:
name: rust / cargo deny
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v2
with:
command: check bans advisories sources licenses
audit:
name: rust / cargo audit
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/audit@v1