Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
branches:
- main

# One job per arch. They run in parallel; each internally serializes JVM → JS → Native
# One job per arch. They run in parallel; each internally serializes JVM, JS, Native, Wasm
# via build.yml's `max-parallel: 1` matrix. Add or comment out arches here when budget
# allows; the runner-image mapping is duplicated below to keep the workflow
# self-contained.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
cancel-in-progress: true

# One job per arch. They run in parallel (no `needs:` between them) but each one
# internally serializes JVM → JS → Native via build.yml's `max-parallel: 1` matrix.
# internally serializes JVM, JS, Native, Wasm via build.yml's `max-parallel: 1` matrix.
# Add or comment out arches here when budget allows; the runner-image mapping for each
# is duplicated below to keep the workflow self-contained.

Expand Down
13 changes: 8 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: build
# Reusable workflow: builds + tests one arch with the target axis serialized.
#
# Sequential within arch: `max-parallel: 1` on the `target` matrix means JVM → JS →
# Native run one at a time inside this workflow invocation. Two same-arch jobs never
# Sequential within arch: `max-parallel: 1` on the `target` matrix means JVM, JS,
# Native, Wasm run one at a time inside this workflow invocation. Two same-arch jobs never
# compete for the same runner pool, which previously caused container-stop timeouts
# and resource starvation on arm64 under contention.
#
Expand Down Expand Up @@ -37,7 +37,7 @@ jobs:
fail-fast: false
max-parallel: 1
matrix:
target: [JVM, JS, Native]
target: [JVM, JS, Native, Wasm]
runs-on: ${{ inputs.runner-image }}
env:
JAVA_OPTS: >-
Expand All @@ -54,10 +54,13 @@ jobs:
with:
fetch-depth: 0

# The WASM target requires Node 24+: it defaults to V8's Turboshaft Wasm pipeline (Node 22/23
# miscompile the generated WasmGC code and no longer accept --turboshaft-wasm). JS runs on the
# same version to keep a single Node across the matrix.
- uses: actions/setup-node@v6.4.0
if: matrix.target == 'JS'
if: matrix.target == 'JS' || matrix.target == 'Wasm'
with:
node-version: '22'
node-version: '24'

- uses: actions/cache@v5
env:
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Before you begin, make sure you have the following installed:

- **Java 21 (or later)**
- **Scala**
- **Node**
- **Node** (Node 24+ to run the experimental WASM target: it defaults to V8's Turboshaft Wasm pipeline)
- **sbt** (Scala Build Tool)
- **Git**

Expand Down
137 changes: 77 additions & 60 deletions README.md

Large diffs are not rendered by default.

Loading