hermit-sync 0.1.6

Synchronization primitives for kernels.
Documentation
name: CI

on:
  push:
  pull_request:

env:
  RUSTFLAGS: -Dwarnings
  RUSTDOCFLAGS: -Dwarnings

jobs:
  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,riscv64gc-unknown-linux-gnu
          components: clippy
      - run: |
          cargo clippy --target x86_64-unknown-linux-gnu
          cargo clippy --target aarch64-unknown-linux-gnu
          cargo clippy --target riscv64gc-unknown-linux-gnu

  doc:
    name: Check documentation
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo doc

  fmt:
    name: Check format
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
        with:
          components: rustfmt
      - run: cargo fmt -- --check

  miri:
    name: Test with Miri
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
        with:
          components: rust-src, miri
      - run: cargo miri setup
      - run: cargo miri test
        env:
          RUSTFLAGS: -Dwarnings -Aunused-imports

  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo test