Commit Graph
4 Commits
Author SHA1 Message Date
valknarandClaude Sonnet 5 d22dc28af3 Fix CI: drop upload-artifact (unsupported on Gitea, unused downstream)
CI / Publish to npm registry (push) Canceled after 0s
CI / Build wasm engine (push) Canceled after 36s
actions/upload-artifact@v4+ refuses to run on Gitea (it's detected as
GHES, and v4's new backend API explicitly isn't supported there -
GHESNotSupportedError). Rather than pin back to the last GHES-compatible
v3.2.2, just remove the step: the publish job doesn't consume this
artifact - it does its own independent checkout+build - so it was only
ever a convenience for manually downloading dist/ from a CI run, not
something the pipeline depends on.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 18:34:09 +02:00
valknarandClaude Sonnet 5 4f4c2b6b91 Fix CI: Gitea Actions cache keys never actually changed
CI / Publish to npm registry (push) Canceled after 0s
CI / Build wasm engine (push) Canceled after 5m11s
Confirmed via Gitea's own documentation (about.gitea.com's actions-cache
tutorial): Gitea Actions doesn't support the built-in hashFiles()
expression function GitHub Actions provides - it silently evaluates to
an empty string rather than erroring, so all three cache keys
(emsdk-${{hashFiles(...)}}, etc.) were actually just the constant
strings "emsdk-", "deps-wasm32-", "libwinevbs-wasm32-" on every run,
regardless of whether scripts/versions.sh or patches/ actually changed -
this is why caching "didn't work properly": correctness-wise it's worse
than no caching, since a stale cache from before a version/patch bump
would keep being reused indefinitely instead of invalidating.

Replaced with a plain sha256sum-based step that hashes the same inputs
by hand and exposes them via GITHUB_OUTPUT - no dependency on Gitea
gaining hashFiles() support, and verified locally to produce distinct,
non-empty hashes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 18:27:07 +02:00
valknarandClaude Sonnet 5 d7b95dbac8 Fix CI: install cmake/curl/python3, not just bison
CI / Build wasm engine (push) Failing after 8m31s
CI / Publish to npm registry (push) Skipped
The CI runner's base image doesn't ship cmake (build failed with
"cmake executable not found on PATH" during emcmake), and only bison
was ever explicitly installed - curl and python3 happened to work by
luck of the current runner image, not because the workflow guarantees
them. Install the full README-documented toolchain explicitly in both
the build and publish jobs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 18:22:00 +02:00
valknar 0a63835689 Scaffold vpinball-wasm: Emscripten port of Visual Pinball
CI / Build wasm engine (push) Failing after 3m30s
CI / Publish to npm registry (push) Skipped
Build scripts, CMake/source patches, npm packaging, and a Gitea CI
workflow to compile the real Visual Pinball engine (SDL3 + WebGL2 +
libwinevbs for real VBScript) to WebAssembly.

The patches are validated end-to-end: the patched engine boots in a
real browser, loads a real .vpx table, compiles its real GLSL shaders,
computes environment map radiance, initializes physics, and starts the
VBScript engine, before hanging on the one deliberately-deferred piece
of work (game loop rewrite around emscripten_set_main_loop), documented
in the README's roadmap.
2026-08-22 14:30:14 +02:00