penpot/.github/workflows/tests-wasm.yml
Alejandro Alonso 1ebb4f3866
🔧 Fail CI when render-wasm JS glue exports invoke_*V (#12243)
* 🔧 Fail CI when render-wasm JS glue exports invoke_*V

Add check-no-invoke-v (path from _build_env) and run it in CI: WASM
after a production frontend build so JS longjmp + SIMD ABI
regressions are caught in the pipeline.

* 🐛 Fail closed in render-wasm invoke_* glue check

* 🔧 Check exporter wasm glue for any invoke_* wrapper

---------

Co-authored-by: Elena Torro <elenatorro@gmail.com>
2026-10-14 10:15:53 +02:00

73 lines
1.4 KiB
YAML

name: "CI: WASM"
defaults:
run:
shell: bash
on:
pull_request:
paths:
- 'render-wasm/**'
types:
- opened
- synchronize
- ready_for_review
push:
branches:
- develop
- staging
paths:
- 'render-wasm/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test-render-wasm:
if: ${{ !github.event.pull_request.draft }}
name: "Render WASM Tests"
runs-on: penpot-extended-runner
container:
image: penpotapp/devenv:latest
volumes:
- /var/cache/github-runner/m2:/root/.m2
- /var/cache/github-runner/gitlib:/root/.gitlibs
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Format
working-directory: ./render-wasm
run: |
cargo fmt --check
- name: Lint
working-directory: ./render-wasm
run: |
./lint
- name: Test
working-directory: ./render-wasm
run: |
./test
- name: Build
working-directory: ./render-wasm
run: |
NODE_ENV=production ./build frontend
- name: Check no invoke_*V in JS glue
working-directory: ./render-wasm
run: |
./check-no-invoke-v