name: Test RLNC
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [
ubuntu-latest, ubuntu-24.04-arm,
macos-13, macos-latest,
windows-latest, windows-11-arm, ]
rust: [
1.89.0, stable
]
max-parallel: 4
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ matrix.rust }}
- name: Build and Test on ${{ matrix.os }} with Rust ${{ matrix.rust }}
if: matrix.os != 'windows-latest' || matrix.rust != '1.89.0'
run: make test
- name: Run examples on ${{ matrix.os }} with Rust ${{ matrix.rust }}
run: make example
- name: Add WebAssembly compilation target
if: matrix.os == 'ubuntu-latest' && matrix.rust == 'stable'
run: |
rustup target add wasm32-wasip1
rustup target add wasm32-wasip2
cargo install wasmtime-cli@35.0.0 --locked
- name: Build and Test in WebAssembly environment
if: matrix.os == 'ubuntu-latest' && matrix.rust == 'stable'
run: make test-wasm
- name: Run examples in WebAssembly environment
if: matrix.os == 'ubuntu-latest' && matrix.rust == 'stable'
run: make example-wasm