Merge pull request #115 from second-state/0.13.x #43
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous integration with the release version of Wasmedge | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
paths-ignore: | |
- "**/*.md" | |
- ".github/workflows/standalone.yml" | |
- ".github/workflows/rust-static-lib.yml" | |
pull_request: | |
paths-ignore: | |
- "**/*.md" | |
- ".github/workflows/standalone.yml" | |
- ".github/workflows/rust-static-lib.yml" | |
jobs: | |
build_ubuntu: | |
name: Ubuntu | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-22.04, ubuntu-20.04] | |
rust: [1.75, 1.74, 1.73] | |
container: | |
image: wasmedge/wasmedge:ubuntu-build-clang | |
steps: | |
- name: Checkout WasmEdge Rust SDK | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install WasmEdge | |
run: | | |
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash -s -- --plugins wasi_crypto | |
ldconfig | |
- name: Install Rust-nightly | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt, clippy | |
- name: Rustfmt | |
run: cargo +nightly fmt --all -- --check | |
- name: Clippy check | |
run: | | |
cargo +nightly clippy -V | |
cargo +nightly clippy --lib --examples --features aot,wasi_crypto,wasi_nn,wasmedge_process,ffi -- -D warnings | |
- name: Clippy check for async feature | |
run: | | |
cargo +nightly clippy -V | |
cargo +nightly clippy --lib --examples --features aot,async,wasi_crypto,wasi_nn,wasmedge_process,ffi -- -D warnings | |
- name: Install Rust-stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Build Async-Hello for Testing | |
working-directory: examples/wasmedge-sys | |
run: | | |
rustup target add wasm32-wasi | |
rustc async_hello.rs --target=wasm32-wasi -o async_hello.wasm | |
rustc hello.rs --target=wasm32-wasi -o hello.wasm | |
- name: Test Rust SDK | |
run: | | |
export LD_LIBRARY_PATH="/github/home/.wasmedge/lib" | |
cargo test --workspace --locked --features aot,wasmedge_process,ffi -- --nocapture --test-threads=1 | |
- name: Test Rust SDK with async feature | |
run: | | |
export LD_LIBRARY_PATH="/github/home/.wasmedge/lib" | |
cargo test --workspace --locked --features aot,async,wasmedge_process,ffi -- --nocapture --test-threads=1 | |
build_fedora: | |
name: Fedora | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: [1.75, 1.74, 1.73] | |
container: | |
image: fedora:latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install WasmEdge | |
run: | | |
dnf update -y | |
dnf install -y cmake ninja-build boost llvm llvm-devel lld-devel clang git file rpm-build dpkg-dev spdlog-devel | |
dnf install -y which python python3-pip | |
git config --global --add safe.directory $(pwd) | |
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash -s -- --plugins wasi_crypto | |
ldconfig | |
- name: Install Rust-nightly | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt, clippy | |
- name: Rustfmt | |
run: cargo +nightly fmt --all -- --check | |
- name: Clippy check | |
run: | | |
cargo +nightly clippy -V | |
cargo +nightly clippy --lib --examples --features aot,wasi_crypto,wasi_nn,wasmedge_process,ffi -- -D warnings | |
- name: Clippy check for async feature | |
run: | | |
cargo +nightly clippy -V | |
cargo +nightly clippy --lib --examples --features aot,async,wasi_crypto,wasi_nn,wasmedge_process,ffi -- -D warnings | |
- name: Install Rust-stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Build Async-Hello for Testing | |
working-directory: examples/wasmedge-sys | |
run: | | |
rustup target add wasm32-wasi | |
rustc async_hello.rs --target=wasm32-wasi -o async_hello.wasm | |
rustc hello.rs --target=wasm32-wasi -o hello.wasm | |
- name: Test Rust SDK | |
run: | | |
export LD_LIBRARY_PATH="/github/home/.wasmedge/lib" | |
cargo test --workspace --locked --features aot,wasmedge_process,ffi -- --nocapture --test-threads=1 --skip test_vmbuilder | |
- name: Test Rust SDK with async feature | |
run: | | |
export LD_LIBRARY_PATH="/github/home/.wasmedge/lib" | |
cargo test --workspace --locked --features aot,async,wasmedge_process,ffi -- --nocapture --test-threads=1 --skip test_vmbuilder | |
build_macos: | |
name: MacOS | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-12, macos-13] | |
rust: [1.75, 1.74, 1.73] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install WasmEdge | |
run: | | |
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash -s -- --plugins wasi_crypto | |
- name: Install Rust-nightly | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt, clippy | |
- name: Run cargo fmt | |
run: cargo +nightly fmt --all -- --check | |
- name: Clippy | |
run: | | |
cargo +nightly clippy -V | |
cargo +nightly clippy --lib --examples --features aot,ffi -- -D warnings | |
- name: Install Rust-stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Test Rust Bindings | |
run: | | |
export DYLD_LIBRARY_PATH="/Users/runner/.wasmedge/lib" | |
cargo test --workspace --exclude async-wasi --locked --features aot,ffi -- --nocapture --test-threads=1 | |
build_windows: | |
name: Windows | |
runs-on: windows-2022 | |
strategy: | |
matrix: | |
rust: [1.75, 1.74, 1.73] | |
env: | |
WASMEDGE_DIR: ${{ github.workspace }}\WasmEdge | |
WASMEDGE_BUILD_DIR: ${{ github.workspace }}\WasmEdge\build | |
WASMEDGE_PLUGIN_PATH: ${{ github.workspace }}\WasmEdge\build\wasmedge\plugins\wasmedge_process | |
LD_LIBRARY_PATH: ${{ github.workspace }}\WasmEdge\build\lib\api | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Checkout WasmEdge Runtime | |
uses: actions/checkout@v3 | |
with: | |
repository: WasmEdge/WasmEdge | |
path: WasmEdge | |
fetch-depth: 0 | |
- name: Install dependency | |
uses: crazy-max/ghaction-chocolatey@v2 | |
with: | |
args: install cmake ninja vswhere | |
- name: Set up Windows 10 SDK | |
uses: GuillaumeFalourd/setup-windows10-sdk-action@v1.11 | |
with: | |
sdk-version: 19041 | |
- name: Build WasmEdge with Release mode | |
working-directory: WasmEdge | |
run: | | |
git checkout $(git describe --abbrev=0) | |
$vsPath = (vswhere -latest -property installationPath) | |
Import-Module (Join-Path $vsPath "Common7\Tools\Microsoft.VisualStudio.DevShell.dll") | |
Enter-VsDevShell -VsInstallPath $vsPath -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64 -winsdk=10.0.19041.0" | |
$llvm = "LLVM-13.0.1-win64.zip" | |
curl -sLO https://github.com/WasmEdge/llvm-windows/releases/download/llvmorg-13.0.1/LLVM-13.0.1-win64.zip -o $llvm | |
Expand-Archive -Path $llvm | |
$llvm_dir = "$pwd\\LLVM-13.0.1-win64\\LLVM-13.0.1-win64\\lib\\cmake\\llvm" | |
$Env:CC = "clang-cl" | |
$Env:CXX = "clang-cl" | |
$cmake_sys_version = "10.0.19041.0" | |
cmake -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Release "-DCMAKE_SYSTEM_VERSION=$cmake_sys_version" -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL "-DLLVM_DIR=$llvm_dir" -DWASMEDGE_BUILD_PACKAGE="ZIP" . | |
cmake --build build | |
- name: Install Rust-nightly | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt, clippy | |
- name: Rustfmt | |
run: cargo +nightly fmt --all -- --check | |
- name: Clippy | |
run: | | |
$vsPath = (vswhere -latest -property installationPath) | |
Import-Module (Join-Path $vsPath "Common7\Tools\Microsoft.VisualStudio.DevShell.dll") | |
Enter-VsDevShell -VsInstallPath $vsPath -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64 -winsdk=10.0.19041.0" | |
cargo +nightly clippy -V | |
cargo +nightly clippy --lib --examples --features aot,ffi -- -D warnings | |
- name: Install Rust-stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Test Rust Bindings | |
run: | | |
$vsPath = (vswhere -latest -property installationPath) | |
Import-Module (Join-Path $vsPath "Common7\Tools\Microsoft.VisualStudio.DevShell.dll") | |
Enter-VsDevShell -VsInstallPath $vsPath -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64 -winsdk=10.0.19041.0" | |
$env:Path="$env:Path;C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin;D:\a\wasmedge-rust-sdk\wasmedge-rust-sdk\WasmEdge\build\lib\api" | |
cargo test --workspace --exclude async-wasi --features aot,ffi --locked -- --nocapture --test-threads=1 |