rqlite_client 0.1.0

rqlite database client with optional extra convenience
Documentation
name: Rust

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

env:
  CARGO_TERM_COLOR: always
  RUST_MSRV_TOOLCHAIN: 1.71.1
  RQLITED_REDIRECT_OUTPUT: off
  RQLITED_TESTS_START: no

jobs:
  source-check:
    runs-on: ubuntu-latest

    permissions:
      checks: write
      contents: read

    steps:
    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: stable
        components: clippy, rustfmt
    - uses: actions/checkout@v4
    - uses: actions-rs/clippy-check@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        args: --all-features
    - run: |
        cargo --version
    - run: cargo fmt --check

  cargo-doc-stable:
    runs-on: ubuntu-latest
    needs: source-check

    steps:
    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: stable
    - uses: actions/checkout@v4
    - run: |
        cargo --version
    - run: cargo doc --verbose --all-features --no-deps

  cargo-doc-msrv:
    runs-on: ubuntu-latest
    needs: source-check

    steps:
    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: ${{ env.RUST_MSRV_TOOLCHAIN }}
    - uses: actions/checkout@v4
    - run: |
        cargo --version
    - run: cargo doc --verbose --all-features --no-deps

  test-stable-features:
    runs-on: ubuntu-latest
    needs: source-check
    env:
      SCCACHE_GHA_ENABLED: "true"
      RUSTC_WRAPPER: "sccache"

    steps:
    - uses: jlumbroso/free-disk-space@main
      with:
        android: true
        dotnet: true
        haskell: true
        large-packages: true
        docker-images: true
        swap-storage: false
        tool-cache: false
    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: stable
        components: clippy
    - name: Run sccache-cache
      uses: mozilla-actions/sccache-action@v0.0.9
    - uses: actions/checkout@v4
    - run: ./rqlite/install.sh
    - run: |
        ./rqlite/test-runner.sh
        ./test-features.sh
        ./rqlite/test-runner.sh --stop

  test-msrv-features:
    runs-on: ubuntu-latest
    needs: test-stable-features
    env:
      SCCACHE_GHA_ENABLED: "true"
      RUSTC_WRAPPER: "sccache"

    steps:
    - uses: jlumbroso/free-disk-space@main
      with:
        android: true
        dotnet: true
        haskell: true
        large-packages: true
        docker-images: true
        swap-storage: false
        tool-cache: false
    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: ${{ env.RUST_MSRV_TOOLCHAIN }}
        components: clippy
    - name: Run sccache-cache
      uses: mozilla-actions/sccache-action@v0.0.9
    - uses: actions/checkout@v4
    - run: ./rqlite/install.sh
    - run: |
        ./rqlite/test-runner.sh
        ./test-features.sh
        ./rqlite/test-runner.sh --stop

  build-stable:
    runs-on: ubuntu-latest
    needs: source-check

    steps:
    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: stable
    - uses: actions/checkout@v4
    - run: |
        cargo --version
        rustc --version
    - run: cargo build --verbose --release

  build-msrv:
    runs-on: ubuntu-latest
    needs: build-stable

    steps:
    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: ${{ env.RUST_MSRV_TOOLCHAIN }}
    - uses: actions/checkout@v4
    - run: |
        cargo --version
        rustc --version
    - run: cargo build --verbose --release