Skip to content

fix: reuse active Vite+ installations for exact versions - #146

Draft
fengmk2 wants to merge 3 commits into
mainfrom
test/reproduce-vp-reinstall-145
Draft

fengmk2 wants to merge 3 commits into
mainfrom
test/reproduce-vp-reinstall-145

Conversation

@fengmk2

@fengmk2 fengmk2 commented Sep 10, 2026

Copy link
Copy Markdown
Member

The action reuses an active installation when its version matches the requested exact version. This avoids repeated downloads on persistent runners. Fixes #145.

The action checks the payload version, dependency files, directory selection, and shims before reuse. Node.js and package-manager management must match the installer's enabled defaults. The action then applies requested management opt-outs and continues the remaining setup steps. It adds the selected bin directory to PATH.

Reuse requires VP_DUMP_DIRS, which releases from 0.3.0 support. Missing files, configuration changes, other active versions, dist-tags, ranges, and preview builds use the existing installer path.

The regression test runs setup twice on Linux, macOS, and Windows with VP_HOME and split directories. A Linux case also checks XDG paths. The tests check for repeated downloads and changes to install.log.

Local checks pass: 613 tests, type checking, vp run check:fix, vp run build, and regression workflow validation. Two Windows-only tests are skipped locally. GitHub Actions checks are pending for the current commit.

@fengmk2 fengmk2 changed the title test: reproduce repeated Vite+ installation (#145) fix: reuse active Vite+ installations for exact versions Sep 10, 2026
@fengmk2
fengmk2 force-pushed the test/reproduce-vp-reinstall-145 branch from 825bc84 to a37d9f1 Compare September 15, 2026 08:08
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.

Skip re-installing an already-installed Vite+ version: setup-vp and install.sh re-download on every job (~3s each)

1 participant