name: CI
on:
push:
branches: [main]
pull_request:
types: [opened, synchronize, ready_for_review, reopened]
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
name: Lint & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6
- name: Pre-commit checks
run: make -j precommit
test-no-default-features:
name: Test (--no-default-features)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6
- name: Run tests with default features disabled
run: cargo test --no-default-features
wasm-check:
name: WASM build check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown
- name: cargo check (wasm32-unknown-unknown)
run: cargo check --target wasm32-unknown-unknown --no-default-features --features brace_depth_flush
- name: cargo check wasm feature (wasm32-unknown-unknown)
run: cargo check --target wasm32-unknown-unknown --no-default-features --features wasm
wasm-smoke:
name: WASM smoke test (Node)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown
- name: Install wasm-pack
run: cargo install wasm-pack --locked --version 0.15.0
- name: Run wasm smoke tests (Node)
run: wasm-pack test --node -- --no-default-features --features wasm
deny:
name: cargo deny
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Check licenses and advisories
uses: EmbarkStudios/cargo-deny-action@bb137d7af7e4fb67e5f82a49c4fce4fad40782fe