rtactor 0.6.0

An Actor framework specially designed for Real-Time constrained use cases.
Documentation
on:
  pull_request:
  push:

jobs:
  test:
    name: for rust ${{matrix.rust-version}} 
    strategy:
      fail-fast: true
      matrix:
        rust-version: [1.75.0, 1.86.0]
    runs-on: ubuntu-24.04
    env:
      TOOLCHAIN_RUST_VERSION: ${{matrix.rust-version}}
    steps:
      - name: Install toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{matrix.rust-version}}
          components: rustfmt, clippy

      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Cargo cache
        uses: Swatinem/rust-cache@v2
        with:
          key: ${{matrix.rust-version}}

      # Build not for the latest version use a different lock file.
      - name: Replace Cargo.lock for a specific version
        run: |
          if [ -f Cargo.lock-${TOOLCHAIN_RUST_VERSION} ]; then
            cp -v Cargo.lock-${TOOLCHAIN_RUST_VERSION} Cargo.lock
          fi

      - name: Check Format
        run: cargo +${{matrix.rust-version}} fmt --all --check

      - name: Clippy 
        uses: actions-rs-plus/clippy-check@v2.3.0
        env:
          RUSTUP_TOOLCHAIN: ${{matrix.rust-version}}
        with:
          toolchain: ${{matrix.rust-version}}
          args: --all-features --all-targets

      - name: Build
        run: cargo +${{matrix.rust-version}} build

      - name: Test with default features
        run: cargo +${{matrix.rust-version}} test

      - name: Test with no features
        run: cargo +${{matrix.rust-version}} test --no-default-features

      - name: Test with all features
        run: cargo +${{matrix.rust-version}} test --all-features

      - name: Test with async-tokio feature
        run: cargo +${{matrix.rust-version}} test --features async-tokio

      - name: Test with async-smol feature
        run: cargo +${{matrix.rust-version}} test --features async-smol