Skip to content

ci: add dependency caching and parallel jobs#26

Open
ntegrals wants to merge 1 commit intomasterfrom
ci/improvements
Open

ci: add dependency caching and parallel jobs#26
ntegrals wants to merge 1 commit intomasterfrom
ci/improvements

Conversation

@ntegrals
Copy link
Copy Markdown
Owner

@ntegrals ntegrals commented Apr 1, 2026

Summary

Improves CI performance and structure by splitting the single monolithic job into parallel stages with dependency caching.

Before (19 lines, 1 job)

test:
  - checkout → bun setup → install → build → test → lint

Everything runs sequentially. A lint failure wastes time waiting for tests to finish first. No caching — bun install downloads everything fresh on every run.

After (3 jobs, cached)

build ──┬── test
        └── lint
Job Depends on Runs
Build Type-check all packages
Test Build Core test suite (364 tests)
Lint Build Biome check

Test and lint run in parallel after build succeeds.

Caching

node_modules is cached via actions/cache@v4 keyed on bun.lock hash:

key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }}
restore-keys: bun-${{ runner.os }}-

On cache hit, bun install --frozen-lockfile becomes a no-op, saving ~10-15s per job.

Other changes

  • bun installbun install --frozen-lockfile for reproducible installs
  • Test job runs only core tests (--filter 'open-browser') to avoid false failures from cli/sandbox having no test files

Test plan

  • Workflow YAML is valid (checked with actionlint mentally)
  • Verify cache hits on second CI run for the same bun.lock
  • Verify test and lint run in parallel after build

Split CI into build → test + lint (parallel), add actions/cache
for node_modules keyed on bun.lock, and use --frozen-lockfile for
reproducible installs.
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