Some checks failed
nigig-build (CAD) / supply-chain (push) Has been cancelled
nigig-build (CAD) / cad-module (push) Has been cancelled
nigig-build (CAD) / full-crate-check (push) Has been cancelled
doc-engine / engine (push) Has been cancelled
doc-engine / consumer (push) Has been cancelled
- projection_layout builds ProjectedTableLayout geometry (fixed 160x28 cells matching the legacy bridge width, merge spans with covered-cell flags) and per-block origins so blocks after a table clear it instead of using the fixed line step - ProjectionRenderer draws the table grid through a new draw_table_border live field and consumes layout block origins for text placement - table_hit_test maps points to merge-anchor cells for future cell editing - doc-engine: split the cramped style-patch line clippy flagged as possible_missing_else; the crate is clippy-clean again - README: tick verified CRDT bridge boxes (dependency, wiring, selected replacement/formatting/table/toolbar migration, font size/color migration) and document the table milestone - CI: add doc-engine workflow (engine tests + clippy -D warnings + nigig-build consumer check/test) and trigger nigig-build CI on doc changes
77 lines
2.6 KiB
YAML
77 lines
2.6 KiB
YAML
name: doc-engine
|
|
|
|
# CI for the standalone CRDT document engine crate.
|
|
#
|
|
# Enforces:
|
|
# 1. `doc-engine` compiles and its test suite is green (--locked, so the
|
|
# committed lockfile is the only dependency resolution).
|
|
# 2. Clippy stays at zero warnings: the warning class fixed when this
|
|
# workflow was added (`possible_missing_else`) is invisible in review
|
|
# and each instance is a potential logic slip.
|
|
# 3. nigig-build still compiles and tests green against the new engine:
|
|
# the UI consumes the engine through a path dependency, and an engine
|
|
# change that breaks the consumer must fail here, not downstream.
|
|
#
|
|
# `cargo fmt --check` is deliberately not a gate yet: the crate predates
|
|
# the rustfmt style of the pinned toolchain and reformatting it wholesale
|
|
# would conflict with open lines of work. Same reasoning as the clippy
|
|
# note in nigig-build.yml -- a step that cannot fail is worse than no
|
|
# step, but a step that always fails gets ignored.
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'crates/apps/doc/**'
|
|
- 'Cargo.lock'
|
|
- 'Cargo.toml'
|
|
- 'rust-toolchain.toml'
|
|
- '.forgejo/workflows/doc-engine.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'crates/apps/doc/**'
|
|
- 'Cargo.lock'
|
|
- 'Cargo.toml'
|
|
- 'rust-toolchain.toml'
|
|
- '.forgejo/workflows/doc-engine.yml'
|
|
|
|
jobs:
|
|
engine:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
# The engine is UI-free (serde + serde_json only): no system GUI
|
|
# packages, no Makepad checkout resolution beyond the lockfile.
|
|
- name: Engine tests
|
|
run: cargo test --locked -p doc-engine
|
|
|
|
- name: Engine clippy
|
|
run: cargo clippy --locked -p doc-engine -- -D warnings
|
|
|
|
- name: Reject whitespace errors
|
|
run: git diff --check
|
|
|
|
consumer:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
# nigig-build links doc-engine by path; the doc workspace module only
|
|
# compiles against the engine API it was written for.
|
|
- name: Install native dependencies
|
|
run: |
|
|
sudo apt-get update -qq
|
|
sudo apt-get install -y -qq \
|
|
pkg-config libwayland-dev libxcursor-dev libxrandr-dev \
|
|
libxi-dev libx11-dev libgl1-mesa-dev libasound2-dev \
|
|
libpolkit-gobject-1-dev libpolkit-agent-1-dev \
|
|
libglib2.0-dev libssl-dev libsqlite3-dev libudev-dev \
|
|
libpulse-dev libxkbcommon-dev
|
|
|
|
- name: Check nigig-build against the engine
|
|
run: cargo check --locked -p nigig-build --lib
|
|
|
|
- name: Test nigig-build against the engine
|
|
run: cargo test --locked -p nigig-build --lib
|