bevy_serial 0.12.0

Serial Port Communication Plugin for Bevy
Documentation
name: test_suite

on:
  push:
    branches: ["main", "develop"]
  pull_request:
    branches: ["**"]
  workflow_call:

permissions:
  id-token: write
  contents: read
  pull-requests: write

env:
  CARGO_TERM_COLOR: always

jobs:
  format:
    name: Format
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          ref: "${{ github.ref }}"
          token: ${{ secrets.GITHUB_TOKEN }}
          submodules: recursive
      - name: Setup toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable
          components: rustfmt, clippy
      - name: Cache
        uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2.7.7
      - name: Run rustfmt
        run: |
          cargo fmt --all --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          ref: "${{ github.ref }}"
          token: ${{ secrets.GITHUB_TOKEN }}
          submodules: recursive
      - name: Setup toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable
          components: rustfmt, clippy
      - name: Cache
        uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2.7.7
      - name: Install Dependencies
        run: sudo apt update; sudo apt install --no-install-recommends libasound2-dev libudev-dev
      - name: Run clippy
        run: |
          cargo clippy --workspace --all-targets --all-features -- -D warnings

  test:
    name: Test
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          ref: "${{ github.ref }}"
          token: ${{ secrets.GITHUB_TOKEN }}
          submodules: recursive
      - name: Setup toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable
          components: rustfmt, clippy
      - name: Cache
        uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2.7.7
      - name: Install Dependencies
        run: sudo apt update; sudo apt install --no-install-recommends libasound2-dev libudev-dev
      - name: Run test
        run: |
          cargo test --workspace --all-targets --all-features --verbose

  check:
    name: Check
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          ref: "${{ github.ref }}"
          token: ${{ secrets.GITHUB_TOKEN }}
          submodules: recursive
      - name: Setup toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable
          components: rustfmt, clippy
      - name: Cache
        uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2.7.7
      - name: Install Dependencies
        run: sudo apt update; sudo apt install --no-install-recommends libasound2-dev libudev-dev
      - name: Run check
        run: |
          cargo check --workspace --all-targets --all-features