turmoil 0.7.2

Simulation testing framework for distributed systems
Documentation
name: CI Build

on:
  push:
    branches: [ main ]
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    name: Build and Test
    runs-on: ${{ matrix.os }}
    strategy:
      matrix :
        features: ["", regex]
        os: [ubuntu-latest]
    steps:
      - name: Git Checkout
        uses: actions/checkout@v5
      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@stable
      - name: Cargo Test
        run: cargo test --workspace --verbose --features "${{ matrix.features }}"

  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - run: cargo fmt --check

  clippy:
    name: Run Clippy
    runs-on: ${{ matrix.os }}
    strategy:
      matrix :
        os: [ubuntu-latest]
    steps:
      - uses: actions/checkout@v5
      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@stable
      - name: Run cargo clippy
        run: cargo clippy --all-targets -- --deny warnings

  semver:
    name: semver
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - name: Check semver
        uses: obi1kenobi/cargo-semver-checks-action@v2
        with:
          uses: dtolnay/rust-toolchain@stable

  external-types:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: nightly-2025-08-06
      - name: Install cargo-check-external-types
        uses: taiki-e/cache-cargo-install-action@v2
        with:
          tool: cargo-check-external-types@0.3.0
      - uses: Swatinem/rust-cache@v2
      - run: cargo check-external-types --all-features