Skip to content

Add support for emscripten (wasm) #73

Add support for emscripten (wasm)

Add support for emscripten (wasm) #73

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
target:
- x86_64-unknown-linux-gnu
- i686-unknown-linux-gnu
- x86_64-pc-windows-gnu
- arm-unknown-linux-gnueabi
- x86_64-apple-darwin
- x86_64-pc-windows-msvc
lua: [lua54, lua53, lua52, lua51]
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- target: i686-unknown-linux-gnu
os: ubuntu-latest
- target: x86_64-pc-windows-gnu
os: ubuntu-latest
- target: arm-unknown-linux-gnueabi
os: ubuntu-latest
- target: x86_64-apple-darwin
os: macos-latest
- target: x86_64-pc-windows-msvc
os: windows-latest
- target: wasm32-unknown-emscripten
os: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.target }}
- name: Install GCC (i686-unknown-linux-gnu)
if: ${{ matrix.target == 'i686-unknown-linux-gnu' }}
run: |
sudo apt-get update -y
sudo apt-get install -y --no-install-recommends gcc-multilib
shell: bash
- name: Install GCC (x86_64-pc-windows-gnu)
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }}
run: |
sudo apt-get update -y
sudo apt-get install -y --no-install-recommends gcc-mingw-w64-x86-64
shell: bash
- name: Install GCC (arm-unknown-linux-gnueabi)
if: ${{ matrix.target == 'arm-unknown-linux-gnueabi' }}
run: |
sudo apt-get update -y
sudo apt-get install -y --no-install-recommends gcc-arm-linux-gnueabi libc6-dev-armel-cross
shell: bash
- name: Install emscripten (wasm32-unknown-emscripten)
if: ${{ matrix.target == 'wasm32-unknown-emscripten' }}
run: |
sudo apt-get update -y
sudo apt-get install -y --no-install-recommends emscripten
shell: bash
- name: Build ${{ matrix.lua }}
run: |
cargo build --manifest-path testcrate/Cargo.toml --target ${{ matrix.target }} --release --features ${{ matrix.lua }}
shell: bash
test:
name: Test
runs-on: ${{ matrix.os }}
needs: build
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
lua: [lua54, lua53, lua52, lua51]
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- os: macos-latest
target: x86_64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
- os: ubuntu-latest
target: wasm32-unknown-emscripten
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.target }}
- name: Install emscripten (wasm32-unknown-emscripten)
if: ${{ matrix.target == 'wasm32-unknown-emscripten' }}
run: |
sudo apt-get update -y
sudo apt-get install -y --no-install-recommends emscripten
echo 'CARGO_TARGET_WASM32_UNKNOWN_EMSCRIPTEN_RUNNER=node' >> $GITHUB_ENV
echo 'RUSTFLAGS="-C link-args=-sERROR_ON_UNDEFINED_SYMBOLS=0"' >> $GITHUB_ENV
shell: bash
- name: Run ${{ matrix.lua }} tests
run: |
cargo test --manifest-path testcrate/Cargo.toml --release --features ${{ matrix.lua }}
shell: bash
rustfmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt -- --check