[CI] add new CI #1
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.73, 1.72, 1.71] | |
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: | | |
cargo test --workspace --locked --features aot,wasmedge_process,ffi -- --nocapture --test-threads=1 | |
- name: Test Rust SDK with async feature | |
run: | | |
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.73, 1.72, 1.71] | |
container: | |
image: fedora:latest | |
steps: | |
- 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 WASMEDGE_DIR="$(pwd)/WasmEdge" | |
export WASMEDGE_BUILD_DIR="$(pwd)/WasmEdge/build" | |
export WASMEDGE_PLUGIN_PATH="$(pwd)/WasmEdge/build/plugins/wasmedge_process" | |
export LD_LIBRARY_PATH="$(pwd)/WasmEdge/build/lib/api" | |
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 WASMEDGE_DIR="$(pwd)/WasmEdge" | |
export WASMEDGE_BUILD_DIR="$(pwd)/WasmEdge/build" | |
export WASMEDGE_PLUGIN_PATH="$(pwd)/WasmEdge/build/plugins/wasmedge_process" | |
export LD_LIBRARY_PATH="$(pwd)/WasmEdge/build/lib/api" | |
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.73, 1.72, 1.71] | |
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 | |
ldconfig | |
- 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: | | |
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.73, 1.72, 1.71] | |
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: 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 | |
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 |