Skip to content

ci: add wasm test and examples #920

ci: add wasm test and examples

ci: add wasm test and examples #920

Workflow file for this run

name: CI
on:
push:
pull_request:
env:
CARGO_TERM_COLOR: always
CARGO_REGISTRIES_MY_REGISTRY_INDEX: https://github.com/rust-lang/crates.io-index
jobs:
# 1
check:
name: Rust project check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install latest nightly
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
- name: Install Protoc
uses: arduino/setup-protoc@v2
# `cargo check` command here will use installed `nightly`
# as it is set as an "override" for current directory
- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check
- name: Run cargo build
uses: actions-rs/cargo@v1
with:
command: build
- name: Run cargo test
uses: actions-rs/cargo@v1
with:
command: test
args: --all
# 2
fmt:
name: Rust fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install latest nightly
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
# `cargo check` command here will use installed `nightly`
# as it is set as an "override" for current directory
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
# 3
e2e:
name: Rust e2e sqllogictest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install latest nightly
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
- name: Install Protoc
uses: arduino/setup-protoc@v2
# `cargo check` command here will use installed `nightly`
# as it is set as an "override" for current directory
- name: Run cargo run sqllogictest-test
uses: actions-rs/cargo@v1
with:
command: run
args: --bin sqllogictest-test --manifest-path ./tests/sqllogictest/Cargo.toml
# 4
wasm-tests:
name: Wasm cargo tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install stable with wasm target
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
override: true
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install wasm-pack
uses: jetli/[email protected]
with:
version: latest
- name: Run wasm-bindgen tests (wasm32 target)
run: wasm-pack test --node -- --package kite_sql --lib
# 5
wasm-examples:
name: Wasm examples (nodejs)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install stable with wasm target
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
override: true
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install wasm-pack
uses: jetli/[email protected]
with:
version: latest
- name: Build wasm package
run: wasm-pack build --release --target nodejs
- name: Run wasm example scripts
run: |
node examples/wasm_hello_world.test.mjs
node examples/wasm_index_usage.test.mjs
# 6
native-examples:
name: Native examples
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Run hello_world example
run: cargo run --example hello_world
- name: Run transaction example
run: cargo run --example transaction