Repository navigation
ci(test-node): install a package's locked file: dependencies before its tests - #9120
Conversation
…ts tests check-wip-cap's suite loads yaml from resolve-config's node_modules, which only the "Test resolve-config" step installed, and only when the plan named resolve-config. check-wip-cap now declares resolve-config as a file: dependency, and run-outside-node-suites.sh runs npm ci once for each locked file: dependency of a package before its npm test. The planner already reads file: dependencies, so a resolve-config change now also runs check-wip-cap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-review reviewed No findings. I read the full diff and PR context, and I read
|
|
claude-security-review reviewed No security findings on head 8629023. The PR has four changes:
|
No related issue: test-node fails on check-wip-cap tests when resolve-config is not selected (run 39809302124)
Summary
test-nodefailed in run 39809302124 withCannot find module 'yaml'from.github/actions/check-wip-cap/check-wip-cap.test.mjs:547. That line loadsyamlfrom resolve-config'snode_modules. Only the "Test resolve-config" step installs them, and that step exits early unless the plan names.github/actions/resolve-config. A change that selected check-wip-cap without resolve-config therefore ran its suite with nothing installed.Fix
.github/actions/check-wip-cap/package.jsondeclares"resolve-config": "file:../resolve-config".check-wip-cap.mjsalready imports../resolve-config/resolve-config.mjsat runtime.scripts/run-outside-node-suites.shrunsnpm ci --ignore-scriptsonce per run for eachfile:dependency that has a lockfile, before the package'snpm test. On a warm cache it takes under a second, and it adds no resolve-config test run.file:dependencies into triggers (scripts/plan-test-lanes.sh:304-308), so a resolve-config change now also runs check-wip-cap's suite.Verification
scripts/run-outside-node-suites.test.sh: a new fixture case (an npm stub; one locked and one unlockedfile:dependency) went red first withFAIL: expected one npm ci of pkgs/locked, then npm test: test, then green withPASS=8 FAIL=0.node_modulesremoved.node --testin check-wip-cap failed atcheck-wip-cap.test.mjs:1:1. Thenrun-outside-node-suites.sh --pathsover the run's three packages installed resolve-config first, and all three passed: check-wip-cap 39/39, maintenance-audit-lane-runs 43/43, work-unblock 117/117.plan-test-lanes.test.sh(41/41),check-docs-only-gate.test.sh(88/88),ci-test-node-stop-commands.test.sh(2/2), and shellcheck.BROKER_PATHSis touched.Related
createRequireload ofyamlfrom resolve-config.🤖 Generated with Claude Code