ci: use npm ci now that package-lock.json is tracked - #12
Merged
Conversation
The web job carried a comment claiming package-lock.json is intentionally untracked, so npm ci is not usable. The lockfile is tracked at the repo root and is not gitignored, so that comment is stale and npm install was doing an unpinned resolve on every run. Switch to npm ci for reproducible installs, matching the verify and upload jobs in cloudflare.yml, and drop the stale comment. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HdERD2o3Kmd5RmFXS7s4xW
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
webjob claimingpackage-lock.jsonis intentionally untracked and thatnpm ciis not usable.npm installtonpm ciso the job installs from the lockfile.The comment no longer matches the repo:
package-lock.jsonis tracked at the root (152 KB) and is not covered by.gitignore. Because of the stale comment thewebjob was doing an unpinnednpm installresolve on every run, whilecloudflare.yml(bothverifyandupload) already usesnpm ci. The two workflows disagreed about a basic fact of the repo; this aligns them and makes thewebjob's installs reproducible.Verification
Run locally on the merge commit of #11 with Node 22.22.2 / npm 10.9.7, reproducing the
webjob step for step:npm ci— exit 0, 210 packages installed, lockfile in sync withpackage.jsonnpx tsc -binapps/web— exit 0npm run test:web— 11 test files, 33 tests, all passednpm run build:web— exit 0, Vite build output producedYAML re-parsed after the edit; the
webjob's steps resolve to checkout → setup-node →npm ci→npx tsc -b→npm run test:web→npm run build:web.Review flags
.github/workflows/ci.yml.apijob, tocloudflare.yml, to dependencies, or to the lockfile.Generated by Claude Code