mol 0.3.0

Package versioning with ease
Documentation
name: Rust

on:
  push:
    branches: [ main ]
  pull_request:
    paths:
      - '**/Cargo.toml'
      - 'src/**/*.*'
      - 'crates/**/*.*'
    branches: [ main ]

env:
  CARGO_TERM_COLOR: always

jobs:
  ci:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: 🔥 Cargo Cache
      uses: actions/cache@v1
      with:
        path: ~/.cargo
        key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
        restore-keys: |

          ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
          ${{ runner.os }}-cargo
    - name: 🔥 Cargo Cache
      uses: actions/cache@v1
      with:
        path: target
        key: ${{ runner.os }}-cargo-target-${{ hashFiles('Cargo.toml') }}
        restore-keys: |

          ${{ runner.os }}-cargo-target-${{ hashFiles('Cargo.toml') }}
          ${{ runner.os }}-cargo-target
    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        components: rustfmt, clippy
        override: true
    - name: 🔨 Build
      run: cargo build --verbose --workspace
    - name: 📎 Fmt
      run: cargo fmt -- --check
    - name: 📎 Clippy
      run: cargo clippy --workspace
    - name: 🔎 Test
      run: cargo test --verbose --workspace
    
  check-unused-dependencies:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: 🔥 Cargo Cache
        uses: actions/cache@v2
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-check-unused-dependencies-${{ hashFiles('**/Cargo.toml') }}
      - name: 🔥 Cargo Cache
        uses: actions/cache@v1
        with:
          path: target
          key: ${{ runner.os }}-cargo-check-unused-dependencies-target-${{ hashFiles('Cargo.toml') }}
          restore-keys: |

            ${{ runner.os }}-cargo-check-unused-dependencies-target-${{ hashFiles('Cargo.toml') }}
            ${{ runner.os }}-cargo-check-unused-dependencies-target
      - name: 🔧 Toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true
      - name: âš¡ Installs cargo-udeps
        run: cargo install --force cargo-udeps
      - name: âš¡ Run cargo udeps
        run: cargo udeps