| on: |
| push: |
| branches: |
| - master |
| pull_request: |
| branches: |
| - master |
| |
| name: CI |
| jobs: |
| deny: |
| name: Cargo deny |
| strategy: |
| matrix: |
| os: |
| - ubuntu-latest |
| runs-on: ${{ matrix.os }} |
| steps: |
| - uses: actions/checkout@v4 |
| - uses: EmbarkStudios/cargo-deny-action@v2 |
| timeout-minutes: 10 |
| |
| build_and_test: |
| name: OS Test |
| strategy: |
| fail-fast: false |
| matrix: |
| rust-version: |
| - nightly |
| - stable |
| - "1.63" |
| os: |
| - ubuntu-latest |
| - windows-latest |
| - macos-latest |
| runs-on: ${{ matrix.os }} |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
| - name: Install Rust |
| uses: dtolnay/rust-toolchain@master |
| with: |
| toolchain: ${{ matrix.rust-version }} |
| - name: Build |
| run: cargo build |
| - name: Test |
| run: cargo test |
| wasi: |
| name: WASI Test Build |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
| - name: Install Rust |
| uses: dtolnay/rust-toolchain@nightly |
| - name: Install Cargo WASI |
| run: cargo install cargo-wasi |
| - name: Build |
| run: cargo wasi build --features nightly |
| wasm: |
| name: WASM Test Build |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
| - name: Install Rust |
| uses: dtolnay/rust-toolchain@stable |
| with: |
| targets: wasm32-unknown-unknown |
| - name: Build |
| run: cargo build --target wasm32-unknown-unknown |
| lint: |
| name: Clippy and fmt |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
| - name: Install Rust |
| uses: dtolnay/rust-toolchain@stable |
| with: |
| components: clippy, rustfmt |
| - name: Check formatting |
| run: cargo fmt --check |
| - name: Check for clippy lints |
| run: cargo clippy |