api_bindium 0.4.0

Framework for api binding crates
Documentation
name: Rust
permissions:
  contents: read

on:
  push:
    branches: [ "master", "main", "develop"]
  pull_request:
    branches: [ "master", "main", "develop" ]

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: -Dwarnings
  RUST_BACKTRACE: 1

jobs:
  berger:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

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

      - uses: Swatinem/rust-cache@v2

      - name: Install cargo-berger for full suite testing
        run: cargo install --git https://github.com/RustyNova016/cargo-berger --rev 5a56c3dae289b142885705c97e886a0c6f5c4a48 --locked

      - name: Install cargo-hack
        run: cargo +stable install cargo-hack --locked

      - name: Install cargo-msrv
        run: cargo install cargo-msrv --all-features

      - name: Install cargo-machete
        run: cargo install cargo-machete --locked

      # - name: Install cargo-nextest
      #   run: cargo install cargo-nextest --locked

      # - name: Install cargo-minimal-versions
      #   run: cargo +stable install cargo-minimal-versions --locked

      - name: Run berger ci
        run: cargo-berger rust ci

  clippy:
    env: 
      SQLX_OFFLINE: true
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      # Install minimal toolchain
      - name: Install minimal stable toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy

      - uses: Swatinem/rust-cache@v2

      - uses: taiki-e/install-action@cargo-hack

      - name: Run clippy
        run: cargo hack clippy --each-feature --skip hotpath,hotpath-alloc,hotpath-off -- -D warnings