Skip to content

ci: render the real WASM viewer on Linux and fail on a blank canvas #2

ci: render the real WASM viewer on Linux and fail on a blank canvas

ci: render the real WASM viewer on Linux and fail on a blank canvas #2

name: Linux x86 Wheel Smoke
# The Linux half of the "real WASM viewer renders" check (#247).
#
# The wheel smoke installs the built wheel into a fresh venv and renders a
# compiled sketch in the shipped WebKitGTK viewer, under Xvfb with software GL.
# Until this lane existed it ran only on macOS ARM (macos-arm-build.yml), so the
# Linux viewer path — where WebGL2 is unavailable on OffscreenCanvas and frames
# are drawn on the main thread instead — was covered by nothing, which is how
# #247 reached a release branch and could only be found by hand.
#
# ci/check_render.py is what makes this a render check rather than a launch
# check: it decodes the screenshot and requires lit pixels, so a viewer that
# loads and draws nothing fails here.
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
# One live run per workflow per ref: a new push to a branch or PR cancels the
# superseded run instead of queuing behind it in the shared account-wide runner
# pool. Runs on main get a unique group, so they are never cancelled or coalesced.
concurrency:
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
call:
uses: ./.github/workflows/_build.yml
with:
runs-on: ubuntu-24.04
wheel-smoke: true