T-T2HB-fold-pumice-ci-into-moon-ci
Status: closed/done · Impact: medium · Complexity: medium
Fold pumice’s frontend, Rust, and codegen-drift checks into this repo’s CI so
they run under moon ci (affected-detection), on a job that installs Tauri’s
Linux system dependencies. Retire pumice’s standalone GitHub workflows in favor
of the monorepo’s CI.
Pumice ships four workflows (ci.yml, build-check.yml, codegen-drift.yml,
release.yml) that install libwebkit2gtk-4.1-dev and friends and run the
frontend and Rust jobs. This repo runs quality gates via bun/moon (see
sdlc.yaml).
| Location | Role today |
|---|---|
apps/pumice/.github/workflows/* | Pumice’s own CI (not wired into the monorepo) |
Root CI / moon ci | The monorepo’s gate; no pumice awareness |
| Tauri Linux build deps | libwebkit2gtk-4.1-dev, librsvg2-dev, patchelf, libasound2-dev |
Proposed
Section titled “Proposed”A pumice-affected CI path that installs the Tauri system deps and runs
moon run pumice:check/test/codegen-drift, so pumice’s gates fire only when
apps/pumice is affected. Pumice’s in-tree workflows are removed or reduced to
release-only.
Approach
Section titled “Approach”- Add system deps to the runner. Install the Tauri Linux packages in the monorepo CI job that runs pumice-affected tasks.
- Route through moon. Invoke pumice’s checks via
moon ci/moon run pumice:*so affected-detection skips pumice when it is untouched. - Retire/trim pumice’s workflows. Remove
ci.yml/build-check.yml/codegen-drift.ymlfromapps/pumice/.github(superseded); decide whetherrelease.ymlstays app-local or moves to a monorepo release flow. - Confirm codegen-drift runs. Ensure the
T-R9WTdrift gate runs in CI withPUMICE_SKIP_SERVER_CODEGENset.
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
| Monorepo CI workflow | edit | Add pumice-affected job with Tauri system deps + moon ci |
apps/pumice/.github/workflows/* | delete/trim | Retire superseded workflows |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: A CI run touching only
apps/pumiceexecutes pumice’s frontend, Rust, and codegen-drift checks via moon. - AC-2: A CI run NOT touching
apps/pumiceskips pumice’s checks (affected-detection). - AC-3: The CI job installs the Tauri Linux system deps and pumice’s Rust build/clippy pass.
- AC-4: Superseded pumice in-tree workflows are removed; release ownership is decided.
Out of scope
Section titled “Out of scope”- Release/signing pipeline design — deferred to a Phase-2/release task.
- Remote moon cache — deferred per D-0012-monorepo-tooling.
Dependencies
Section titled “Dependencies”T-M7QX,T-P4LZ,T-R9WT(hard): the Bun, Rust, and codegen tasks must exist before CI can route through them.
Depends on
Section titled “Depends on”T-M7QX, T-P4LZ, T-R9WT