Skip to content

CI: unblock nightlies by dropping the /using-ssr framework-test route - #121

Merged
Arshia001 merged 1 commit into
mainfrom
fix/gatsby-using-ssr-external-fetch
Jul 20, 2026
Merged

CI: unblock nightlies by dropping the /using-ssr framework-test route#121
Arshia001 merged 1 commit into
mainfrom
fix/gatsby-using-ssr-external-fetch

Conversation

@Arshia001

Copy link
Copy Markdown
Member

Why

Every push to main since 2026-06-30 has failed. publish-nightly is needs:-gated on all three build jobs, so one red build skips publishing entirely — no nightly has shipped since, and wasmer/edgejs-quickjs on the registry is stuck at 0.0.7 (2026-07-06).

Two distinct causes, in sequence:

1. The publish step itself (run 29591734564, #119) — all three builds went green, publish-nightly ran, uploaded the GitHub release assets, then died:

error: While trying to build the package locally
│   1: While parsing the manifest (.../release-assets/wasix/unpacked/wasmer.toml)
╰─▶ 2: Path: "./etc" does not exist

Already fixed by 37b039c (#120) — but that fix has never had a green run to prove it, because of:

2. Framework tests (runs 29598931774 and 29624846373) — js-gatsby-staticsite2 fails on the Node.js baseline stage, with EdgeJS passing clean:

[ERROR] js-gatsby-staticsite2 failed on Node.js: url=http://127.0.0.1:4380/using-ssr
[PASS]  EdgeJS QuickJS Native failed (0): none
  SKIP  js-gatsby-staticsite2: Node.js failed

The route's getServerData() fetches dog.ceo/api/breed/shiba/images/random. On GitHub runners that fetch hangs rather than failing fast — the previous route passed at 01:36:43.150 and the failure landed at 01:36:48.180, exactly the harness's 5s HTTP_REQUEST_TIMEOUT_MS.

#108's "accept 200 or 500" tolerance doesn't help: it only applies when the fetch fails fast enough for the catch block to render a 500. A timed-out request never reaches a status assertion.

What

Bumps wasmer-examples to drop the route (wasmerio/examples#4).

It was already "stages": ["node"]-only. Verified why: EdgeJS stages serve Gatsby from static public/ output instead of running gatsby serve, because gatsby serve hard-requires the lmdb native addon and crashes EdgeJS outright (undefined symbol: napi_module_register — the legacy NAPI_MODULE entry, referenced from a static ctor during dlopen(), so it's an uncatchable linker error rather than a JS exception). So the route validated nothing about EdgeJS and only gated CI on a third party's uptime.

/using-dsg stays — also node-only, but served from build output with no external dependency.

Test

make framework-test-quickjs-native FRAMEWORK_TEST_SELECTOR=js-gatsby-staticsite2

passes both stages, 3/3 routes each, no regressions. Before the change, the same command reproduces the edge-stage 404 when the node-only gate is lifted, confirming the static-serving analysis.

Merge order

wasmerio/examples#4 first, then this. The submodule pointer here references a commit that currently only exists on that PR's branch.

Follow-ups (not in this PR)

🤖 Generated with Claude Code

Every push to main since 2026-06-30 has failed, so publish-nightly (which
needs all three build jobs) has never run to completion and no nightly
has shipped since then.

Two distinct causes:

  - Runs up to #119 reached publish-nightly and died in `wasmer publish`
    with `Path: "./etc" does not exist`. Fixed by 37b039c (#120), but
    that fix has never had a green run to prove it.

  - The last two runs fail earlier, in the framework tests, and this is
    the one still outstanding. js-gatsby-staticsite2's /using-ssr route
    calls an external API (dog.ceo) from getServerData(). On GitHub
    runners that fetch hangs rather than failing fast, so the harness's
    5s HTTP_REQUEST_TIMEOUT_MS expires and the job fails — note the
    failure is on the *Node.js baseline* stage, with EdgeJS itself
    passing clean.

#108's "accept 200 or 500" tolerance does not help: it only applies when
the fetch fails fast enough for getServerData()'s catch block to render a
response, and a timed-out request never reaches a status assertion.

Bump wasmer-examples to drop the route. It was already node-only, since
EdgeJS stages serve Gatsby from static public/ output rather than running
`gatsby serve` (which hard-requires the lmdb native addon), so it
validated nothing about EdgeJS and only gated CI on a third party's
uptime.

Requires wasmerio/examples#4.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Arshia001
Arshia001 merged commit 0692402 into main Jul 20, 2026
7 of 8 checks passed
@Arshia001
Arshia001 deleted the fix/gatsby-using-ssr-external-fetch branch July 20, 2026 09:45
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.

1 participant