mseq 2.2.0

Library for developing MIDI Sequencers.
Documentation
name: CI

on:
  push:
    branches: [ main ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build_and_check:
    name: Build and Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - uses: Swatinem/rust-cache@v2

      - name: Install Dependencies
        run: sudo apt-get install -y libasound2-dev
  
      - name: setup toolchain
        uses: hecrj/setup-rust-action@v1
        with:
          rust-version: stable

      - name: Add rustfmt and clippy
        run: rustup component add rustfmt clippy

      - name: cargo check --all-targets
        run: cargo check --workspace --all-targets --all-features

      - name: rustfmt
        run: cargo fmt --all --check

      - name: clippy
        run: cargo clippy --workspace --all-features --tests -- -D warnings

      - name: clippy no_std
        run: cargo clippy --workspace --no-default-features -- -D warnings

  test_core:
    name: Test mseq_core
    runs-on: ubuntu-latest
    needs: build_and_check
    steps:
      - uses: actions/checkout@v3

      - uses: Swatinem/rust-cache@v2

      - name: Install Dependencies
        run: sudo apt-get install -y libasound2-dev
  
      - name: setup toolchain
        uses: hecrj/setup-rust-action@v1
        with:
          rust-version: stable

      - name: Test mseq_core
        run: cargo test -p mseq_core --all-features

  test_tracks:
    name: Test mseq_tracks
    runs-on: ubuntu-latest
    needs: build_and_check
    steps:
      - uses: actions/checkout@v3

      - uses: Swatinem/rust-cache@v2

      - name: Install Dependencies
        run: sudo apt-get install -y libasound2-dev
  
      - name: setup toolchain
        uses: hecrj/setup-rust-action@v1
        with:
          rust-version: stable

      - name: Test mseq_tracks
        run: cargo test -p mseq_tracks --all-features

  test_mseq:
    name: Test mseq
    runs-on: ubuntu-latest
    needs: build_and_check
    steps:
      - uses: actions/checkout@v3

      - uses: Swatinem/rust-cache@v2

      - name: Install Dependencies
        run: sudo apt-get install -y libasound2-dev
  
      - name: setup toolchain
        uses: hecrj/setup-rust-action@v1
        with:
          rust-version: stable

      - name: Test mseq
        run: cargo test -p mseq --all-features