keyv 0.3.0

Simple key-value storage with support for multiple backends
Documentation
name: Build and Test

on:
  workflow_call:


jobs:
  build_and_test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Start Services
        run: |
          docker compose up -d

      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
          profile: minimal
          components: rustfmt, clippy

      - uses: swatinem/rust-cache@v2.7.3

      - name: Rust fmt
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

      - name: Run Clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --all-features

      - name: Install Tarpaulin
        run: cargo install cargo-tarpaulin

      - name: Run tests with coverage
        run: cargo tarpaulin --out Xml --output-dir coverage