Skip to content

ci: extract reusable validation workflow shared by PR CI and release … - #334

Open
clanzhang wants to merge 1 commit into
pocket-stack:mainfrom
clanzhang:ci/reusable-validation-gates
Open

ci: extract reusable validation workflow shared by PR CI and release …#334
clanzhang wants to merge 1 commit into
pocket-stack:mainfrom
clanzhang:ci/reusable-validation-gates

Conversation

@clanzhang

Copy link
Copy Markdown

Summary

Extract the test gates that were inlined in release.yml into a reusable
workflow (validate.yml) called by both a new PR CI workflow (ci.yml)
and the release workflow. This addresses the feedback on #303.

Fixes from #303

Problem Fix
wasm32-unknown-unknown not installed — js job and all downstream jobs fail Dedicated wasm job installs the target via dtolnay/rust-toolchain@stable, uploads the artifact, and downstream jobs download it
Rust matrix compares boolean true with string "true"--workspace silently dropped, wrong cache path Moved cache-target into the matrix include list; use matrix.workspace && '--workspace' || '' directly
checkout@v4 / cache@v4 drifted from release.yml All actions bumped to v7 / v6 to match
Validation logic duplicated between CI and release Single validate.yml called by both ci.yml and release.yml

Job graph

wasm ──┬── js (bun test + tsc)

├── goldens

   ├── tape

   └── docs

rust (core / workspace / symbian) ← independent, no wasm needed

Not included (by design)

  • PSP EBOOT / Vita VPK / Symbian E7 builds — require proprietary toolchains
  • These remain validated only through the release workflow and manual evidence

Closes #182.

…ocket-stack#182)

Split the test gates that were inlined in release.yml into a reusable
workflow (.github/workflows/validate.yml) called by both a new PR CI
workflow (ci.yml) and the release workflow.

Fixes from the previous attempt (pocket-stack#303):
- Add a dedicated wasm job with dtolnay/rust-toolchain + wasm32-unknown-unknown
  target so that bun tools/wasm.ts no longer fails with a missing target.
  The wasm artifact is uploaded once and downloaded by js / goldens / tape / docs.
- Fix the Rust matrix: move cache-target into the matrix include list
  and use the boolean matrix.workspace directly instead of comparing it
  to the string "true", which caused --workspace to be silently dropped
  and the wrong target directory to be cached.
- Bump checkout to v7 and cache to v6 to match release.yml.

Closes pocket-stack#182.
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.

ci: validate pull requests with the release test gates

1 participant