You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
chore: setup CI/CD pipeline with quality gates #414
The project currently has no automated CI/CD pipeline. All quality checks (typecheck, test, stale-dist, officecli-bundle) rely on manual check:release invocation. There are 14k+ AST nodes across 838 files with no automated quality gates on push or PR.
Problem
Without CI gates, regressions in:
Type safety (broken tsc --noEmit)
Test failures (flaky/missing tests)
Stale distribution artifacts (source changed but dist not rebuilt)
Missing bundled tool binaries (officecli)
...are only discovered at release time or not at all.
Proposal
Add a .github/workflows/ci.yml that runs:
Core gates (required on every push/PR)
Check
Command
Rationale
Typecheck
npm run typecheck
Catch type errors before merge
Test
npm run test
Catch logic regressions
Stale dist
npm run check:stale
Ensure dist matches source
OfficeCLI bundle
npm run check:officecli-bundle
Ensure bundled binary present
Candidate gates (for discussion)
Check
Command
Discussion
Lint/formatter
npm run lint
Blocked on linter introduction (separate issue)
Dead CSS audit
node scripts/check-dead-css.mjs --check
Currently manual; value vs. CI noise?
Storybook build
npm --workspace @maka/desktop run build-storybook
Catches component doc rot; slower build, worth it on every PR?
Trigger strategy (for discussion)
push to main: typecheck + check:stale (fast feedback)
PR to main: typecheck + test + check:stale + check:officecli-bundle
release (tag push): full suite including storybook build
Acceptance criteria
.github/workflows/ci.yml exists and triggers on PRs to main
All core gates pass on clean main branch
CI status badge in README
Team agrees on candidate gates and trigger strategy
References
Root package.json scripts section for available checks
CI is in place..github/workflows/ci.yml runs on PRs and pushes to main with typecheck, unit/integration tests (test:dist), and Playwright Electron e2e. That landed via #581 and follow-ups (#587, #590), not the earlier #536 attempt.
Out of scope for this close (open a new issue if wanted):
README CI status badge
check:stale / check:officecli-bundle as CI jobs (still local/check:release)
Candidate gates from the issue body (lint, dead-css, storybook)
CD (release/publish/deploy). This issue never defined a release path, and the repo has no deploy workflow — file a separate issue if we want automated packaging or releases.
The original problem (no automated quality gates on push/PR) is resolved.
Activity
Astro-Han commentedon Jul 9, 2026
Closing as done.
CI is in place.
.github/workflows/ci.ymlruns on PRs and pushes tomainwith typecheck, unit/integration tests (test:dist), and Playwright Electron e2e. That landed via #581 and follow-ups (#587, #590), not the earlier #536 attempt.Out of scope for this close (open a new issue if wanted):
check:stale/check:officecli-bundleas CI jobs (still local/check:release)The original problem (no automated quality gates on push/PR) is resolved.