Repository navigation
test: retain deploy exclusions for local process control - #99392
Merged
jamiboym merged 1 commit intoSep 29, 2026
Merged
Conversation
Contributor
Tests PassedCommit: 2dca053 |
jamiboym
added this pull request to stack #99393
September 29, 2026 00:34
jamiboym
force-pushed
the
jamiboym/deploy-exclusion-reasons/process-control
branch
from
September 29, 2026 16:07
8381b28 to
a5bd666
Compare
jamiboym
marked this pull request as ready for review
September 29, 2026 16:11
Base automatically changed from
jamiboym/deploy-exclusion-reasons/custom-servers
to
canary
September 29, 2026 19:52
jamiboym
added a commit
that referenced
this pull request
Sep 29, 2026
## Summary Custom-server suites depend on local server entrypoints that deploy mode does not launch. Replace their legacy `skipDeployment` exclusions and `skipped` returns with `@force-gate !deploy` and explain the dependency, while preserving their existing local mode restrictions and assertions. This covers six test files, including the custom-server sections of API body parsing and OpenTelemetry. The ordinary API JSON body-parser case remains enabled in deploy mode; only the Express pre-parsing cases are excluded. The custom-server shutdown suite also requires the runner to signal its server process and observe `after()` completion. Stack: #99012 → #98994 → #99392 → #98911. Based on #99012; #99392 separately explains local process-control exclusions. ## Verification - The two added suites passed in both webpack development and production modes: five tests in each mode. - Collection with the real gate runtime and fixture setup stubbed confirmed all five tests enabled locally, and only the ordinary API body-parser test enabled in deploy mode. Both parameterized shutdown signals are excluded in deploy. - All 24 gate-transform tests passed. Formatting and ESLint passed for the added files. - The JavaScript workspace build passed. The full bootstrap build failed in the native Rust step (`cargo metadata failed to run`). - No new deployment was created. The ordinary API body-parser case passed in the earlier deployment experiment. <!-- NEXT_JS_LLM -->
jamiboym
force-pushed
the
jamiboym/deploy-exclusion-reasons/process-control
branch
from
September 29, 2026 19:52
a5bd666 to
2dca053
Compare
gnoff
approved these changes
Sep 29, 2026
jamiboym
deleted the
jamiboym/deploy-exclusion-reasons/process-control
branch
September 29, 2026 23:35
jamiboym
added a commit
that referenced
this pull request
Sep 29, 2026
## Summary Based on #99392. Stack: #99012 → #98994 → #99392 → #98911. This PR now contains its own `skipDeployment` → `@force-gate` conversions and removal of `skipped` returns, with no dependency on Josh’s migration PRs. Enable only the two body-size tests confirmed passing in both deployment CI variants: a 4 MiB request with a 5 MiB Next.js buffer and a 1 MiB request with a 2 MiB buffer. Keep the other seven tests gated and replace the migration TODOs with verified reasons: - The test deployment enforces the documented 4.5 MB Vercel payload limit. Requests of 5, 6, 10, 11, 20, and 51 MiB receive HTTP 413, independently of the Next.js buffering setting. - The 3 MiB request is accepted, but Vercel forwards the entire body instead of applying Next.js's local 2 MiB truncation. The 5 MiB and 2 MiB suite gates are narrowed to their failing over-limit tests. All test bodies and assertions are unchanged. The redundant dev-only image exclusion is handled separately in #98908. ## Verification - Restacked above #99392; `git range-diff` confirms the body-size patch is unchanged. - Prettier and ESLint passed. - Verified test bodies and assertions are unchanged after removing the legacy deployment skips; all four force-gates attach. A collection-only check with fixture setup stubbed confirms two tests enabled and seven gated in deploy, and all nine enabled locally. - Prior reproduction on canary: https://github.com/vercel/next.js/actions/runs/35401223346/job/105783820893 and https://github.com/vercel/next.js/actions/runs/35401223346/job/105783820915 (2 passed, 7 failed in each). - Direct HTTP reproduction returned Vercel's FUNCTION_PAYLOAD_TOO_LARGE for 5 MiB with a configured 50 MiB Next.js buffer; 4 MiB succeeded. - Full suite execution remains blocked by the local installation’s missing `node-fetch`; bootstrap/watch builds stalled during the first-layer validation. CI must validate execution on the new stack. <!-- NEXT_JS_LLM -->
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
Retain the deployment exclusions for two suites that require control of the local Node.js process, replacing legacy
skipDeploymenthandling with explicit@force-gate !deploydirectives:graceful-shutdown-next-after/next-startstarts a fresh Next.js process, sendsSIGINTandSIGTERM, and checks whetherafter()callbacks finish before it exits. Vercel manages the deployed process lifecycle; the deploy test runner cannot send those signals to that process or deterministically observe its shutdown. This does not imply that Vercel lacks graceful shutdown support.node-cli-argsinvokes Node with--experimental-network-inspectionand checks whether that invocation starts successfully on the current Node version. Deploy mode does not execute the test's localstartCommand, so it cannot exercise Node's handling of that CLI flag.Preserve all test bodies, including the different development/production shutdown expectations and the Node 20 rejection case.
Based on #98994, with #98911 above this PR.
Verification
NEXT_SKIP_ISOLATE=1run could not resolve its required fixture-localnode_modules/next; using the normal fixture installation resolved that validation setup issue.cargo metadata failed to run). Deploy execution was not run; local collection verifies the exclusions without deployment.