Skip to content

Track CI duration wins from slim shells + committed artifacts #2607

Description

@thedavidmeister

Goal

Track the CI duration wins from the slim-shell / committed-artifacts work, so we can see what's actually moved on main vs what's still pending in PRs.

Baseline on main (latest run per workflow as of 2026-05-30)

Workflow Baseline Notes
rainix-sol 2m already fast
copy-artifacts 5m was 2m pre-#2603; build-meta hook added 4m, rain.cli Cachix hit saves 1m
Subgraph unit tests 16m full default devshell, runs forge build + npm ci + graph codegen + matchstick
Rainix CI (standard-tests matrix) ~25m full default devshell, ./pointers.sh (dead forge build) + cargo + wasm + js bindings
Test webapp / Test ui-components 20–22m webapp + ui-components vitest + svelte-check
Vercel Production 11–22m variable, not in our scope

Wins already landed

Pending PRs and their expected gains

  • raindex Commit subgraph/abis + subgraph/generated; use rainix-subgraph-test reusable #2606 (subgraph committed artifacts + thin rainix-subgraph-test wrapper, slim #subgraph-shell): drops forge build + graph codegen from the test path; matchstick runs over committed subgraph/abis/ + subgraph/generated/. Expected: Subgraph unit tests 16m -> low single-digit minutes.
  • rainix Token detail page #212 (pkgs.sqlite in rust-build-inputs + subgraph-test task npm ci): unblocks raindex's rust matrix on #wasm-shell (rusqlite needs system sqlite), and makes subgraph-test self-contained over committed bindings.
  • Phase 2 — rainix.yaml slim-shell refactor (not yet opened, depends on Token detail page #212): drop ./pointers.sh, switch each matrix task (rs-test, cargo build --release, rs-static, wasm-artifacts/test/browser-test, test-js-bindings) to nix develop github:rainlanguage/rainix#wasm-shell -c <inlined cmd>. Expected: Rainix CI 25m -> meaningfully less; biggest unknown, will be measured post-merge.

Other observations

  • forge build in ./pointers.sh is dead weight for the rust matrix — none of the crates compile-time or runtime depend on out/ (no sol! macros pointing at it, no include_bytes!, no shell-outs to forge/cast/anvil). Phase 2 above drops it.
  • Test webapp / Test ui-components and Rainix CI's js bindings are next-tier targets but not currently scoped.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions