Skip to content

ci: run release gates on every pull request - #4

Merged
rootkiller6788 merged 1 commit into
rootkiller6788:mainfrom
TianHengZhuang:feature/pr-ci-and-docs
Sep 12, 2026
Merged

rootkiller6788 merged 1 commit into
rootkiller6788:mainfrom
TianHengZhuang:feature/pr-ci-and-docs

Conversation

@TianHengZhuang

Copy link
Copy Markdown
Contributor

Why

CONTRIBUTING requires a green CI before merge, but the only workflow in .github/workflows/ is release.yml, which only runs on v* tags. Contributors cannot tell whether cargo test, clippy, tsc, or the instance_system suite still pass on a branch, and the three frontend vitest files never run in automation.

Two docs also point at files that are not in the repo: CONTRIBUTING.md links plan.md / TODO.md, and README.md lists a docs/ directory that does not exist.

What

  • Add .github/workflows/ci.yml on pull_request and push to main.
  • Same windows-latest job shape as release.yml (pnpm 11.18.0, Node 22, stable Rust + clippy, Swatinem/rust-cache).
  • Run the four release gates plus npx vitest run in apps/desktop.
  • Leave rustfmt out for now — release does not gate on it, and enabling it here would fail on the current tree.
  • Keep ignored real-machine e2e walks local, per the existing convention.
  • Fix CONTRIBUTING.md dead links (plan.md, TODO.md, "P2" placeholder → points at ci.yml).
  • Drop the non-existent docs/ line from the README tree.

How tested

  • Diff is workflow + docs only; no application code.
  • ci.yml copies the already-shipping release gate commands.
  • Vitest already has mcpConfig.test.ts, theme.test.ts, appStore.test.ts under apps/desktop/src.

Happy to adjust the job matrix or add cargo fmt --check in a follow-up once the tree is formatted.

CONTRIBUTING asks for a green CI before merge, but the only workflow
is release.yml, which fires on v* tags. A contributor cannot see
whether cargo test, clippy, tsc, or the instance_system integration
suite still pass on a branch, and the three frontend vitest files
never run in automation at all.

This adds ci.yml on pull_request and push to main. It reuses the same
windows-latest job shape as release — pnpm 11.18.0, Node 22, stable
Rust with clippy, Swatinem/rust-cache — and runs the four release
gates plus vitest. rustfmt is deliberately left out: release does not
gate on it yet, and turning it on here would fail the PR on whatever
the current tree happens to look like. The ignored real-machine e2e
walks stay local, per the existing convention.

While touching the contributing docs: CONTRIBUTING linked plan.md and
TODO.md, neither of which is in the repo, and README still listed a
docs/ directory that does not exist. Point the intro and the language-
boundary note at this file instead, say that ci.yml is what runs the
PR gates, and close issues from the PR body rather than a TODO
checkbox.
@rootkiller6788

Copy link
Copy Markdown
Owner

Yes, merge it — it's workflow-and-docs only, and I verified every premise is correct.
Note: that CI run is still in_progress (started 04:41:55Z), not green yet — I'll check again shortly and confirm.

@rootkiller6788
rootkiller6788 merged commit d38d0cd into rootkiller6788:main Sep 12, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants