dynamodb-facade 0.1.0

A typed facade over aws-sdk-dynamodb with expression builders and batch/transaction support
Documentation
name: Release

on:
  push:
    tags:
      - "v[0-9]+.[0-9]+.[0-9]+"

env:
  MSRV: "1.85.0"

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Rust stable
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy

      - name: Cargo Format Check
        run: cargo fmt --check

      - name: Clippy Check
        run: cargo clippy --all-targets --all-features -- -D warnings

      - name: Doc Check
        run: RUSTDOCFLAGS="-D warnings" cargo doc --all-features --no-deps --document-private-items

  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Rust stable
        uses: dtolnay/rust-toolchain@stable

      - name: Run Tests
        run: cargo test --all-features

  msrv:
    name: MSRV Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Rust ${{ env.MSRV }}
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ env.MSRV }}

      - name: Check compilation
        run: cargo check --all-features

      - name: Run Tests
        run: cargo test --all-features

  publish-main:
    name: Publish dynamodb-facade
    needs: [lint, test, msrv]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Rust Toolchain
        uses: dtolnay/rust-toolchain@stable

      - name: Login to crates.io
        run: cargo login ${{ secrets.CRATES_IO_TOKEN }}

      - name: Publish main crate
        run: cargo publish