weval 0.4.1

The WebAssembly partial evaluator
name: CI

on: pull_request

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
        - build: x86_64-linux
          os: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo test --verbose
    - name: Run clippy
      run: cargo clippy

  rustfmt:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: rustup update stable --no-self-update
    - run: rustup default stable
    - run: rustup component add rustfmt
    - run: cargo fmt --all -- --check

  smoke-test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Download and install wasi-sdk
      run: |
        cd /opt
        wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-30/wasi-sdk-30.0-x86_64-linux.tar.gz
        tar zxvf wasi-sdk-30.0-x86_64-linux.tar.gz
        ln -s wasi-sdk-30.0-x86_64-linux wasi-sdk
    - name: Download and install wasmtime
      run: |
        cd /opt
        wget https://github.com/bytecodealliance/wasmtime/releases/download/v41.0.3/wasmtime-v41.0.3-x86_64-linux.tar.xz
        tar Jxvf wasmtime-v41.0.3-x86_64-linux.tar.xz
        ln -s `pwd`/wasmtime-v41.0.3-x86_64-linux/wasmtime /usr/local/bin/
    - name: Build
      run: cargo build --release
    - name: Build and run base 'simple' test
      run: make -C tests/simple run-base
    - name: Build and run wevaled 'simple' test
      run: make -C tests/simple run-wevaled