xanadu 0.0.5

A toy ECS library
Documentation
name: CI

on:
  push:
    branches: ["master"]
  pull_request:
    branches: ["master"]

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: -Dwarnings

jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-14]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
    - run: rustc --print=cfg
    - run: cargo build --verbose
    - run: cargo build --verbose --release

  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@clippy
    - run: cargo clippy --all-targets --verbose           -- -Dclippy::all -Dclippy::nursery -Dwarnings
    - run: cargo clippy --all-targets --verbose --release -- -Dclippy::all -Dclippy::nursery -Dwarnings

  doc:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
    - run: cargo doc --no-deps --workspace --verbose

  tests:
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-14]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
    - run: rustc --print=cfg
    - run: cargo test --verbose           --workspace
    - run: cargo test --verbose --release --workspace

  tests-wasm-node:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
    - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
    - run: wasm-pack test --node --verbose
    - run: wasm-pack test --node --verbose --release

  tests-wasm-browser:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
    - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
    - uses: browser-actions/setup-firefox@v1
    - run: firefox --version
    - uses: browser-actions/setup-chrome@v1
    - run: chrome --version
    - run: wasm-pack test --headless --firefox -- --features test_in_browser --verbose
    - run: wasm-pack test --headless --firefox -- --features test_in_browser --verbose --release
    - run: wasm-pack test --headless --chrome  -- --features test_in_browser --verbose
    - run: wasm-pack test --headless --chrome  -- --features test_in_browser --verbose --release

  miri:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@nightly
      with:
        components: miri,rust-src
    - run: cargo +nightly miri test --verbose
    # miri does not support optimizations.
    #- run: cargo +nightly miri test --verbose --release