Skip to content

[WIP] WASM: pass scalar attributes directly to JavaScript #5772

[WIP] WASM: pass scalar attributes directly to JavaScript

[WIP] WASM: pass scalar attributes directly to JavaScript #5772

Workflow file for this run

name: RxPlayer Tests
on:
push:
branches: [stable, dev, legacy-v3]
pull_request:
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "22.x"
jobs:
format_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Install dependencies
run: |
npm ci
rustup target add wasm32-unknown-unknown
- name: Check formatting
run: |
npm run fmt:prettier:check
npm run fmt:rust:check
lint_and_typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Install dependencies
run: npm ci
- name: Check typescript types
run: npm run types
- name: Lint files in src
run: npm run lint
- name: Check that unit tests mirror src
run: node scripts/verify_unit_tests_location.mjs
- name: Check unit tests typescript types
run: npm run types:unit_tests
- name: Lint test files
run: npm run lint:tests
- name: Build package for consumer checks
run: npm run build -- --no-wasm --no-typecheck
- name: Check package exports
run: node scripts/check_package_build.mjs
unit_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Install dependencies
run: npm ci
- name: Run unit tests
run: npm run test:unit
parser_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Install JavaScript dependencies
run: npm ci
- name: Install WebAssembly build tools
run: ./scripts/install_rust_toolchain.sh --no-confirmation
- name: Run parser tests
run: npm run test:parsers
integration_linux_chrome:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "ubuntu-latest", browser: "chrome" }
integration_linux_firefox:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "ubuntu-latest", browser: "firefox" }
# NOTE: Too instable - most of the time it does not run. Commented out for now
# integration_linux_edge:
# uses: ./.github/workflows/integration_tests_base.yml
# with: { os: "ubuntu-latest", browser: "edge" }
integration_windows_chrome:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "windows-latest", browser: "chrome" }
integration_windows_firefox:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "windows-latest", browser: "firefox" }
integration_windows_edge:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "windows-latest", browser: "edge" }
memory_linux:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- name: Linux package installation
run: |
# needed for integration & memory tests codecs support
sudo add-apt-repository multiverse && sudo apt update && sudo apt install -y \
ubuntu-restricted-extras
- name: Install JS dependencies
run: npm ci
- name: Build RxPlayer
run: npm run build
- name: Run memory tests
run: npm run test:memory