release: publish v0.5.9 updater manifest #88
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |