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
69 changes: 45 additions & 24 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ name: CI

on:
push:
branches: [main]
branches:
- main
pull_request:
branches: [main]
branches:
- main

defaults:
run:
Expand Down Expand Up @@ -42,32 +44,37 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version:
- '24.10.0'
rust-version:
- 'stable'
os:
- windows-latest
- ubuntu-latest
- macos-latest
steps:
- uses: actions/checkout@v4

- name: Cache Splicer build
uses: actions/cache@v4
id: splicer-build
with:
key: splicer-${{ hashFiles('Cargo.lock', 'crates/spidermonkey-embedding-splicer/src/**/*.rs') }}
key: splicer-${{ matrix.os }}-${{ hashFiles('Cargo.lock', 'crates/spidermonkey-embedding-splicer/src/**/*.rs') }}
path: |
lib
target

- name: Install Rust Toolchain
if: steps.splicer-build.outputs.cache-hit != 'true'
run: |
rustup toolchain install 1.80.0
rustup target add wasm32-wasip1 --toolchain 1.80.0
rustup toolchain install ${{ matrix.rust-version }}
rustup target add wasm32-wasip1 --toolchain ${{ matrix.rust-version }}
rustup target add wasm32-wasip1

- uses: actions/setup-node@v4
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
if: steps.splicer-build.outputs.cache-hit != 'true'
with:
node-version: '23.10.0'
node-version: ${{ matrix.node-version }}

- name: Install NPM packages
if: steps.splicer-build.outputs.cache-hit != 'true'
Expand All @@ -78,12 +85,20 @@ jobs:
run: make lib/spidermonkey-embedding-splicer.js

build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
needs:
- build-splicer
strategy:
fail-fast: false
matrix:
node-version:
- '24.10.0'
rust-version:
- 'stable'
os:
# NOTE: at present the build does *not* work on windows. Required binaries are built here
# (only on linux) and reused in later steps
- ubuntu-latest
build-type:
- 'release'
- 'debug'
Expand All @@ -105,8 +120,8 @@ jobs:
- name: Install Rust Toolchain
if: steps.starlingmonkey-build.outputs.cache-hit != 'true'
run: |
rustup toolchain install 1.80.0
rustup target add wasm32-wasip1 --toolchain 1.80.0
rustup toolchain install ${{ matrix.rust-version }}
rustup target add wasm32-wasip1 --toolchain ${{ matrix.rust-version }}
rustup target add wasm32-wasip1

- name: Install wasm-tools
Expand All @@ -117,15 +132,15 @@ jobs:
uses: actions/cache/restore@v4
id: splicer-build
with:
key: splicer-${{ hashFiles('Cargo.lock', 'crates/spidermonkey-embedding-splicer/src/**/*.rs') }}
key: splicer-${{ matrix.os }}-${{ hashFiles('Cargo.lock', 'crates/spidermonkey-embedding-splicer/src/**/*.rs') }}
path: |
lib
target

- uses: actions/setup-node@v4
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
if: steps.starlingmonkey-build.outputs.cache-hit != 'true'
with:
node-version: '23.10.0'
node-version: ${{ matrix.node-version }}

- name: Install NPM packages
if: steps.starlingmonkey-build.outputs.cache-hit != 'true'
Expand All @@ -149,12 +164,11 @@ jobs:
fail-fast: false
matrix:
node-version:
- '23.10.0'
# - latest reenable when https://github.com/nodejs/node/issues/57172 is fixed
- '24.10.0'
- latest # reenable when https://github.com/nodejs/node/issues/57172 is fixed
os:
- ubuntu-latest
# NOTE: windows-2025 (which is now latest) seems to hang on test runs
- windows-2022
- windows-latest
- macos-latest
build-type:
- 'release'
Expand All @@ -178,25 +192,32 @@ jobs:
uses: actions/cache/restore@v4
id: splicer-build
with:
key: splicer-${{ hashFiles('Cargo.lock', 'crates/spidermonkey-embedding-splicer/src/**/*.rs') }}
key: splicer-${{ matrix.os }}-${{ hashFiles('Cargo.lock', 'crates/spidermonkey-embedding-splicer/src/**/*.rs') }}
path: |
lib
target

- uses: actions/setup-node@v4
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{matrix.node-version}}

- name: Install NPM packages
run: npm install

- name: Test
run: npm run test:${{matrix.build-type}}
run: |
npm run test:${{matrix.build-type}}

test-example:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
needs:
- build
strategy:
matrix:
node-version:
- '24.10.0'
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v4

Expand All @@ -215,14 +236,14 @@ jobs:
uses: actions/cache/restore@v4
id: splicer-build
with:
key: splicer-${{ hashFiles('Cargo.lock', 'crates/spidermonkey-embedding-splicer/src/**/*.rs') }}
key: splicer-${{ matrix.os }}-${{ hashFiles('Cargo.lock', 'crates/spidermonkey-embedding-splicer/src/**/*.rs') }}
path: |
lib
target

- uses: actions/setup-node@v4
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: '23.10.0'
node-version: ${{ matrix.node-version }}

- name: Install NPM packages
run: npm install
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ">=22"

Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
strategy:
matrix:
rust-version:
- 1.80.0
- stable
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
Expand All @@ -123,7 +123,7 @@ jobs:
rustup target add wasm32-wasip1

# NOTE: we must use a node version new-enough to have --experimental-wasm-jspi
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ">=22"

Expand Down Expand Up @@ -182,7 +182,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ">=22"

Expand Down
Loading