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