8000 ci: cache the standalone WASM workspace by maxi-maxima · Pull Request #1060 · wingfoil-io/wingfoil · GitHub
[go: up one dir, main page]

Skip to content

ci: cache the standalone WASM workspace - #1060

Merged
0-jake-0 merged 1 commit into
wingfoil-io:mainfrom
maxi-maxima:agent/wasm-cache-workspace-20261020
Oct 25, 2026
Merged

0-jake-0 merged 1 commit into
wingfoil-io:mainfrom
maxi-maxima:agent/wasm-cache-workspace-20261020

Conversation

@maxi-maxima
@maxi-maxima maxi-maxima commented Oct 20, 2026 •
Copy link
Copy Markdown
Contributor

What this changes

Point the four existing WASM Rust caches at crates/wingfoil-wasm -> target and use the shared key wasm in web CI, npm publishing, and the two trading-demo build workflows.

Why

wingfoil-wasm is excluded from the root Cargo workspace. These cache steps default to the repository's target, while wasm-pack and native WASM tests write to crates/wingfoil-wasm/target. For example, the existing WASM CI job logs the root target as its cache path. Unifying the key alone would still leave the actual build output outside that cache.

Refs #451 (the WASM cache item only).

How it was verified

  • actionlint 1.7.12 on all four workflows; YAML assertions against the base show only the intended cache inputs changed.

  • env -u CARGO_TARGET_DIR cargo metadata --no-deps --format-version=1 --manifest-path crates/wingfoil-wasm/Cargo.toml confirms the configured target directory. Both the real WASM release artifact and native test artifacts were produced there.

  • wasm-pack build --target web --release; standalone cargo test --locked (8 passed); pnpm install --frozen-lockfile, pnpm run build:wasm, pnpm run lint, pnpm run build:ts, pnpm test (42 passed), and pnpm audit (no known vulnerabilities).

  • Rust 1.99: cargo fmt --all -- --check, cargo lint, and cargo lint-all passed. cargo test --locked -p wingfoil --all-features --lib --tests --no-run compiled all binaries; executing the 78 non-service binaries passed 1,399 tests. The 15 *_integration binaries were compiled but not executed, matching the normal CI exclusion.

  • cargo test --locked -p wingfoil-derive (20 passed) and cargo test --locked --doc -p wingfoil --all-features (66 passed, 29 ignored); existing setup/SARIF/example/binding guards and git diff --check passed.

  • The first upstream WASM job passed and logs crates/wingfoil-wasm/target in both its cache restore and post-build phases.

Notes for the reviewer

Five files, +16/-3. Parsed before/after YAML is identical after removing only the four workspace inputs and restoring the three old shared-key values. Build commands, triggers, job IDs, conditions, permissions and action revisions are unchanged.

Toolchain, environment and dependency hashes remain part of the complete cache key; this does not promise hits across incompatible build environments. No release, ECR image or AMI workflow was dispatched, and no speedup is claimed without a cache round trip.

Before you submit

  • Allow edits by maintainers

@0-jake-0 0-jake-0 left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked all four jobs: each one only builds the WASM crate (wasm-pack directly, or via pnpm run build:wasm / scripts/build-demo-vendor.sh, both of which cd into crates/wingfoil-wasm), so nothing in these jobs writes to the root target and repointing the cache loses nothing. workspaces: crates/wingfoil-wasm -> target is the documented rust-cache syntax, and the upstream run you linked confirms the restore path. Sharing one wasm key across the four is fine since the toolchain and lockfile hashes stay in the full key. Merges cleanly onto current main.


Generated by Claude Code

@0-jake-0
0-jake-0 merged commit 7374a6a into wingfoil-io:main Oct 25, 2026
11 checks passed
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

0